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.4] — 2026-07-29

### Added
- **TLS connections task-park too (c1M P1-TLS).** Idle TLS connections now
exit their handler task after `--conn-park-secs`, like plain TCP: the
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.3"
version = "0.8.4"
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 @@ -373,7 +373,8 @@ Redis 8.6.1.*
| **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** | 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.8.3** | 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.8.4** (current) | c1M follow-ups — TLS task-parking (47 → 26 KB idle), park/wake registry handoff, park-vs-error spin fix (RST'd parked conn no longer pins a shard) | **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.4 — 2026-07-29
milestones: none (patch release: c1M P1 follow-ups + the park-vs-error spin fix)
waivers: none new — `XSHARD-READ-01` remains the open GA gap (ROADMAP R4), unchanged from v0.8.3.
evidence: Patch release rolling up PR #424 (c1M round 6). **Ships a fix for a bug LIVE in v0.8.3:** task-exit parking defaults on (`--conn-park-secs 60`), and the idle-park arms treated every read error as the sweep's cancel — a client that dies with an RST while its connection is parked (crashed client, NAT reset, LB probe) left the fd permanently readable and spun that connection through park→wake→park at 100 % shard CPU with the socket stuck in CLOSE_WAIT (found live by E11's first TLS leg: 3 000 CLOSE_WAIT conns pinning a shard; the plain-TCP RST path hits the same loop). The arms now match monoio's exact ECANCELED (raw os 125, both drivers) — only a sweep cancel downshifts/parks; real errors tear down promptly; regression tests cover FIN-while-parked (TLS) and RST-while-parked (plain). **Also in this release:** TLS task-exit parking (idle TLS 47.0 → 26.0 KB/conn, −45 %, E11 same-binary flag A/B; vendored `io_ref()` readiness passthrough + `task_park_safe()` veto — no park while the TLS stack buffers anything fd readability can't signal); registration handoff across park/wake (no deregistered window; fixes the wake silently resetting `CLIENT SETNAME`/`age` — caught red/green); migrated connections park; REPLCONF'd connections (replica handshake) are excluded from parking so a replica can never hit the unsupported PSYNC-after-park path. **Validation:** parity suites green on kqueue AND io_uring (plain 5/5, TLS 3/3, incl. the two new teardown regressions); VM monoio 4466 + tokio 3628 lib tests; E10 plain-park sanity unchanged (3.28 KB/conn); small-N spin repro post-fix: fds released, 0 CLOSE_WAIT, 0 % CPU; CodeRabbit review findings all addressed in-branch (REPLCONF exclusion, SAFETY comment, expect-free `is_drained`). Release gate: crash-matrix nightly + ITERS=20 soak dispatched on the RC (no crash/persistence path touched; ritual held), green before tag.

## 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.
Expand Down
Loading