Package com._1c.g5.v8.xmdb
Interface KeyValueStorage<K,V>
-
- All Known Subinterfaces:
TransactionalKVS<K,V>
- All Known Implementing Classes:
BTreeMap,TransactionalKVSImpl
public interface KeyValueStorage<K,V>Key-value storage (index)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclear()Remove all element from indexKeyValueStorageclone(int newSegment)Create clone of current index with new segmentIdKeyValueStoragecloneHeader(int newSegment)Clone only header of current index with new segmentIdvoidclose()Close index (sync and clear caches)booleancontains(long key)Test if index contain specified keybooleancontains(String key)Test if index contain specified keyvoiddropCaches()Drop all cache without store write cache to diskSet<Map.Entry<K,V>>entrySet()Get entry set from indexvoidevict()Advice to XMDB (put all data from caches to files, but no sync fdatasync call).byte[]get(long key)Get value by long keybyte[]get(String key)Get value by String keyITreeCachegetCache()Get internal index cache (same as database cache)intgetSegment()Get segment id of indexSet<? extends Object>keySet()Get keys set (clone all keys from index into new set)voidmerge(KeyValueStorage<K,byte[]> s1, Map<K,byte[]> s2)Merge KVS and Map into current index (first can be this index)voidmerge(KeyValueStorage<K,V> s1, KeyValueStorage<K,V> s2)Merge two KVS into current index (first can be this index)voidput(long key, byte[] value)Put new key/value pair in index (by long key)voidput(String key, byte[] value)Put new key/value pair in index (by String key)voidputRAW(long key, byte[] rawValue)Put raw (complex) value to index with complex value typebyte[]remove(long key)Remove long key from indexbyte[]remove(String key)Remove String key from indexByteBufferserialize()Serialize index headerintsize()Get index size in elementsvoidsync()Sync index state with internal store (to file).
-
-
-
Method Detail
-
size
int size()
Get index size in elements- Returns:
- size
-
sync
void sync()
Sync index state with internal store (to file). Force write cache to store to engine;
-
close
void close()
Close index (sync and clear caches)
-
clone
KeyValueStorage clone(int newSegment)
Create clone of current index with new segmentId- Parameters:
newSegment- new segment id- Returns:
- new index
-
cloneHeader
KeyValueStorage cloneHeader(int newSegment)
Clone only header of current index with new segmentId- Parameters:
newSegment- new segment id- Returns:
- new index (same as old, but with new index header and segment)
-
clear
void clear()
Remove all element from index
-
contains
boolean contains(long key)
Test if index contain specified key- Parameters:
key- key to test- Returns:
- "key exist in index" flag
-
contains
boolean contains(String key)
Test if index contain specified key- Parameters:
key- key to test- Returns:
- "key exist in index" flag
-
get
byte[] get(long key)
Get value by long key- Parameters:
key- key- Returns:
- value or null (if key doesn;t exist in index)
-
get
byte[] get(String key)
Get value by String key- Parameters:
key- key- Returns:
- value or null (if key doesn;t exist in index)
-
put
void put(long key, byte[] value)Put new key/value pair in index (by long key)- Parameters:
key- key to putvalue- value to put
-
put
void put(String key, byte[] value)
Put new key/value pair in index (by String key)- Parameters:
key- key to putvalue- value to put
-
remove
byte[] remove(long key)
Remove long key from index- Parameters:
key- key to remove- Returns:
- old value (or null if key doesn;t exist in index)
-
remove
byte[] remove(String key)
Remove String key from index- Parameters:
key- key to remove- Returns:
- old value (or null if key doesn;t exist in index)
-
getCache
ITreeCache getCache()
Get internal index cache (same as database cache)- Returns:
- index cache
-
dropCaches
void dropCaches()
Drop all cache without store write cache to disk
-
serialize
ByteBuffer serialize()
Serialize index header- Returns:
- index header byte[] representation
-
getSegment
int getSegment()
Get segment id of index- Returns:
- segment id
-
merge
void merge(KeyValueStorage<K,V> s1, KeyValueStorage<K,V> s2)
Merge two KVS into current index (first can be this index)- Parameters:
s1- first KVS, bases2- second KVS, updates
-
merge
void merge(KeyValueStorage<K,byte[]> s1, Map<K,byte[]> s2)
Merge KVS and Map into current index (first can be this index)- Parameters:
s1- fist KVS, bases2- second Map, updates
-
putRAW
void putRAW(long key, byte[] rawValue)Put raw (complex) value to index with complex value type- Parameters:
key- long hash key of raw valuerawValue- raw (complex) value
-
evict
void evict()
Advice to XMDB (put all data from caches to files, but no sync fdatasync call). Not mandatory, just safe RAM & speedup another threads
-
-