You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ec...@apache.org on 2015/10/06 02:50:06 UTC
hbase git commit: HBASE-14555 Fix Deadlock in MVCC branch-1.2
toString()
Repository: hbase
Updated Branches:
refs/heads/branch-1.2 c8a10f620 -> d5127a1f4
HBASE-14555 Fix Deadlock in MVCC branch-1.2 toString()
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d5127a1f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d5127a1f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d5127a1f
Branch: refs/heads/branch-1.2
Commit: d5127a1f4089c131d564aecd025c486a59cbf7f3
Parents: c8a10f6
Author: Elliott Clark <ec...@apache.org>
Authored: Mon Oct 5 17:20:54 2015 -0700
Committer: Elliott Clark <ec...@apache.org>
Committed: Mon Oct 5 17:49:58 2015 -0700
----------------------------------------------------------------------
.../MultiVersionConcurrencyControl.java | 25 ++++++++------------
1 file changed, 10 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/d5127a1f/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java
index 00f349e..eba99e0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java
@@ -23,10 +23,13 @@ import java.util.concurrent.atomic.AtomicLong;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Objects;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.ClassSize;
-import org.mortbay.log.Log;
+
/**
* Manages the read/write consistency. This provides an interface for readers to determine what
@@ -35,6 +38,8 @@ import org.mortbay.log.Log;
*/
@InterfaceAudience.Private
public class MultiVersionConcurrencyControl {
+ private static final Log LOG = LogFactory.getLog(MultiVersionConcurrencyControl.class);
+
final AtomicLong readPoint = new AtomicLong(0);
final AtomicLong writePoint = new AtomicLong(0);
private final Object readWaiters = new Object();
@@ -206,7 +211,7 @@ public class MultiVersionConcurrencyControl {
synchronized (readWaiters) {
while (readPoint.get() < e.getWriteNumber()) {
if (count % 100 == 0 && count > 0) {
- Log.warn("STUCK: " + this);
+ LOG.warn("STUCK: " + this);
}
count++;
try {
@@ -225,19 +230,9 @@ public class MultiVersionConcurrencyControl {
@VisibleForTesting
public String toString() {
- StringBuffer sb = new StringBuffer(256);
- sb.append("readPoint=");
- sb.append(this.readPoint.get());
- sb.append(", writePoint=");
- sb.append(this.writePoint);
- synchronized (this.writeQueue) {
- for (WriteEntry we: this.writeQueue) {
- sb.append(", [");
- sb.append(we);
- sb.append("]");
- }
- }
- return sb.toString();
+ return Objects.toStringHelper(this)
+ .add("readPoint", readPoint)
+ .add("writePoint", writePoint).toString();
}
public long getReadPoint() {