type key = K.t
The type for keys.
type value = V.t
The type for values.
val v : ?fresh:bool -> ?readonly:bool -> log_size:int -> string -> t
The constructor for indexes.
- parameter fresh
whether an existing index should be overwritten.
- parameter read_only
whether read-only mode is enabled for this index.
- parameter log_size
the maximum number of bindings in the `log` IO.
val clear : t -> unit
clear t
clears t
so that there are no more bindings in it.
exception Invalid_key_size of key
exception Invalid_value_size of value
The exceptions raised when trying to add a key or a value of different size than encoded_size
replace t k v
binds k
to v
in t
, replacing any existing binding of k
.
filter t p
removes all the bindings (k, v) that do not satisfy p
. This operation is costly and blocking.
Iterates over the index bindings. Limitations:
- Order is not specified.
- In case of recent replacements of existing values (since the last merge), this will hit both the new and old bindings.
- May not observe recent concurrent updates to the index by other processes.
val flush : ?with_fsync:bool -> t -> unit
Flushes all internal buffers of the IO
instances. If with_fsync
is true
, this also flushes the OS caches for each IO
instance.
val close : t -> unit
Closes all resources used by t
.