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.2] — 2026-07-20

### Fixed
- **Millisecond-TTL keys no longer expire up to 999 ms early (W3).**
`CompactEntry` stored expiry as *seconds* (`ms / 1000` floor) even though
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.1"
version = "0.8.2"
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 @@ -371,7 +371,8 @@ Redis 8.6.1.*
| **v0.6.0** | Multi-db isolation (db-scoped indexes + per-db quotas + workspace hardening), tiered engine offload (WARM/COLD), `--profile standalone`, command-parity audit | **GA** |
| **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** (current) | Deploy-safe busy-poll (O3 contention governor auto-gates on shared cores) + single-shard tuning preset | **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.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.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.
evidence: Patch release rolling up the storage-unify stacked train (#396–#401) plus the follow-up `storage::db` directory-module split (#403). **Correctness:** millisecond-TTL keys no longer expire up to 999 ms early — `CompactEntry` stored expiry as seconds (`ms/1000` floor); it is now absolute Unix milliseconds end-to-end with exact `PTTL` readback and exact-ms RDB round-trips (W3, #398). **Unification (behavior-preserving by design, pinned by golden byte-spec tests):** one value codec behind RDB + spill + kv_serde with fail-closed corrupt-score decode and the RDB-DoS count guards now on every decode path (W1, #396); one spill pipeline — sync eviction batches victims into shared files (~N/256 manifest fsync round-trips instead of N per-key, measured every-paired-round faster under maxmemory pressure) and unserializable victims are retained fail-closed instead of spilled empty (W2, #397); one eviction entry point `evict_to_budget` + `EvictionRun`/`EvictionSink` replacing 13 name-encoded variants and 5 reclaim-loop copies (W4, #399); one typed-accessor skeleton via `storage::db_kind` `ValueKind`/`OwnedKind` static-dispatch markers, public per-type methods kept as thin delegators (W5, #400); `AofShardManifest` rename + tier-vocabulary disambiguation docs (W6, #401); `db.rs` (3113 lines) split into `db/{mod,hash_ttl,kv_ops,accessors}.rs`, pure code motion (#403). **Validation:** same-VM A/B (v0.8.1 vs main, alternating rounds) — p=1 SET/GET parity-or-better, eviction-plain faster in every paired round, offload-spill +3%, p=16 within noise; every train PR individually gated (lib suites macOS + VM Linux both runtimes, crash matrix 46/46 + kill-9 suites on the durability PRs, clippy ×2 feature sets); release gate — crash-matrix nightly full matrix + `ITERS=20` soak dispatched on the RC via `workflow_dispatch`, green before tag (soak-first-then-tag). Known flake ticketed: #402 (`test_bg_compact_pool_parallelism`, timing-sensitive, test-only).

## v0.8.1 — 2026-07-19
milestones: none (patch release folding the post-v0.8.0 perf/correctness train + the single-shard tuning preset)
waivers: none new — `XSHARD-READ-01` remains the open GA gap (ROADMAP R4), unchanged from v0.8.0.
Expand Down
Loading