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; >; >