Package com._1c.g5.v8.xmdb.impl
Class TreeCacheInMemory
java.lang.Object
com._1c.g5.v8.xmdb.impl.TreeCacheInMemory
- All Implemented Interfaces:
ITreeCache
In memory cache implementation
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongclone(long cLink) Clone element by cLink (new element should not be cached by default).voidDrop all cachevoiddropCaches(int segment) Drop cache entry with specified segment idvoidevict()Evict (usually - write to disk, but not sync) all cache entry (from write node cache).voidevict(int segmentId) Evict (usually - write to disk, but no sync) all cache entry (from write node cache) with specified segmentId.get(long cLink, boolean storeValuesInLeaf, int t, int segment) Read BNode from cache.Get underlying db enginebyte[]getObject(long cLink, int segment) Read object from cache.longPut (insert or update) BNode into cache.longputObject(byte[] value, int segment) Put object (value) into cachelongputObject(ByteBuffer value, int segment) Put object (value) into cachebyte[]removeObject(long cLink, int segment) Removes object from cache.voidsync()Sync all write node cache entry and syncvoidsync(int segmentId) Write to disk (and sync) all cache entry (from write node cache) with specified segmentId.
-
Constructor Details
-
TreeCacheInMemory
public TreeCacheInMemory(boolean threadSafe)
-
-
Method Details
-
put
Description copied from interface:ITreeCachePut (insert or update) BNode into cache. Cache return new adress of BNode (can be the same if BNode fit into allocated block)- Specified by:
putin interfaceITreeCache- Parameters:
oldPos- old cLink address of BNode or CompactLink.EMPTY_LINK if its first time save to current BNodeval- BNode to savesegment- segment idvalInLeaf- store value in leaf flagpreallocFreeSpace- default prealloc space for current BTree- Returns:
- actual cLink to stored BNode
-
putObject
Description copied from interface:ITreeCachePut object (value) into cache- Specified by:
putObjectin interfaceITreeCache- Parameters:
value- value to storesegment- segment id- Returns:
- actual cLink to stored object
-
putObject
public long putObject(byte[] value, int segment) Description copied from interface:ITreeCachePut object (value) into cache- Specified by:
putObjectin interfaceITreeCache- Parameters:
value- value to storesegment- segment id- Returns:
- actual cLink to stored object
-
get
Description copied from interface:ITreeCacheRead BNode from cache. If BNode won't be found in read/write node caches - it will be load from disk into read cache before return- Specified by:
getin interfaceITreeCache- Parameters:
cLink- BNode address (cLink)storeValuesInLeaf- value in leaf flag (for deserialization, if node on disk)t- node width, t (for deserialization, if node on disk)segment- segment id- Returns:
- readed BNode
-
getObject
public byte[] getObject(long cLink, int segment) Description copied from interface:ITreeCacheRead object from cache. If object won't be found in object cache - it will be load from disk into object cache before return- Specified by:
getObjectin interfaceITreeCache- Parameters:
cLink- object address (cLink)segment- segmentId- Returns:
- readed object
-
removeObject
public byte[] removeObject(long cLink, int segment) Description copied from interface:ITreeCacheRemoves object from cache.- Specified by:
removeObjectin interfaceITreeCache- Parameters:
cLink- object address (cLink)segment- segmentId- Returns:
- removed object
-
dropCaches
public void dropCaches(int segment) Description copied from interface:ITreeCacheDrop cache entry with specified segment id- Specified by:
dropCachesin interfaceITreeCache- Parameters:
segment- segment id to drop
-
dropCaches
public void dropCaches()Description copied from interface:ITreeCacheDrop all cache- Specified by:
dropCachesin interfaceITreeCache
-
sync
public void sync(int segmentId) Description copied from interface:ITreeCacheWrite to disk (and sync) all cache entry (from write node cache) with specified segmentId. Writed segments will be moved to read cache.- Specified by:
syncin interfaceITreeCache- Parameters:
segmentId- segment to write
-
sync
public void sync()Description copied from interface:ITreeCacheSync all write node cache entry and sync- Specified by:
syncin interfaceITreeCache
-
evict
public void evict(int segmentId) Description copied from interface:ITreeCacheEvict (usually - write to disk, but no sync) all cache entry (from write node cache) with specified segmentId. Writed segments will be removed from cache. Remove all cache entry with specified segmentId from read/object caches.- Specified by:
evictin interfaceITreeCache- Parameters:
segmentId- segment to evict
-
evict
public void evict()Description copied from interface:ITreeCacheEvict (usually - write to disk, but not sync) all cache entry (from write node cache). Remove all cache entry from read/object caches.- Specified by:
evictin interfaceITreeCache
-
getEngine
Description copied from interface:ITreeCacheGet underlying db engine- Specified by:
getEnginein interfaceITreeCache- Returns:
- engine
-
clone
public long clone(long cLink) Description copied from interface:ITreeCacheClone element by cLink (new element should not be cached by default). Not for value body objects.- Specified by:
clonein interfaceITreeCache- Parameters:
cLink- link to original element to clone- Returns:
- link to clone of original element
-