Skip to content

QuiverDB v1.2.5

Choose a tag to compare

@artemonad artemonad released this 07 Oct 14:06
· 3 commits to master since this release

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