|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.hadoop.hbase.regionserver.KeyValueHeap
public class KeyValueHeap
Implements a heap merge across any number of KeyValueScanners.
Implements KeyValueScanner itself.
This class is used at the Region level to merge across Stores and at the Store level to merge across the memstore and StoreFiles.
In the Region case, we also need InternalScanner.next(List), so this class also implements InternalScanner. WARNING: As is, if you try to use this as an InternalScanner at the Store level, you will get runtime exceptions.
Constructor Summary | |
---|---|
KeyValueHeap(KeyValueScanner[] scanners,
KeyValue.KVComparator comparator)
Constructor |
Method Summary | |
---|---|
void |
close()
Close the KeyValue scanner. |
PriorityQueue<KeyValueScanner> |
getHeap()
|
KeyValue |
next()
Return the next KeyValue in this scanner, iterating the scanner |
boolean |
next(List<KeyValue> result)
Gets the next row of keys from the top-most scanner. |
KeyValue |
peek()
Look at the next KeyValue in this scanner, but do not iterate scanner. |
boolean |
seek(KeyValue seekKey)
Seeks all scanners at or below the specified seek key. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public KeyValueHeap(KeyValueScanner[] scanners, KeyValue.KVComparator comparator)
scanners
- comparator
- Method Detail |
---|
public KeyValue peek()
KeyValueScanner
peek
in interface KeyValueScanner
public KeyValue next()
KeyValueScanner
next
in interface KeyValueScanner
public boolean next(List<KeyValue> result) throws IOException
This method takes care of updating the heap.
This can ONLY be called when you are using Scanners that implement
InternalScanner as well as KeyValueScanner (a StoreScanner
).
next
in interface InternalScanner
IOException
public void close()
KeyValueScanner
close
in interface Closeable
close
in interface InternalScanner
close
in interface KeyValueScanner
public boolean seek(KeyValue seekKey)
As individual scanners may run past their ends, those scanners are automatically closed and removed from the heap.
seek
in interface KeyValueScanner
seekKey
- KeyValue to seek at or after
public PriorityQueue<KeyValueScanner> getHeap()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |