Irmin Versions Save

Irmin is a distributed database that follows the same design principles as Git

3.4.3

1 year ago

CHANGES:

Fixed

  • irmin-pack
    • Fix read-only opening flags of mapping for read-only opening of stores that do not have read-write rights on the files. (#2121, @Ngoguey42)

3.4.2

1 year ago

CHANGES:

Added

  • irmin

    • Add test_set_and_get* functions to retrieve commit associated with an update to the store (#2075, @patricoferris)
  • irmin-graphql

    • Expose test_set_and_get function as a new mutation (#2075, @patricoferris)
    • Add contents_hash function to get a value's hash (#2099, @patricoferris)
  • irmin-pack

    • Expose Gc.cancel to abort a running GC (#2101, @art-w)
  • irmin-tezos-utils

    • Add package irmin-tezos-utils containing a graphical tool for manual pack files analysis. (#1939, @clecat)

Changed

  • irmin-pack
    • irmin_pack_mem no longer exposes disk specifics functions (#2081, @icristescu)
    • Move unix specific details for Pack_key and Pack_value from irmin-pack to irmin-pack.unix (#2084, @metanivek)
    • Remove unnecessary files at open_rw and after a failed GC (#2095, @art-w)

Fixed

  • irmin-pack
    • Fix data race in RO instances when reading control file (#2100, @Ngoguey42)
    • Fix bugs in gc related to commits that share the same tree. (#2106, @icristescu)
    • Fix the traverse pack files commands in the irmin-tezos CLI to work with gced stores. (#1919, @icristescu)

3.4.1

1 year ago

CHANGES:

Added

  • irmin

    • Add Storage module for creating custom storage layers (#2047, @metanivek)
  • irmin-pack

    • Add Gc.is_allowed (#2076, @icristescu)
    • Add a weight parameter in the LRU implementation to bound memory usage (#2050, @samoht)

Changed

  • irmin
    • Removed Irmin_unix.set_listen_dir_hook (#2071, @zshipko)

Fixed

  • irmin-pack
    • Fix the behaviour of irmin-pack regarding hashes and keys to GCed objects. It used to not correctly ignore these entries, which could have resulted in various bugs. E.g. the impossibility to append an object that used to be dead and that has its hash in index. (#2070, @Ngoguey42)

3.4.0

1 year ago

CHANGES:

Added

  • irmin

    • Add Tree.seq to Tree's public API (#1923, @metanivek)
  • irmin-fs

    • Add unix subpackage, irmin-fs.unix (#1948, @metanivek)
  • irmin-git

    • Add unix subpackage, irmin-git.unix (#1948, @metanivek)
  • irmin-graphql

    • Add unix subpackage, irmin-graphql.unix (#1948, @metanivek)
  • irmin-http

    • Add unix subpackage, irmin-http.unix (#1948, @metanivek)
  • irmin-cli

    • Add new package for irmin command-line tool (#1951, @metanivek)
  • irmin-pack

    • Add a garbage collection feature, allowing a user to discard commits older than a specified commit. This feature is only enabled for stores that use Indexing_strategy.minimal. The primary API is Store.Gc.run, Store.Gc.wait, and Store.Gc.is_finished. See examples/gc.ml for a demonstration of usage.
    • Add a consistency check for the files on disk when opening store (#2004, @icristescu)

Changed

  • irmin

    • Replaced Tree.node_fn type with more general Tree.folder type to represent the different ways to use Tree.fold (#1918, @metanivek)
  • irmin-unix

    • Removed the irmin-unix package. Unix backends are now subpackages of their relevant backend (see irmin-fs.unix and irmin-git.unix). The CLI tool is in irmin-cli. For common unix utilities, see irmin.unix. (#1953, @metanivek)
  • irmin-graphql

    • Updated to graphql.0.14.0 (#1843, @patricoferris, @zshipko)

Fixed

  • irmin
    • Fix a bug in Irmin.LRU.clear that disables the cache completly after a clear. This is not used in any production code as only the GC is clearing LRU so far (#1998, @samoht)

3.3.2

1 year ago

CHANGES:

Fixed

  • Add a consistency check for the files on disk when opening store (#2004, #2007, #@icristescu)
  • Fix irmin-tezos CLI and ./tezos-node storage to work with v2 inodes (#1903, @icristescu, @Ngoguey42)

3.3.1

1 year ago

CHANGES:

Fixed

  • irmin-pack
    • Fix topology irregularities on disk which may lead to post-gc crashes. (#1925, @Ngoguey42, @icristescu)

3.3.0

1 year ago

CHANGES:

Added

  • irmin

    • Add Metrics module to describe metric gathering in irmin. (#1817, @maiste)
    • Add Repo.config to access config used to create repo (#1886, @zshipko)
  • irmin-unix

    • Add --plugin flag to load Dynlink plugins that can register new contents, hash and store types (#1808, @zshipko)
  • irmin-pack

    • Add use_fsync, dict_auto_flush_threshold and
    • suffix_auto_flush_threshold in store configuration. (#1865, @Ngoguey42)
    • Add no_migrate in store configuration. (#1893, @zshipko)

Changed

  • irmin-pack
    • Move Irmin_pack.Pack_store.Indexing_strategy to Irmin_pack.Indexing_strategy and the rest of Pack_store to Irmin_pack_unix (#1833, @Ngoguey42)
    • Different repos opened using the same store module no longer share caches and file descriptors (#1852, @Ngoguey42)
    • Snapshot.Import.close requires a repo as additional argument (#1872, @icristescu)
    • Upgraded on-disk format to version 3 to support better synchronisation mechanism between readwrite and readonly instances. This change is not backwards-compatible with existing stores using irmin-pack.x.x < 3.3.0 versions. A migration done by the readwrite instance is necessary to open older stores with irmin-pack.3.3.0. It is not forwards compatible. (#1865)
    • Rename Store.sync to Store.reload (#1900, @Ngoguey42).
    • Add Pack_error exception that centralizes many error cases alongside RO_not_allowed and Unix.Unix_error (#1899, @Ngoguey42)

Fixed

  • irmin-pack

    • Allow snapshot export to work on indexed root nodes (#1845, @icristescu)
  • irmin

    • Fix Tree.export for nodes exported twice using different repos. (#1795, @Ngoguey42)

3.2.2

2 years ago

CHANGES:

Fixed

  • irmin-pack
    • Allow snapshot export to work on indexed root nodes (#1846, @icristescu)

3.2.1

2 years ago

CHANGES:

  • Support all version of cmdliner (#1803, @samoht)

3.2.0

2 years ago

CHANGES:

Added

  • irmin-pack
    • Add forbid_empty_dir_persistence in store configuration. (#1789, @ngoguey42)
    • Add Store.Snapshot to expose the inodes for tezos snapshots (#1757, @icristescu).

Changed

  • irmin
    • Add error types in the API or proof verifiers. (#1791, @icristescu)
    • Reduced the memory footprint of Tree.fold ~uniq:`True by a factor of 2. (#1770, @CraigFe)