Skip to content

Releases: mirage/index

1.6.2

05 Jun 13:44
5e64a4b
Compare
Choose a tag to compare

CHANGES:

Changed

  • Update for compatibility with mtime.2.0.0, which is now the lower bounds
    (#392, @patricoferris)

1.6.1

08 Jun 10:14
Compare
Choose a tag to compare

CHANGES:

Added

  • Support all version of cmdliner (#386)

Fixed

  • Make index-bench's bench executable private, avoiding executable
    name collisions in opam-monorepo projects. (#389, @NathanReb)

1.6.0

12 Feb 12:05
Compare
Choose a tag to compare

CHANGES:

Added

  • Added a Raw.Header_prefix function, for use by libraries that share the
    file format used by index.unix. (#378)

1.5.0

09 Nov 12:50
98c9315
Compare
Choose a tag to compare

CHANGES:

Changed

  • The benchmarks now use tezos-base58 instead of tezos-context-hash (#367)

  • Add an LRU to cache the result of Index.find operations. The default LRU
    capacity is 30_000 entries. (#366)

1.4.2

15 Oct 13:17
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Fix stats recording in Raw.unsafe_write (#351)

Changed

  • Changed the implementation of the write-ahead log to significantly reduce its
    memory usage (at the cost of some additional disk IO). (#355)

1.3.3

27 Jul 09:17
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Attempt to recover from log_async invariant violations during an explicit
    sync operation, rather than failing immediately. (#329)

1.4.1

16 Jul 13:40
acdad0d
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Proper cleaning of merge file descriptors when aborting a merge (#326)

  • Recover from crash of the merge thread. When this happen, the main thread can
    continue to run and will need to recover from the crash before doing a new
    merge. This fixes a critical issue which might cause data loss (#339)

  • Make sure that no entries can disappear for read-only instances during
    log_async recovery (#338)

1.3.2

16 Jul 13:37
7812ab5
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Recover from crash of the merge thread. When this happen, the main thread can
    continue to run and will need to recover from the crash before doing a new
    merge. This fixes a critical issue which might cause data loss (#339)

  • Make sure that no entries can disappear for read-only instances during
    log_async recovery (#338)

1.4.0

16 Jun 20:56
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Fixed a crash-consistency bug due to a potential flush of an incomplete entry
    to disk. Entries are now flushed as complete strings. (#301)

  • Fixed a performance issue for Index.sync when there is a blocking merge in
    progress: the log_async file was not cached properly and fully reloaded
    from disk every time. (#310)

  • Added fsync after Index.clear to signal more quickly to read-only instances
    than something has changed in the file (#308)

  • Attempt to recover from log_async invariant violations during an explicit
    sync operation, rather than failing immediately. (#329)

Changed

  • Release overly defensive warnings occuring when pre-fetching the disk. (#322)

  • Specialise IO.v to create read-only or read-write instances. (#291)

  • Optimised the in-memory representation of index handles and intermediate
    buffers, resulting in a significant reduction in memory use. (#273, #279)

  • Benches are now executed 3 times and a new option nb-exec has been added (#292)

  • clear removes the files on disks and opens new ones containing only the
    header. (#288)

  • Index.Make now requires an implementation of a monotonic time source.
    (#321)

  • The Index.Make functor now takes a single Platform argument containing
    all system dependencies (i.e. IO, Clock, Semaphore and Thread). The
    Platform module holds the necessary types for these modules. (#321, #330)

Added

  • Added benchmarks that replay a trace of index operations. (#300)

  • Log reporter for the benches

1.3.1

29 Apr 12:52
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Reduce allocations during merge (#274, #277)

  • Protect concurrent syncs with a lock (#309)

  • Fixed a performance issue for Index.sync when there is a blocking merge in
    progress: the log_async file was not cached properly and fully reloaded
    from disk every time. (#310)

  • Release the merge lock if a merge raises an exception (#312)

  • Added fsync after Index.clear to signal more quickly to read-only instances
    than something has changed in the file (#308)

Changed

  • Specialise IO.v to create read-only or read-write instances. (#291)

  • clear removes the files on disks and opens new ones containing only the
    header. (#288, #307, #317)