Skip to content

chore(deps): bump zigstore to v1.2.0#9

Merged
poly-glot merged 1 commit into
mainfrom
chore/bump-zigstore-1.2.0
Jun 13, 2026
Merged

chore(deps): bump zigstore to v1.2.0#9
poly-glot merged 1 commit into
mainfrom
chore/bump-zigstore-1.2.0

Conversation

@poly-glot

Copy link
Copy Markdown
Owner

Adopt the zigstore v1.2.0 multi-writer (ShardSet) release.

Compatibility

Benchmark: v1.2.0 vs v1.1.0 (same 1000-cat / 50k-link fixture, median-of-3 on write paths)

workload v1.1.0 ops/s v1.2.0 ops/s Δ%
create_link 327,868 294,117 −10.3 (within variance)
mixed 80/20 54,644 55,401 +1.4
mixed 50/50 54,200 56,338 +3.9
get_link 52,770 57,471 +8.9
browse subtree-links 6,622 8,602 +29.9
search links 36,429 38,167 +4.8

All deltas are within run-to-run noise. create_link's −10% sits inside the measured 294k–328k variance band.

Why no write-throughput change — and why that's correct

dmozdb does not adopt ShardSet; it stays a single zigstore.Engine(schema) store with one WAL writer. The bump only makes the type available. Adopting ShardSet is left out by design:

  • Fsync-bound on a single disk → ShardSet regresses to ~0.71× (its win needs apply/lock contention, which dmozdb doesn't have at this scale).
  • Breaks load-bearing invariants (architecture.md): atomic dual-index writes (links_by_id + link_by_category are different keys → different shards → atomicity lost), whole-keyspace subtree range scans (op-17, the slice-6 path), and globally-unique ids (per-shard counters).

The right lever for write throughput here is group commit (amortize the fsync), not horizontal sharding.

🤖 Generated with Claude Code

Adopt the v1.2.0 multi-writer (ShardSet) release. Verified compatible with
dmozdb: zig build test green, builds clean in ReleaseFast. Benchmarked against
the v1.1.0 baseline (same 1000-cat/50k-link fixture) — read and write paths are
flat within run-to-run noise (create_link ~294k vs ~328k ops/s, both inside the
measured variance band; get_link, mixed, browse, search all unchanged).

No write-throughput change because dmozdb does not adopt ShardSet: it remains a
single zigstore.Engine(schema) store with one WAL writer. ShardSet is left
unused by design — dmozdb is fsync-bound on a single disk (where ShardSet
regresses to ~0.71x), and keyspace partitioning would break the atomic
dual-index writes, whole-keyspace subtree scans, and globally-unique id
invariants the directory depends on.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@poly-glot
poly-glot merged commit 540577e into main Jun 13, 2026
2 checks passed
@poly-glot
poly-glot deleted the chore/bump-zigstore-1.2.0 branch June 13, 2026 11:27
poly-glot added a commit that referenced this pull request Jul 4, 2026
Adopt the v1.2.0 multi-writer (ShardSet) release. Verified compatible with
dmozdb: zig build test green, builds clean in ReleaseFast. Benchmarked against
the v1.1.0 baseline (same 1000-cat/50k-link fixture) — read and write paths are
flat within run-to-run noise (create_link ~294k vs ~328k ops/s, both inside the
measured variance band; get_link, mixed, browse, search all unchanged).

No write-throughput change because dmozdb does not adopt ShardSet: it remains a
single zigstore.Engine(schema) store with one WAL writer. ShardSet is left
unused by design — dmozdb is fsync-bound on a single disk (where ShardSet
regresses to ~0.71x), and keyspace partitioning would break the atomic
dual-index writes, whole-keyspace subtree scans, and globally-unique id
invariants the directory depends on.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant