Module Tjr_kv.Kv_intf
Main types
module Btree_ops : sig ... end
module Msg_pc_bt : sig ... end
module Msg_lru_pc : sig ... end
Messages
type ('k, 'v, 't) pc_bt_msg
= ('k, 'v, Tjr_fs_shared.Blk_id_as_int.blk_id, 't) Msg_pc_bt.pc_bt_msg
class type ['k, 'v, 't] q_pc_bt = object ... end
type ('k, 'v, 't) lru_pc_msg
= ('k, 'v, 't) Msg_lru_pc.lru_pc_msg
class type ['k, 'v, 't] q_lru_pc = object ... end
Factory
type ('k, 'v, 'blk_id, 't, 'kvop_map) kv_store
= < btree_thread : < start_btree_thread : unit -> (unit, 't) Tjr_monad.m; >; lru_ops : ('k, 'v, 't) Tjr_lru_cache.mt_ops; pcache_thread : < start_pcache_thread : unit -> (unit, 't) Tjr_monad.m; >; pcache_ops : ('k, 'v, 'blk_id, 'kvop_map, 't) Tjr_pcache.pcache_ops; q_lru_pc : ('k, 'v, 't) q_lru_pc; q_pc_bt : ('k, 'v, 't) q_pc_bt; origin : 'blk_id; >
NOTE the two threads have to be started before various operations can complete; the lru_ops are the operations exposed to the user
type ('k, 'v, 'blk_id, 'blk, 't, 'params, 'kvop_map) kv_factory
= < with_ : blk_dev_ops:('blk_id, 'blk, 't) Tjr_fs_shared.blk_dev_ops -> barrier:(unit -> (unit, 't) Tjr_monad.m) -> sync:(unit -> (unit, 't) Tjr_monad.m) -> freelist_ops:('blk_id, 't) Tjr_plist.freelist_ops_af -> params:'params -> < create : unit -> (('k, 'v, 'blk_id, 't, 'kvop_map) kv_store, 't) Tjr_monad.m; restore : Tjr_fs_shared.Blk_id_as_int.blk_id -> (('k, 'v, 'blk_id, 't, 'kvop_map) kv_store, 't) Tjr_monad.m; >; >