Skip to content

Releases: khonsulabs/okaywal

v0.3.1

26 Nov 14:08
ff84a55
Compare
Choose a tag to compare

Fixed

  • Rolling back the first entry of a log file caused its data to become skipped
    during recovery due to a small logic bug that rewrote the file's header if no
    entries had been fsynced. Thanks to @losfair for the succinct test case in
    issue #14.

v0.3.0

11 Oct 17:02
eb9d639
Compare
Choose a tag to compare

Added

  • WriteAheadLog::checkpoint_active() is a new function that checkpoints the
    currently stored data, regardless of whether the configured thresholds are
    met. This function returns after the active file has been rotated and the
    checkpointing thread has been notified of the file to checkpoint. Thanks to
    @blakesmith for implementing this in #11

v0.2.0

06 Jan 23:55
a555dbf
Compare
Choose a tag to compare

Breaking Changes

  • LogManager::checkpoint_to now has an additional parameter, wal: &WriteAheadLog. This is provided for convenience because it may be necessary
    to randomly access information in the WAL while performing a checkpointing
    operation.

Added

  • LogPosition::serialize_to/LogPosition::deserialize_from provide methods
    for reading and writing a LogPosition from an arbitrary Write/Read
    implementor (respectively). This uses a fixed-length serialization with a
    length of LogPosition::SERIALIZED_LENGTH -- 16 bytes.

Changed

  • WriteAheadLog::shutdown() now no longer requires all instances of
    WriteAheadLog to be dropped to succeed.

Fixed

  • When the WAL recycles a segment file, the LogPosition returned is now
    correct. Previously, returned LogPositions would contain the segment file's
    old id, causing those positions to be unreadable.
  • When reading from a LogPosition, if the data has not been flushed or
    synchronized to disk yet, the read will be blocked until the sync operation
    finishes.

v0.1.0 - Initial Public Preview

03 Jan 21:52
b6ba459
Compare
Choose a tag to compare

This release is not ready for anyone to use in production. The file format had changes as recently as three days ago, and should be considered unstable at this stage. With that caveat aside, I would love any feedback on this crate's design.