|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.hadoop.hbase.regionserver.MemStore
public class MemStore
The MemStore holds in-memory modifications to the Store. Modifications
are KeyValue
s. When asked to flush, current memstore is moved
to snapshot and is cleared. We continue to serve edits out of new memstore
and backing snapshot until flusher reports in that the flush succeeded. At
this point we let the snapshot go.
TODO: Adjust size of the memstore when we remove items because they have
been deleted.
TODO: With new KVSLS, need to make sure we update HeapSize with difference
in KV size.
Nested Class Summary | |
---|---|
protected class |
MemStore.MemStoreScanner
|
Field Summary | |
---|---|
static long |
DEEP_OVERHEAD
|
static long |
FIXED_OVERHEAD
|
Constructor Summary | |
---|---|
MemStore()
Default constructor. |
|
MemStore(org.apache.hadoop.conf.Configuration conf,
KeyValue.KVComparator c)
Constructor. |
Method Summary | |
---|---|
TimeRangeTracker |
getSnapshotTimeRangeTracker()
|
long |
heapSize()
Get the entire heap usage for this MemStore not including keys in the snapshot. |
long |
keySize()
Get the heap usage of KVs in this MemStore. |
static void |
main(String[] args)
Code to help figure if our approximation of object heap sizes is close enough. |
boolean |
shouldSeek(Scan scan)
Check if this memstore may contain the required keys |
long |
updateColumnValue(byte[] row,
byte[] family,
byte[] qualifier,
long newValue,
long now)
Given the specs of a column, update it, first by inserting a new record, then removing the old one. |
long |
upsert(List<KeyValue> kvs)
Update or insert the specified KeyValues. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final long FIXED_OVERHEAD
public static final long DEEP_OVERHEAD
Constructor Detail |
---|
public MemStore()
public MemStore(org.apache.hadoop.conf.Configuration conf, KeyValue.KVComparator c)
c
- ComparatorMethod Detail |
---|
public long updateColumnValue(byte[] row, byte[] family, byte[] qualifier, long newValue, long now)
row
- family
- qualifier
- newValue
- now
-
public long upsert(List<KeyValue> kvs)
For each KeyValue, insert into MemStore. This will atomically upsert the value for that row/family/qualifier. If a KeyValue did already exist, it will then be removed.
Currently the memstoreTS is kept at 0 so as each insert happens, it will be immediately visible. May want to change this so it is atomic across all KeyValues.
This is called under row lock, so Get operations will still see updates atomically. Scans will only see each KeyValue update as atomic.
kvs
-
public boolean shouldSeek(Scan scan)
scan
-
public TimeRangeTracker getSnapshotTimeRangeTracker()
public long heapSize()
heapSize
in interface HeapSize
public long keySize()
public static void main(String[] args)
args
- main args
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |