You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2014/09/19 20:50:31 UTC

[1/2] git commit: HBASE-12023 HRegion.applyFamilyMapToMemstore creates too many iterator objects. (Vladimir Rodionov)

Repository: hbase
Updated Branches:
  refs/heads/0.98 09fa2dbab -> a2d008a82
  refs/heads/branch-1 57f6ff508 -> 62e8cf751


HBASE-12023 HRegion.applyFamilyMapToMemstore creates too many iterator objects. (Vladimir Rodionov)


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

Branch: refs/heads/branch-1
Commit: 62e8cf751e530db0ff0522bfca58db177a508d00
Parents: 57f6ff5
Author: Lars Hofhansl <la...@apache.org>
Authored: Fri Sep 19 11:42:12 2014 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Fri Sep 19 11:43:08 2014 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/regionserver/HRegion.java    | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/62e8cf75/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index 89cc5c9..aca8dbc 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -35,6 +35,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.NavigableMap;
 import java.util.NavigableSet;
+import java.util.RandomAccess;
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.concurrent.Callable;
@@ -3096,9 +3097,11 @@ public class HRegion implements HeapSize { // , Writable{
     for (Map.Entry<byte[], List<Cell>> e : familyMap.entrySet()) {
       byte[] family = e.getKey();
       List<Cell> cells = e.getValue();
-
+      assert cells instanceof RandomAccess;
       Store store = getStore(family);
-      for (Cell cell: cells) {
+      int listSize = cells.size();
+      for (int i=0; i < listSize; i++) {
+        Cell cell = cells.get(i);  
         CellUtil.setSequenceId(cell, mvccNum);
         Pair<Long, Cell> ret = store.add(cell);
         size += ret.getFirst();


[2/2] git commit: HBASE-12023 HRegion.applyFamilyMapToMemstore creates too many iterator objects. (Vladimir Rodionov)

Posted by la...@apache.org.
HBASE-12023 HRegion.applyFamilyMapToMemstore creates too many iterator objects. (Vladimir Rodionov)


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

Branch: refs/heads/0.98
Commit: a2d008a82a81d535cf97cdc3f696e6a5fc0a2242
Parents: 09fa2db
Author: Lars Hofhansl <la...@apache.org>
Authored: Fri Sep 19 11:42:12 2014 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Fri Sep 19 11:48:10 2014 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/regionserver/HRegion.java   | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/a2d008a8/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index 524dba6..66248a5 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.NavigableMap;
 import java.util.NavigableSet;
+import java.util.RandomAccess;
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.UUID;
@@ -2907,9 +2908,12 @@ public class HRegion implements HeapSize { // , Writable{
       for (Map.Entry<byte[], List<Cell>> e : familyMap.entrySet()) {
         byte[] family = e.getKey();
         List<Cell> cells = e.getValue();
-
+        assert cells instanceof RandomAccess;
         Store store = getStore(family);
-        for (Cell cell: cells) {
+        Store store = getStore(family);
+        int listSize = cells.size();
+        for (int i=0; i < listSize; i++) {
+          Cell cell = cells.get(i);  
           KeyValue kv = KeyValueUtil.ensureKeyValue(cell);
           kv.setMvccVersion(localizedWriteEntry.getWriteNumber());
           size += store.add(kv);