Module Kv_hash
Kv-hash, a key-value store
Bucket
module Bucket_intf : sig ... endMain interface types for bucket
module Bucket : sig ... endmodule Bucket0 = Bucket.Bucket0Bucket store
module Bucket_store_intf : sig ... endA store of buckets, backed by a file/mmap
module Bucket_store : sig ... endA store of buckets, backed by a file/mmap
module Bucket_store0 = Bucket_store.Bucket_store0Partition
module Partition_intf : sig ... endmodule Partition : sig ... endTop-level bucket partition, implemented using Jane St. Map
module Partition_ii = Partition.Partition_iiNon-volatile map (int -> int)
module Freelist : sig ... endBucket freelist
module Nv_map_ii_intf : sig ... endPersistent hashtable interface (for
int->intmap)
module Nv_map_ii : sig ... endNOTE this doesn't have a values file... it just combines partition and bucket
module Nv_map_ii0 = Nv_map_ii.Nv_map_ii0Non-volatile map (string -> string)
module Values_file : sig ... endA file containing a collection of "values" (the values stored in the
int->intmap are the offsets of the real values within the values file).
module Nv_map_ss_intf : sig ... endGeneral non-volatile map from string to string
module Nv_map_ss_private : sig ... endThe core implementation is for a map
int->int; here we add some additional support to enable a mapstring->string.
module Nv_map_ss0 = Nv_map_ss_private.Nv_map_ss0Frontend and merge process
module Frontend : sig ... endThe frontend: record updates in two logs (rotating between them).
module Merge_process : sig ... endA process that is responsible for merging data into the main KV store.
module Frontend_ro : sig ... endRead-only frontend
module Private : sig ... end