Skip to content

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 04:00
· 5 commits to main since this release
ed822e6

Pinned-snapshot views and fixes to first-commit failures

Summary

This release adds two APIs. With a new option, a caller opens a view at a named snapshot, and opening the view and loading that snapshot cost three store reads in place of four. A new Volume method loads a snapshot's manifest once and returns a reader that reads the snapshot's blocks without loading the manifest again. The release also fixes two failures in the first commits of a dataset.

Highlights

  • WithPinnedSnapshot: a view opened with this option reads the named snapshot's canonical manifest in place of the pointer and the head. Opening the view and loading the snapshot costs three store reads in place of four.
  • volume.Reader.ReaderAt: the method loads a snapshot's manifest once and returns a SnapshotReaderAt, whose reads fetch block data only. A caller that reads a snapshot in several ranges saves one store read for each range after the first.
  • A race with a first commit: a write that races a dataset's first commit no longer returns ErrSnapshotConflict.
  • Abandoned commits: two consecutive abandoned commits no longer leave a dataset that no writer can open.

Upgrade Notes

  • volume.Reader gains the method ReaderAt. A type that implements volume.Reader outside Lode must add the method.

Full Changelog: v0.15.0...v0.16.0