Repository: hbase Updated Branches: refs/heads/0.94 8f9faabf5 -> 6bf164109
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/6bf16410 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6bf16410 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6bf16410 Branch: refs/heads/0.94 Commit: 6bf1641094e5ba91e78e151a3d2dc6fa099ebc74 Parents: 8f9faab Author: Lars Hofhansl <[email protected]> Authored: Fri Sep 19 12:01:37 2014 -0700 Committer: Lars Hofhansl <[email protected]> Committed: Fri Sep 19 12:01:37 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/6bf16410/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index eaa02d1..bf3a193 100644 --- a/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -39,6 +39,7 @@ import java.util.Map; import java.util.NavigableMap; import java.util.NavigableSet; import java.util.Random; +import java.util.RandomAccess; import java.util.Set; import java.util.TreeMap; import java.util.UUID; @@ -3108,9 +3109,11 @@ public class HRegion implements HeapSize { // , Writable{ for (Map.Entry<byte[], List<KeyValue>> e : familyMap.entrySet()) { byte[] family = e.getKey(); List<KeyValue> edits = e.getValue(); - + assert edits instanceof RandomAccess; Store store = getStore(family); - for (KeyValue kv: edits) { + int listSize = edits.size(); + for (int i=0; i< listSize; i++) { + KeyValue kv = edits.get(i); kv.setMemstoreTS(localizedWriteEntry.getWriteNumber()); size += store.add(kv); }
