package tezos-store
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ad9e08819871c75ba6f4530b125f7d157799398e4d77a1e6bfea9d91ff37ff55
sha512=c5dc4d40cc09bc6980fbbdb5c2e105bf4252cf9cfcb2b49660b0ebe4dc789f6709ec3b3bf2f87d81580d3eed9521eeb1c960f24d9b14eb0285aaba1f84d10a9b
doc/tezos-store.unix/Tezos_store_unix/Floating_block_index/index.html
Module Tezos_store_unix.Floating_block_index
Source
Floating blocks index map
Block info stored in the index map
Module Block_info
represents the values stored in the index which are used to locate the position of a block in a floating block store and its predecessors.
Key/value index associated to a floating block store where the key is a Block_hash.t
and the value is Block_info.t
.
include Index.S
with type key = Tezos_base.TzPervasives.Block_hash.t
and type value = Block_info.t
type key = Tezos_base.TzPervasives.Block_hash.t
The type for keys.
type value = Block_info.t
The type for values.
val empty_cache : unit -> cache
Construct 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 ->
t
The 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 -> unit
clear 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 -> unit
Flushes all internal buffers of the IO
instances.
- Passing
~no_callback:()
disables calling theflush_callback
passed tov
. - If
with_fsync
istrue
, this also flushes the OS caches for eachIO
instance.
val close : ?immediately:unit -> t -> unit
Closes 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 -> unit
sync 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 -> bool
is_merging t
returns true if t
is running a merge. Raises RO_not_allowed
if called by a read-only index.
val merge : t -> unit
merge 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.