Skip to content

v0.7.1

Choose a tag to compare

@justapithecus justapithecus released this 10 Feb 01:29
· 52 commits to main since this release
a07634d

Fix O(n²) write degradation on remote stores

Summary

Write(), StreamWrite(), and StreamWriteRecords() called Latest() on every invocation, scanning all manifests via store.List + N×store.Get. On remote stores (S3, R2) with ~50–100ms per API call, this caused sequential writes to degrade quadratically. Parent snapshot ID is now cached after each successful write, turning every write after the first into O(1).

Highlights

  • ⚡️ Cache last-written DatasetSnapshotID in the dataset struct
  • 🔧 All three write paths (Write, StreamWrite, StreamWriteRecords) and streamWriter.Commit update the cache
  • 🧊 Cold start (first write) falls back to Latest(); all subsequent writes are O(1)
  • 📈 New sequential write benchmarks with simulated store latency as regression guard
  • 📝 CHANGELOG comparison links updated to pithecene-io org
  • 🩹 Fixed stale README gotcha: nil metadata has been safe since v0.7.0

Upgrade Notes

  • No API changes; transparent internal optimization
  • All write paths benefit automatically
  • Safe to upgrade from v0.7.0

References

Full Changelog: v0.7.0...v0.7.1

What's Changed

  • docs(v1-readiness): 📝 add v1.0 release criteria and dogfooding tracker by @justapithecus in #106
  • docs(volume): 🔥 consolidate VOLUME_DIRECTION.md into CONTRACT_VOLUME.md by @justapithecus in #107
  • fix(dataset): ⚡️ cache parent snapshot ID to eliminate O(n²) writes by @justapithecus in #109
  • docs(release): 📝 v0.7.1 changelog, README updates, and test matrix by @justapithecus in #110

Full Changelog: v0.7.0...v0.7.1