Skip to content

v0.9.0

Latest

Choose a tag to compare

@justapithecus justapithecus released this 08 Mar 15:01
· 2 commits to main since this release
e4c873c

Retry-aware commits with full backoff control

Summary

Lode v0.9.0 adds opt-in automatic CAS retry on snapshot conflict for both Dataset and Volume, eliminating the need for callers to implement retry loops. The Volume option surface is unified with Dataset's shared Option interface, removing the separate VolumeOption type.

Highlights

  • Opt-in CAS retry: WithRetryCount(n) enables bounded automatic retry within the commit path. Data files are written once — only the manifest re-parent and pointer CAS are retried.
  • Full backoff customization: WithRetryBaseDelay(d), WithRetryMaxDelay(d), WithRetryJitter(j) for jittered exponential backoff tuning. Defaults: 10ms base, 2s max, full jitter.
  • Unified Option interface: NewVolume now accepts the same Option type as NewDataset and NewDatasetReader. Options that don't apply return an error at construction time.
  • WithChecksum works everywhere: Replaces the Volume-specific WithVolumeChecksum — one option for Dataset file checksums and Volume block checksums.

Breaking Changes

  • VolumeOption type removed — replace with Option
  • WithVolumeChecksum(c) removed — replace with WithChecksum(c)

Upgrade Notes

Search-and-replace migration:

  • lode.VolumeOptionlode.Option
  • lode.WithVolumeChecksum(lode.WithChecksum(

Retry is opt-in: default behavior (0 retries) is unchanged. No data migration required.

References

Full Changelog: v0.8.0...v0.9.0