Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 2.17 KB

CHANGELOG.md

File metadata and controls

64 lines (43 loc) · 2.17 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v0.3.1

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

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

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 release. No stability guarantees are being made at this stage. Feedback is welcome.