This release includes 3 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+12 more
Affected surfaces
Summary
AI summarytombstone_with_rid and delete_entity_edge_with_id now require a namespace argument before/after their existing parameters.
Full changelog
Interim point release between v0.6.6 (decoupled write path Phases 1-5) and v0.7.0 (still gated on Phase 4.3 SQL-off-foreground + Phase 7 soak ~80h combined). Lets yantrikdb-server consume the cluster RYW design refinements without waiting another 3 weeks.
Highlights
- DEFAULT_DELTA_MAX 1024 → 256 — write tput +70%, read p50 -53% (better than even v0.6.5 baseline). Smaller delta keeps per-search linear scans cheap and triggers compaction often enough that cold absorbs the working set.
- Cluster RYW design lock — all 4 cluster primitives accept
Option<u64> seq+ requirednamespace, bumpvisible_seqfor snapshot-lag determinism on followers. Engine seq IS the openraft commit-log index. - Lock-free RYW hot path —
visible_seqrefactored toDashMap<String, AtomicU64>sorecall_with_seqreads no longer contend on a global mutex. - Age-based compaction trigger — closes the idle-delta gap where a low-write namespace would never compact. Default 60s, tunable via
YANTRIKDB_MAX_DIRTY_AGE_SECS. - CONCURRENCY.md — 8 load-bearing invariants documented at repo root, each naming the failure mode if violated.
What's in this release vs v0.6.6 (6 commits)
```
84318c0 perf(delta_index): DEFAULT_DELTA_MAX 1024 → 256
8a92ae1 refactor(error): RyWaitTimeout fields → requested_seq /
observed_seq /
waited_ms
5102b6f feat(cluster): seq + namespace + visible_seq bump on
all 4 cluster primitives
dd2cfd3 perf(ryw): visible_seq → DashMap<String, AtomicU64>
a4df7bf feat(compactor): age-based compaction trigger for idle deltas
53bca81 docs(concurrency): add CONCURRENCY.md with 8 invariants
```
Breaking changes (pre-1.0)
These were pre-coordinated with yantrikdb-server before landing:
- `tombstone_with_rid` now takes `namespace: &str` before `reason`
- `delete_entity_edge_with_id` now takes `namespace: &str` after edge_id
- All four cluster primitives gained trailing `seq: Option`
- `Error::RyWaitTimeout` fields renamed: `min_seq` → `requested_seq`, `visible` → `observed_seq`, `timeout_ms` → `waited_ms`
Tests
1399 lib tests pass (was 1380 at v0.6.6). 5 new age-trigger tests + 4 new RYW seq tests covering snapshot-lag determinism on followers.
Still pending for v0.7.0
- Phase 4.3 — SQL writes off foreground (entity-link inserts) ~40h
- Phase 7 — Long-duration soak validation ~40h
Architecture
The v0.6.7 architecture is now diagrammed in README.md — two Mermaid diagrams covering the decoupled write path and cluster mode RYW. CONCURRENCY.md is the canonical reference for the engine concurrency invariants.
Breaking Changes
- `tombstone_with_rid` now takes `namespace: &str` before `reason`
- `delete_entity_edge_with_id` now takes `namespace: &str` after `edge_id`
- All four cluster primitives gained trailing `seq: Option<u64>`
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About YantrikDB
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]