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