You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2013/10/15 19:02:14 UTC
svn commit: r1532431 -
/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java
Author: tedyu
Date: Tue Oct 15 17:02:14 2013
New Revision: 1532431
URL: http://svn.apache.org/r1532431
Log:
HBASE-9753 Excessive readpoint checks in MemstoreScanner
Modified:
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java
Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java?rev=1532431&r1=1532430&r2=1532431&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java (original)
+++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java Tue Oct 15 17:02:14 2013
@@ -678,7 +678,7 @@ public class MemStore implements HeapSiz
this.lock.readLock().lock();
try {
return Collections.<KeyValueScanner>singletonList(
- new MemStoreScanner());
+ new MemStoreScanner(MultiVersionConsistencyControl.getThreadReadPoint()));
} finally {
this.lock.readLock().unlock();
}
@@ -730,6 +730,8 @@ public class MemStore implements HeapSiz
// The allocator and snapshot allocator at the time of creating this scanner
volatile MemStoreLAB allocatorAtCreation;
volatile MemStoreLAB snapshotAllocatorAtCreation;
+
+ private long readPoint;
/*
Some notes...
@@ -752,9 +754,10 @@ public class MemStore implements HeapSiz
the adds to kvset in the MemStoreScanner.
*/
- MemStoreScanner() {
+ MemStoreScanner(long readPoint) {
super();
+ this.readPoint = readPoint;
kvsetAtCreation = kvset;
snapshotAtCreation = snapshot;
if (allocator != null) {
@@ -768,13 +771,11 @@ public class MemStore implements HeapSiz
}
private KeyValue getNext(Iterator<KeyValue> it) {
- long readPoint = MultiVersionConsistencyControl.getThreadReadPoint();
-
KeyValue v = null;
try {
while (it.hasNext()) {
v = it.next();
- if (v.getMvccVersion() <= readPoint) {
+ if (v.getMvccVersion() <= this.readPoint) {
return v;
}
}