package index
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=9388835098a4ed44eeced070ed86855c049df12a98311d4980b9b724ecab8860
sha512=2e3052aac2a3ee4190e5cbc914d37904d589997463b22023d31e6b75e21d779342088324a9b42d1854bf7131f32f3e75f6f9cc2cb214d79dd2baa0b4cc2eaad3
doc/index/Index/module-type-S/index.html
Module type Index.SSource
Index module signature.
val empty_cache : unit -> cacheConstruct a new empty cache of index instances.
val v :
?flush_callback:(unit -> unit) ->
?cache:cache ->
?fresh:bool ->
?readonly:bool ->
?throttle:[ `Overcommit_memory | `Block_writes ] ->
?lru_size:int ->
log_size:int ->
string ->
tThe constructor for indexes.
This can be used to ensure certain pre-conditions are met before bindings are persisted to disk. (For instance, if the index bindings are pointers into another data-structure d, it may be necessary to flush d first to avoid creating dangling pointers.)
val clear : t -> unitclear t clears t so that there are no more bindings in it.
replace t k v binds k to v in t, replacing any existing binding of k.
If overcommit is true, the operation does not triger a merge, even if the caches are full. By default overcommit is false.
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 : ?no_callback:unit -> ?with_fsync:bool -> t -> unitFlushes all internal buffers of the IO instances.
- Passing
~no_callback:()disables calling theflush_callbackpassed tov. - If
with_fsyncistrue, this also flushes the OS caches for eachIOinstance.
val close : ?immediately:unit -> t -> unitCloses all resources used by t, flushing any internal buffers in the instance.
If immediately is passed, this operation will abort any ongoing background processes. This guarantees not to corrupt the store, but may require additional work to be done on the next startup.
val sync : t -> unitsync t syncs a read-only index with the files on disk. Raises RW_not_allowed if called by a read-write index.
val is_merging : t -> boolis_merging t returns true if t is running a merge. Raises RO_not_allowed if called by a read-only index.
val merge : t -> unitmerge t forces a merge for t.
If there is no merge running, this operation is non-blocking, i.e. it returns immediately, with the merge running concurrently.
If a merge is running already, this operation blocks until the previous merge is complete. It then launches a merge (which runs concurrently) and returns.
val try_merge : t -> unittry_merge is like merge but is a no-op if the number of entries in the write-ahead log is smaller than log_size.
module Checks : sig ... endOffline fsck-like utility for checking the integrity of Index stores built using this module.