Repository navigation
v0.7.1
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
DatasetSnapshotIDin thedatasetstruct - 🔧 All three write paths (
Write,StreamWrite,StreamWriteRecords) andstreamWriter.Commitupdate 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-ioorg - 🩹 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