Skip to content

Release v0.6.6 — correctness fixes, docs alignment, evaluation evidence - #27

Merged
ddsha441981 merged 11 commits into
mainfrom
staging/v0.6.6
Oct 10, 2026
Merged

ddsha441981 merged 11 commits into
mainfrom
staging/v0.6.6

Conversation

@ddsha441981

Copy link
Copy Markdown
Owner

v0.6.6 — correctness fixes, docs alignment, evaluation evidence

Backward-compatible (patch-level) correctness release over published 0.6.5.
This is a bugfix/validation patch, not a performance release — some concurrent
workloads are measurably slower (see trade-offs below).

Fixed

  • Empty-byte keys lost on resize — valid empty keys/values and per-entry TTL now
    survive concurrent manual, automatic and sharded resize.
  • Shard/bucket hash-bit overlap — shard-routing bits are stripped before bucket
    indexing on every sharded CRUD/rehash path. Above 16,384 buckets/shard the ranges
    previously overlapped; the 1M-key probe now retains 967,051 vs 821,839 residents
    at 32,768 buckets/shard.
  • AccessBuffer duplicate delivery — sequence-tagged publication/reuse prevents the
    same event being delivered twice during overlapping wraparound drains; removes the
    silent 24-bit bucket-index truncation.

Documentation & evaluation

  • Align docs with implementation: occupied-slot len()/iteration, insertion-epoch TTL,
    inline/slab allocation, actual read locks, eviction formula. README/mdBook examples
    compile in the rustdoc suite.
  • Add a pinned in-repo evaluation/ workspace running registry 0.6.5 vs the local
    candidate in one executable with pinned competitors (LRU/QuickCache/Moka).
  • Trim the published crate: heavy benchmark/soak example harnesses excluded from the
    package (still in-repo, runnable locally); six teaching examples still ship.

Measured trade-offs (disclosed, accepted)

  • Access-queue slots now hold two usize atomics: +48 KiB per Concurrent map
    (+768 KiB over 16 shards). Bounded try operations, not a formally lock-free FIFO.
  • Hit-rate quality unchanged: 63/63 paired hit-rate rows match 0.6.5 exactly.
  • Some threaded workloads slower (e.g. u64 4T sharded ~9.6 vs ~10.5–11.0 Mops/s);
    sharded u32 RSS ~61.7 vs ~48 B/resident. No universal speed/memory win claimed.

Validation

Local checks green: stable/nightly tests, no_std, fmt/clippy, strict docs, Loom, Miri,
MSRV, eight embedded targets, both QEMU targets, cargo publish --dry-run. See
evaluation/FINAL_VALIDATION.md and evaluation/PROGRESS.md.

⚠️ Remote CI has not yet run on these commits, and registry 0.6.6 cannot be
smoke-tested until publication. Merge/tag/publish are follow-up steps.

Drop production_suite_test, soak_test, real_world_latency_spikes,
quality_and_readheavy and readratio_isolated from the packaged crate;
they stay in-repo and remain runnable locally via autodiscovery. Six
teaching examples (basic, concurrent, all_scenarios, memory_baseline,
drain_latency, hitrate_16384) still ship. Shrinks the crates.io payload
from eleven examples (~90 KiB) to six (~20 KiB).
Removing their [[example]] entries dropped the required-features = ["std"]
guard, so autodiscovery built them under --no-default-features and the no_std
CI test failed (they use the std-only concurrent types). Set
autoexamples = false so only the six explicitly listed examples are targets;
the excluded harnesses stay in-repo as reference. Correct the CHANGELOG note
accordingly.
cargo tolerates an excluded [[example]] whose source is in exclude: it
drops the target from the package (with an "ignoring example" warning)
yet still builds it locally. So keep all five harnesses as declared
examples with required-features = ["std"] (runnable via cargo run
--example, skipped by the no_std build) and just add their files to
exclude. Drops autoexamples=false; no orphan files, nothing deleted.
@ddsha441981
ddsha441981 merged commit 97f7ce8 into main Oct 10, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant