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
4 changes: 3 additions & 1 deletion 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.3] — 2026-07-29

### Added
- **Task-exit parking for idle connections (c1M P1, `--conn-park-secs`,
default 60 s).** A plain-TCP monoio connection that stays idle past the
Expand All @@ -24,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
downshift), and the tokio runtime. `--conn-park-secs 0` disables.

### Fixed
- **c10k connection-plane wave (PR #TBD)** — from the 2026-07-29 empirical
- **c10k connection-plane wave (PR #421)** — from the 2026-07-29 empirical
review (`tmp/C10K-REVIEW.md`: 10k/25k live-connection ramps, idle-CPU
measurement, symbolized flames, pipeline-ratchet A/B on the Linux VM):
- **Pipeline memory ratchet fixed (W1).** One 1024-deep pipeline
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.8.2"
version = "0.8.3"
edition = "2024"
rust-version = "1.94"
description = "A high-performance Redis-compatible server written in Rust"
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,8 @@ Redis 8.6.1.*
| **v0.7.x** | Replication GA for multi-shard masters — `WAIT`/`ACK` across all six planes, 24 h kill-9 soak (zero acked-write loss) | **GA** |
| **v0.8.0** | One Storage Kernel — kill-9-lossless on every plane (46-cell crash matrix) + 10× RAM datasets under disk offload | **GA** |
| **v0.8.1** | Deploy-safe busy-poll (O3 contention governor auto-gates on shared cores) + single-shard tuning preset | **GA** |
| **v0.8.2** (current) | Storage kernel unification — one value codec / spill pipeline / eviction entry point / accessor skeleton, millisecond-TTL fidelity fix, batched sync-eviction manifest fsyncs | **GA** |
| **v0.8.2** | Storage kernel unification — one value codec / spill pipeline / eviction entry point / accessor skeleton, millisecond-TTL fidelity fix, batched sync-eviction manifest fsyncs | **GA** |
| **v0.8.3** (current) | Connection plane at scale — idle conns 56.5 → 3.25 KB (−94%, task-exit parking + idle downshift + TLS diet), loud maxclients, striped registry, c1M-ready (1 M idle ≈ 3.3 GB) | **GA** |
| **v0.9** | Horizontal scale — cluster-on-monoio + multi-shard replicas | planned |
| **v1.0** | Every [`PRODUCTION-CONTRACT.md`](docs/PRODUCTION-CONTRACT.md) GA box ticked | gate |

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.3 — 2026-07-29
milestones: none (patch release: the c10k/c1M connection-plane campaign, rounds 1–5)
waivers: none new — `XSHARD-READ-01` remains the open GA gap (ROADMAP R4), unchanged from v0.8.2.
evidence: Patch release rolling up the connection-plane campaign (#421 rounds 1–4, #422 round 5) plus an SDK reconnect fix. **Headline: idle-connection memory 56.5 → 3.25 KB/conn (−94%); 1 M idle connections ≈ 3.3 GB.** The campaign, measured end-to-end in `tmp/C10K-REVIEW.md` and designed in `.planning/rfcs/c1m-connection-plane.md`: **(1) memory** — pipeline ratchet fixed (one 1024-deep pipeline permanently pinned a conn at ~217 KB; now 47 KB, W1), per-conn task future dieted 9.3 → 5.9 KB by boxing cold suspend points (P3), W11 two-stage idle park sheds buffers to a 512 B probe (43.5 → 19.9 KB, loss-free cancel-and-await on both drivers), TLS diet vendors monoio-rustls + monoio-io-wrapper to make the wrapper's 32 KB eager buffers lazy + released on idle (87.5 → 47.4 KB/TLS-conn, P4b), and task-exit parking (`--conn-park-secs`, default 60 s) ends the handler task entirely for long-idle plain-TCP conns, leaving a tiny readiness watcher (19.8 → **3.25 KB/conn**, P1 — no vendor patch; monoio's public `readable()` is race-free on both drivers); **(2) correctness/operability** — loud `-ERR max number of clients reached` + RLIMIT_NOFILE check (W3), 16-way striped client registry (W5), deadline-heap blocking sweep O(due) (W6), SPSC drain rotation (W7), affinity-funnel load gate (W8), loud MOON_URING bypass warning (T3). **Validation:** every wave A/B-measured on the Linux VM at 10 k conns (same-binary flag A/Bs for W11/P4b/P1); GCE t2a hardware proof — idle 33.1 → 17.9 KB/conn (−46%), pinned p=1/p=16 perf-neutral; wire-parity suites on one continuous connection across park/wake cycles green on kqueue AND io_uring (`tests/parked_idle_parity.rs`, `tests/tls_idle_downshift_parity.rs`, `tests/maxclients_reject_parity.rs`); parked conns stay in CLIENT LIST and are killable (kill's `shutdown(2)` wakes the watcher). Independent lifecycle review clean; one documented Low (transient CLIENT LIST invisibility during the data-wake respawn window, same observable as a reconnect race). This release touches no crash/persistence path; the crash-matrix + soak gate is dispatched on the RC to hold the ritual (soak-first-then-tag).

## v0.8.2 — 2026-07-20
milestones: none (patch release: the storage-unification campaign W1–W6 + db.rs directory split)
waivers: none new — `XSHARD-READ-01` remains the open GA gap (ROADMAP R4), unchanged from v0.8.1.
Expand Down
Loading