You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2015/04/18 11:26:21 UTC

[18/19] hbase git commit: HBASE-13202 Procedure v2 - core framework (addendum)

HBASE-13202 Procedure v2 - core framework (addendum)


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

Branch: refs/heads/hbase-12439
Commit: b7abdd61c9058967aeedfeaf0a6a6f5499b99ee8
Parents: 92e922e
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Sat Apr 18 09:36:30 2015 +0100
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Sat Apr 18 09:46:14 2015 +0100

----------------------------------------------------------------------
 .../procedure2/store/ProcedureStoreTracker.java |  3 ++-
 .../store/TestProcedureStoreTracker.java        | 21 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/b7abdd61/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
index a4711f1..152f131 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java
@@ -211,6 +211,7 @@ public class ProcedureStoreTracker {
         long newStart = alignDown(procId);
         delta = (int)(start - newStart) >> ADDRESS_BITS_PER_WORD;
         offset = delta;
+        start = newStart;
       } else {
         // Add to tail
         long newEnd = alignUp(procId + 1);
@@ -383,7 +384,7 @@ public class ProcedureStoreTracker {
   @InterfaceAudience.Private
   public void setDeleted(final long procId, final boolean isDeleted) {
     BitSetNode node = getOrCreateNode(procId);
-    assert node.contains(procId) : "expected procId in the node";
+    assert node.contains(procId) : "expected procId=" + procId + " in the node=" + node;
     node.updateState(procId, isDeleted);
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/b7abdd61/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
index be759dc..17c71fe 100644
--- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
+++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.java
@@ -190,4 +190,25 @@ public class TestProcedureStoreTracker {
       tracker.clear();
     }
   }
+
+  @Test
+  public void testLoad() {
+    final int MAX_PROCS = 1000;
+    final ProcedureStoreTracker tracker = new ProcedureStoreTracker();
+    for (int numProcs = 1; numProcs < MAX_PROCS; ++numProcs) {
+      for (int start = 1; start <= numProcs; ++start) {
+        assertTrue(tracker.isEmpty());
+
+        LOG.debug("loading " + numProcs + " procs from start=" + start);
+        for (int i = start; i <= numProcs; ++i) {
+          tracker.setDeleted(i, false);
+        }
+        for (int i = 1; i < start; ++i) {
+          tracker.setDeleted(i, false);
+        }
+
+        tracker.clear();
+      }
+    }
+  }
 }