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
Modifier and TypeMethodDescriptionvoidclear()Remove all element from indexclone(int newSegment) Create clone of current index with new segmentIdcloneHeader(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 keybooleanTest if index contain specified keyvoidDrop all cache without store write cache to diskentrySet()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 value by String keygetCache()Get internal index cache (same as database cache)intGet segment id of indexkeySet()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 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 from indexSerialize index headerintsize()Get index size in elementsvoidsync()Sync index state with internal store (to file).
-
Method Details
-
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
Create clone of current index with new segmentId- Parameters:
newSegment- new segment id- Returns:
- new index
-
cloneHeader
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
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
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
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
Remove String key from index- Parameters:
key- key to remove- Returns:
- old value (or null if key doesn;t exist in index)
-
entrySet
Get entry set from index- Returns:
- entry<Key,Value> set
-
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
Merge two KVS into current index (first can be this index)- Parameters:
s1- first KVS, bases2- second KVS, updates
-
merge
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 -
keySet
Get keys set (clone all keys from index into new set)- Returns:
- keys set
-