Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.8.0] — 2026-07-16

### Documentation
- **G2 10×-RAM re-run report (v0.8 close-out evidence).** New
`docs/perf/2026-07-16-g2-10x-ram-rerun.md`: re-ran the G2 acceptance
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "moon"
version = "0.7.1"
version = "0.8.0"
edition = "2024"
rust-version = "1.94"
description = "A high-performance Redis-compatible server written in Rust"
Expand Down
5 changes: 5 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Releases

## v0.8.0 — 2026-07-16
milestones: v0.8.0 "One Storage Kernel GA" (close-out + verification of the kernel built during the v0.7.0 cycle)
waivers: none new — `XSHARD-READ-01` remains the open GA gap (ROADMAP R4), unchanged.
evidence: The kernel becomes a verifiable public claim. (1) **Cross-plane kill-9 crash matrix (CRASH-02):** grown to 46 cells (KV/vector/graph/FTS/WS/MQ/temporal/txn × appendonly × disk-offload × shards), all green **ungated** (zero `red_guard` sites); wired into scheduled CI — nightly full matrix + Saturday `ITERS=20` probabilistic-cell soak (`.github/workflows/crash-matrix.yml`, PR #352) — and both modes re-run green on the RC `82752af5` as this tag's gate. (2) **10×-RAM acceptance re-passed on real disk (MEM-10X-01):** `docs/perf/2026-07-16-g2-10x-ram-rerun.md` — 2.6GB/10KB-values against a 256MB cap: truthful `used_memory` at 1.00× cap steady-state with a ≤5s post-restart drain (task #56, PR #349: logical ledger replaces RSS, stub-only recovery, AOF-replay demote); spill files 236K → **840** for the same dataset (PR #350 segment batching + file-absolute overflow-chain fix); cold-GET-during-spill worst tail 1,910ms → **205ms**; restart AOF-replay-bound (file count out of the boot path); 500/500 kill-9 integrity. (3) Task #49 atomic-write sweep audit-closed (already shipped in v0.7.0 via PR #304; PR #347 corrects the stale roadmap listing). Also in this release: vector auto-merge CPU-livelock fix (fingerprinted exponential backoff for gate-rejected GraphUnion merges, PR #353, found live in production) and CI hygiene (heavy recall canaries → nightly release-profile job, Test step 220s→88s, PR #354). Disclosed non-blocking follow-ups: task #59 read-vs-spill fairness (205ms tail, target <10ms), issue #355 (`DBSIZE` counts only resident keys under offload), restart time bounded by AOF-rewrite cadence.

## v0.7.1 — 2026-07-15
milestones: none (patch release folding in the two v0.7.0-tag-disclosed follow-ups)
waivers: none new — `XSHARD-READ-01` remains the open GA gap (ROADMAP R4), unchanged from v0.7.0.
Expand Down
44 changes: 26 additions & 18 deletions docs/roadmap/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Moon Product Roadmap — v0.7 → v1.0 → Enterprise

**Status:** Owner-approved · **Rev 2:** 2026-07-15 (post-v0.7.1; v0.8 re-slotted to Storage Kernel GA) · **Current release:** v0.7.1 (2026-07-15, PR #336)
**Status:** Owner-approved · **Rev 2:** 2026-07-15 (post-v0.7.1; v0.8 re-slotted to Storage Kernel GA) · **Current release:** v0.8.0 (2026-07-16)
**Companion docs:** [Scale & HA architecture](scale-ha-architecture.md) · [Standalone horizontal scale](standalone-horizontal-scale.md)
*(The commercial Enterprise Edition plan is maintained privately.)*

Expand Down Expand Up @@ -182,7 +182,7 @@ deliberately aggressive but each release has a **single headline** and hard exit
| ~~v0.6.1~~ | *folded into v0.7.0* | Hygiene + reliability hotfix | Shipped inside the v0.7.0 train (tag hygiene, TTL leak, ACL audit, doc reconciliation) |
| **v0.7.0** | ✅ **shipped 2026-07-14** | **Replication GA for multi-shard masters** | The HA unblock; also absorbed storage-kernel M0–M4 |
| **v0.7.1** | ✅ **shipped 2026-07-15** | SQ8 CPU-storm fix + deterministic replica TTL | Patch |
| **v0.8.0** | 2026-08 | **One Storage Kernel: kill-9-lossless on every plane + 10× RAM datasets** | Close-out + verification of the already-built kernel (owner decision 2026-07-15) |
| **v0.8.0** | ✅ **shipped 2026-07-16** | **One Storage Kernel: kill-9-lossless on every plane + 10× RAM datasets** | Close-out + verification of the already-built kernel (owner decision 2026-07-15) |
| **v0.9.0** | 2026-10 | **Horizontal scale: cluster GA-hardened on monoio + multi-shard replicas** | Re-slotted from v0.8; adds the replica-side shard gap |
| **v0.10.0** | 2026-12 | **Enterprise foundation** | Encryption at rest, audit, ecosystem (re-slotted from v0.9) |
| **v1.0.0** | 2027-Q1 | **GA / production contract fulfilled** | Stability promise, LTS |
Expand All @@ -202,28 +202,36 @@ MONITOR (R5), `moon://` URI implementation (R6 — spec doc H-7 shipped). v0.7.1
master-side absolute-TTL rewrite + role-gated replica expiry (task #71b) and the SQ8/TQ
CPU-error-storm fix (task #73).

### v0.8.0 — One Storage Kernel GA (close-out + verification)
### v0.8.0 — One Storage Kernel GA — SHIPPED (2026-07-16)

Exit criterion: *the 42-cell cross-plane kill-9 crash matrix runs green in scheduled CI on both
shard configs; the 10×-RAM acceptance re-passes on real disk with truthful `used_memory`; the
benchmark report and PRODUCTION-CONTRACT rows are published.* The kernel itself is built — this
release converts it into a verifiable public claim.
Exit criterion (met): *the cross-plane kill-9 crash matrix (46 cells — grew from the 42 planned)
runs green in scheduled CI on both shard configs; the 10×-RAM acceptance re-passes on real disk
with truthful `used_memory`; the benchmark report and PRODUCTION-CONTRACT rows are published.*
The kernel itself was built during the v0.7.0 cycle — this release converted it into a
verifiable public claim.

1. ~~**Task #49 — atomic-write straggler sweep**~~: ✅ already shipped (PR #304, merged
2026-07-13, released as part of v0.7.0) — all 7 bare-write sites (ACL SAVE, nodes.conf,
CONFIG REWRITE, replication state, native BGSAVE, clog, kv_page) route through
`atomic_write_durable`. Verified against HEAD during v0.8 close-out (2026-07-16): no
regression, no new bare-write site introduced since. No v0.8 action needed.
2. **Task #56 — `used_memory` truth under offload**: reconcile accounting so a 256MB-cap
10×-RAM run reports ≤ cap (or documents exactly what the overage is); fix the post-restart
regression.
3. **Spill-file batching**: one-file-per-key heap spill → segment files (≤N keys/file already
exists for batches; make it the only shape), shrinking orphan-sweep and manifest scale.
4. **Crash-matrix CI**: wire `tests/crash_matrix_cross_plane.rs` (+ `MOON_CRASH_MATRIX_ITERS`
soak) into a scheduled workflow; confirmation run proving all former RED cells stay green.
5. **G2 re-run on real disk** (post-#323 async cold-read fix): re-measure the cold-GET-during-
spill tail that previously hit 1.91s; publish the 10×-RAM benchmark report.
6. PRODUCTION-CONTRACT: tick CRASH-02 / MEM-10X rows with evidence links.
regression, no new bare-write site introduced since (roadmap correction PR #347).
2. ~~**Task #56 — `used_memory` truth under offload**~~: ✅ PR #349 — logical ledger replaces
RSS; 256MB-cap 10×-RAM run reports exactly 1.00× cap steady-state; post-restart transient
(AOF-replay re-heat) drains to < cap in ≤5s (demote pass + eviction), documented in
`docs/guides/monitoring.md`.
3. ~~**Spill-file batching**~~: ✅ PR #350 — segment files are the only spill shape; the G2
dataset produces 840 files instead of ~236K, and file count is out of the restart path.
4. ~~**Crash-matrix CI**~~: ✅ PR #352 — `.github/workflows/crash-matrix.yml` (nightly full
matrix 03:17 UTC + Saturday `ITERS=20` soak + dispatch); 46 cells green ungated (zero
`red_guard` sites); both modes re-run green on the RC as the tag gate.
5. ~~**G2 re-run on real disk**~~: ✅ published as `docs/perf/2026-07-16-g2-10x-ram-rerun.md`
(PR #356) — cold-GET-during-spill tail 1,910ms → 205ms (task #59 stays open for sub-10ms).
6. ~~PRODUCTION-CONTRACT~~: ✅ CRASH-02 / MEM-10X-01 rows ticked with evidence links.

Also shipped in the train: vector GraphUnion auto-merge CPU-livelock fix (PR #353) and CI
hygiene (recall canaries → nightly job, PR #354). Disclosed follow-ups: task #59
(read-vs-spill fairness), issue #355 (`DBSIZE` resident-only under offload), AOF-rewrite
cadence bounds restart time.

### v0.9.0 — Horizontal scale: cluster hardening + multi-shard replicas

Expand Down
Loading