Repository navigation
QuiverDB v1.2.5
QuiverDB v1.2.5 — Phase 2 finalized
On-disk formats unchanged (meta v3, page v2, WAL v1). This release finalizes Phase 2 (persisted snapshots + SnapStore), adds a safe WAL checkpoint, config polish, and tests/docs.
Highlights
- Persisted snapshots + SnapStore (content-addressed dedup with refcount + compact)
- SnapStore directory override via P1_SNAPSTORE_DIR (absolute or relative to DB root)
- Manual WAL checkpoint (truncate to header) when data_fsync=true
- Config-driven Phase 2: snap_persist/snap_dedup/snapstore_dir available in QuiverConfig, Python, and FFI JSON
Added
- CLI: checkpoint — safely truncates WAL to header (requires data_fsync=true)
- SnapStore: dir_path() for diagnostics/tests
- Tests: snapstore_custom_dir (relative/absolute), checkpoint
- Python bindings: Database.open(...) kwargs snap_persist, snap_dedup, snapstore_dir
- FFI (C ABI): qdb_open_with_config/qdb_open_ro_with_config JSON supports snap_persist, snap_dedup, snapstore_dir
Changed/Improved
- SnapshotManager now reads Phase 2 options from config (not only ENV)
- Db::open_with_config wires snapstore_dir to SnapshotManager
- Docs refreshed: README, API Guide, snapshots.md (English)
Fixed
- SnapStore refcount when freezing the same content for multiple snapshots (prevents accidental frame loss on compact)
Upgrade notes
- No data migrations; formats remain frozen
- Set P1_SNAP_DEDUP=1 (and optionally P1_SNAPSTORE_DIR) to enable SnapStore dedup for persisted snapshots
- Use quiverdb checkpoint only with data_fsync=true