Repository: hbase
Updated Branches:
  refs/heads/master 7493e79f1 -> 0f21c41ed


HBASE-16801 The Append/Increment may return the data from future (Chiaping Tsai)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0f21c41e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0f21c41e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0f21c41e

Branch: refs/heads/master
Commit: 0f21c41eda828eae42dd9bab102988c252b1088a
Parents: 7493e79
Author: tedyu <yuzhih...@gmail.com>
Authored: Mon Oct 10 18:31:31 2016 -0700
Committer: tedyu <yuzhih...@gmail.com>
Committed: Mon Oct 10 18:31:31 2016 -0700

----------------------------------------------------------------------
 .../hbase/regionserver/ServerNonceManager.java  |  2 +-
 .../regionserver/TestServerNonceManager.java    | 21 ++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/0f21c41e/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ServerNonceManager.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ServerNonceManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ServerNonceManager.java
index 459b69a..47842fd 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ServerNonceManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ServerNonceManager.java
@@ -62,7 +62,7 @@ public class ServerNonceManager {
     private static final long WAITING_BIT = 4;
     private static final long ALL_FLAG_BITS = WAITING_BIT | STATE_BITS;
 
-    private static long mvcc;
+    private long mvcc;
 
     @Override
     public String toString() {

http://git-wip-us.apache.org/repos/asf/hbase/blob/0f21c41e/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java
index 5efc12c..89e414d 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java
@@ -46,6 +46,27 @@ import org.mockito.stubbing.Answer;
 public class TestServerNonceManager {
 
   @Test
+  public void testMvcc() throws Exception {
+    ServerNonceManager nm = createManager();
+    final long group = 100;
+    final long nonce = 1;
+    final long initMvcc = 999;
+    assertTrue(nm.startOperation(group, nonce, createStoppable()));
+    nm.addMvccToOperationContext(group, nonce, initMvcc);
+    nm.endOperation(group, nonce, true);
+    assertEquals(initMvcc, nm.getMvccFromOperationContext(group, nonce));
+    long newMvcc = initMvcc + 1;
+    for (long newNonce = nonce + 1; newNonce != (nonce + 5); ++newNonce) {
+      assertTrue(nm.startOperation(group, newNonce, createStoppable()));
+      nm.addMvccToOperationContext(group, newNonce, newMvcc);
+      nm.endOperation(group, newNonce, true);
+      assertEquals(newMvcc, nm.getMvccFromOperationContext(group, newNonce));
+      ++newMvcc;
+    }
+    assertEquals(initMvcc, nm.getMvccFromOperationContext(group, nonce));
+  }
+
+  @Test
   public void testNormalStartEnd() throws Exception {
     final long[] numbers = new long[] { NO_NONCE, 1, 2, Long.MAX_VALUE, 
Long.MIN_VALUE };
     ServerNonceManager nm = createManager();

Reply via email to