Module Tjr_kv.Kv_store_with_lru
A KV store with an LRU cache frontend.
Architecture
We construct the following...
Queues: q_lru_pc and q_pc_bt
- q_lru_pc, a msg queue from the lru to the pcache
- q_pc_bt, a msg queue from the pcache to the B-tree
Blk allocator
- provides blk alloc/free
LRU
- lru_ops, concurrent-safe map operations
Pcache
- pcache_thread, which takes msgs from q_pc_bt and executes against the pcache; also performs detach occasionally and enqueues messages to q_pc_bt
B-tree
- btree_thread, listening to q_pc_bt and executing operations against the B-tree
Root manager
- root_man, which is responsible for persisting the roots for the B-tree and the pcache
val runtime_config : Kv_config_runtime.S.config lazy_t
module type S = sig ... end
module Examples : sig ... end
module Test : functor () sig ... end