package irmin-pack

  1. Overview
  2. Docs
Irmin backend which stores values in a pack file

Install

Dune Dependency

Authors

Maintainers

Sources

irmin-3.11.0.tbz
sha256=09996fbcc2c43e117a9bd8e9028c635e81cccb264d5e02d425ab8b06bbacdbdb
sha512=0391a6bf7b94a1edd50a3a8df9e58961739fa78d7d689d61f56bc87144483bad2ee539df595c33d9d52c29b3458da5dddf3a73b5eb85e49c4667c26d2cd46be1

doc/irmin-pack/Irmin_pack/Conf/index.html

Module Irmin_pack.ConfSource

Sourcetype length_header = [ `Varint ] option
Sourcetype inode_child_order = [
  1. | `Seeded_hash
    (*

    use a non-crypto seeded-hash of the step

    *)
  2. | `Hash_bits
    (*

    crypto hash the step and extract the relevant bits.

    *)
  3. | `Custom of depth:int -> bytes -> int
    (*

    use a custom index

    *)
]
Sourcemodule type S = sig ... end
Sourcetype merge_throttle = [
  1. | `Block_writes
  2. | `Overcommit_memory
]

Strategy for when attempting to write when the index log is full and waiting for an in-progress merge to complete.

  • `Block_writes will block writes
  • `Overcommit_memory will allow writes by growing the in-memory cache indefinitely
Sourceval merge_throttle_t : merge_throttle Irmin.Type.t
Sourcemodule Key : sig ... end
Sourceval fresh : Irmin.Backend.Conf.t -> bool

Flag to indicate that the store will start with fresh data on disk. Warning: setting this to true will delete existing data. Default is false.

Sourceval lru_size : Irmin.Backend.Conf.t -> int

Maximum size, in number of entries, of LRU cache. Default 100_000. Unused if lru_max_memory is set.

Sourceval lru_max_memory : Irmin.Backend.Conf.t -> int option

Maximum memory, in bytes, for the LRU cache to use. Default None, which falls back to lru_size for LRU limit.

Sourceval index_log_size : Irmin.Backend.Conf.t -> int

Size, in number of entries, of index log. Default 2_500_000.

Sourceval readonly : Irmin.Backend.Conf.t -> bool

Flag for opening data in read-only mode. Default false.

Strategy for how to handle writes when index log is full and a merge is in-progress. Default `Block_writes.

Sourceval root : Irmin.Backend.Conf.t -> string

Location of directory for saving data on disk.

Note: The path before the root directory must exist. Only the final directory in the path will be created if it is missing.

Sourceval lower_root : Irmin.Backend.Conf.t -> string option

Optional path for lower layer directory. Default None.

The presence or not of a lower layer has implications on the behaviour of the GC: if a lower layer is present, the GC will archive data instead of deleting it.

Strategy for choosing which objects to index. See Indexing_strategy.t for more discussion. Default Indexing_strategy.default

Sourceval use_fsync : Irmin.Backend.Conf.t -> bool

Flag to indicate that fsync should be used to enforce durability when flushing data to disk. Default false.

Sourceval no_migrate : Irmin.Backend.Conf.t -> bool

Flag to prevent migration of data. Default false.

Sourceval init : ?fresh:bool -> ?readonly:bool -> ?lru_size:int -> ?lru_max_memory:int option -> ?index_log_size:int -> ?merge_throttle:merge_throttle -> ?indexing_strategy:Indexing_strategy.t -> ?use_fsync:bool -> ?no_migrate:bool -> ?lower_root:string option -> string -> Irmin.config

init root creates a backend configuration for storing data with default configuration parameters and stored at root. Flags are documented above.

OCaml

Innovation. Community. Security.