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:32 UTC

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

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);