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 TypeMethodDescriptionvoid
clear()
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 segmentIdvoid
close()
Close index (sync and clear caches)boolean
contains
(long key) Test if index contain specified keyboolean
Test if index contain specified keyvoid
Drop all cache without store write cache to diskentrySet()
Get entry set from indexvoid
evict()
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)int
Get segment id of indexkeySet()
Get keys set (clone all keys from index into new set)void
merge
(KeyValueStorage<K, byte[]> s1, Map<K, byte[]> s2) Merge KVS and Map into current index (first can be this index)void
merge
(KeyValueStorage<K, V> s1, KeyValueStorage<K, V> s2) Merge two KVS into current index (first can be this index)void
put
(long key, byte[] value) Put new key/value pair in index (by long key)void
Put new key/value pair in index (by String key)void
putRAW
(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 headerint
size()
Get index size in elementsvoid
sync()
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
-