[−][src]Module rdms::llrb
Module llrb
export an in-memory index type, implementing
Left Leaning Red Black tree.
Llrb type allow concurrent read and write access at API level, while behind the scenes, all CRUD access are serialized into single threaded operation. To serialize concurrent access Llrb uses a spin-lock implementation that can be configured to yield or spin while waiting for the lock.
LSM mode: Llrb index can support log-structured-merge while mutating the tree. In simple terms, this means that nothing shall be over-written in the tree and all the mutations for the same key shall be preserved until they are purged.
Possible ways to configure Llrb:
spinlatch, relevant only in multi-threaded context. Calling set_spinlatch() with true will have the calling thread to spin while waiting to acquire the lock. Calling it with false will have the calling thread to yield to OS scheduler while waiting to acquire the lock.
seqno, application can set the beginning sequence number before ingesting data into the index.
Structs
Iter | |
IterFullScan | Piece-wise full table scan type for both Llrb and Mvcc index. |
Llrb | Single threaded, in-memory index using left-leaning-red-black tree. |
LlrbReader | Read handle into Llrb index, that implements both Send and Sync. |
LlrbWriter | Write handle into Llrb index, that implements both Send and Sync. |
Range | Range scan between a |
Reverse | Reverse range scan between a |