.../apache/hadoop/hbase/regionserver/AbstractMemStore.java | 2 +- .../hadoop/hbase/regionserver/CompactingMemStore.java | 4 ++-- .../apache/hadoop/hbase/regionserver/DefaultMemStore.java | 4 ++-- .../hadoop/hbase/regionserver/MemStoreCompactor.java | 2 +- .../apache/hadoop/hbase/regionserver/MemStoreScanner.java | 14 +++++++------- .../apache/hadoop/hbase/regionserver/SegmentScanner.java | 10 +--------- 6 files changed, 14 insertions(+), 22 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/AbstractMemStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/AbstractMemStore.java index 0f27e0e..833cd4d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/AbstractMemStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/AbstractMemStore.java @@ -445,7 +445,7 @@ public abstract class AbstractMemStore implements MemStore { * @param readPt the version number required to initialize the scanners * @return a list of Store segment scanners, one per each store segment */ - protected abstract List getListOfScanners(long readPt) throws IOException; + protected abstract List getListOfScanners(long readPt) throws IOException; /** * Returns an ordered list of segments from most recent to oldest in memstore diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java index ec5684d..0ad4838 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java @@ -226,10 +226,10 @@ public class CompactingMemStore extends AbstractMemStore { /* * Scanners are ordered from 0 (oldest) to newest in increasing order. */ - protected List getListOfScanners(long readPt) throws IOException { + protected List getListOfScanners(long readPt) throws IOException { List pipelineList = pipeline.getSegments(); long order = pipelineList.size(); - LinkedList list = new LinkedList(); + LinkedList list = new LinkedList(); list.add(getActive().getSegmentScanner(readPt, order+1)); for (Segment item : pipelineList) { list.add(item.getSegmentScanner(readPt, order)); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DefaultMemStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DefaultMemStore.java index cdc910e..2535321 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DefaultMemStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DefaultMemStore.java @@ -113,8 +113,8 @@ public class DefaultMemStore extends AbstractMemStore { /* * Scanners are ordered from 0 (oldest) to newest in increasing order. */ - protected List getListOfScanners(long readPt) throws IOException { - List list = new ArrayList(2); + protected List getListOfScanners(long readPt) throws IOException { + List list = new ArrayList(2); list.add(0, getActive().getSegmentScanner(readPt, 1)); list.add(1, getSnapshot().getSegmentScanner(readPt, 0)); return list; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.java index 5b2876d..691ebb9 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.java @@ -67,7 +67,7 @@ class MemStoreCompactor { public boolean startCompaction() throws IOException { if (!compactingMemStore.hasCompactibleSegments()) return false; // no compaction on empty - List scanners = new ArrayList(); + List scanners = new ArrayList(); // get the list of segments from the pipeline versionedList = compactingMemStore.getCompactibleSegments(); // the list is marked with specific version diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreScanner.java index 01a7ff3..bc5ae8d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreScanner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreScanner.java @@ -57,7 +57,7 @@ public class MemStoreScanner extends NonLazyKeyValueScanner { private long readPoint; // remember the initial version of the scanners list - List scanners; + List scanners; // pointer back to the relevant MemStore // is needed for shouldSeek() method private AbstractMemStore backwardReferenceToMemStore; @@ -82,7 +82,7 @@ public class MemStoreScanner extends NonLazyKeyValueScanner { this(ms, readPt, Type.UNDEFINED); } - public MemStoreScanner(AbstractMemStore ms, List scanners, long readPoint, + public MemStoreScanner(AbstractMemStore ms, List scanners, long readPoint, Type type) throws IOException { super(); this.readPoint = readPoint; @@ -262,8 +262,8 @@ public class MemStoreScanner extends NonLazyKeyValueScanner { return true; } - for (SegmentScanner sc : scanners) { - if (sc.shouldSeek(scan, oldestUnexpiredTS)) { + for (KeyValueScanner sc : scanners) { + if (sc.shouldUseScanner(scan, store, oldestUnexpiredTS)) { return true; } } @@ -275,7 +275,7 @@ public class MemStoreScanner extends NonLazyKeyValueScanner { public String toString() { StringBuffer buf = new StringBuffer(); int i = 1; - for (SegmentScanner scanner : scanners) { + for (KeyValueScanner scanner : scanners) { buf.append("scanner (" + i + ") " + scanner.toString() + " ||| "); i++; } @@ -289,7 +289,7 @@ public class MemStoreScanner extends NonLazyKeyValueScanner { */ private boolean restartBackwardHeap(Cell cell) throws IOException { boolean res = false; - for (SegmentScanner scan : scanners) { + for (KeyValueScanner scan : scanners) { res |= scan.seekToPreviousRow(cell); } this.backwardHeap = @@ -315,7 +315,7 @@ public class MemStoreScanner extends NonLazyKeyValueScanner { forwardHeap = null; // before building the heap seek for the relevant key on the scanners, // for the heap to be built from the scanners correctly - for (SegmentScanner scan : scanners) { + for (KeyValueScanner scan : scanners) { if (toLast) { res |= scan.seekToLastRow(); } else { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java index a04c1da..1191f30 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java @@ -243,7 +243,7 @@ public class SegmentScanner implements KeyValueScanner { */ @Override public boolean shouldUseScanner(Scan scan, Store store, long oldestUnexpiredTS) { - return true; + return getSegment().shouldSeek(scan,oldestUnexpiredTS); } /** * This scanner is working solely on the in-memory MemStore therefore this @@ -305,14 +305,6 @@ public class SegmentScanner implements KeyValueScanner { // do nothing } - /** - * Returns whether the given scan should seek in this segment - * @return whether the given scan should seek in this segment - */ - public boolean shouldSeek(Scan scan, long oldestUnexpiredTS) { - return getSegment().shouldSeek(scan,oldestUnexpiredTS); - } - protected Segment getSegment(){ return segment; }