Skip to content

docs(bench): correct the during-save tail record -- CLOSED (794ms -> 30ms), not a 40x loss#768

Merged
ELares merged 1 commit into
mainfrom
docs/tail-latency-post-fix
Jul 24, 2026
Merged

docs(bench): correct the during-save tail record -- CLOSED (794ms -> 30ms), not a 40x loss#768
ELares merged 1 commit into
mainfrom
docs/tail-latency-post-fix

Conversation

@ELares

@ELares ELares commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Why

The public benchmark docs still describe the pre-#742 world and materially undersell the product.

docs/bench/TAIL_LATENCY.md's measured record was committed 2026-07-23 14:20; PR #742 (the fix) merged 18:52 the same day. So every IronCache tail in that record is pre-fix. The post-fix c7g confirmation was run and posted on #676 — it just never reached the docs.

Most visible symptom: the README described the during-snapshot tail as "a known limitation at a memory-bandwidth floor", and TAIL_LATENCY.md's verdict read "~40x worse than Dragonfly".

The real numbers (from the #676 confirmation, same config)

p99 p99.9
no-save baseline 12 ms 21 ms
during base save (pre-#742) ~640 ms ~794 ms
during base save (post-#742) 12 ms 30 ms

vs the same pinned competitors: Dragonfly 19 ms, IronCache 30 ms, Valkey 510 ms, Redis 719 ms — from worst-in-class into Dragonfly's class.

Files

No new measurement was taken — the numbers already existed on #676. This only makes the shipped docs match the merged code.

…ms -> 30ms), not a 40x loss

The public benchmark docs still describe the PRE-#742 world and materially UNDERSELL the product.
docs/bench/TAIL_LATENCY.md's measured record was committed 2026-07-23 14:20; PR #742 (the fix)
merged 18:52 the SAME DAY, so every IronCache tail in that record is pre-fix. The post-fix c7g
confirmation was run and posted on #676 but never made it into the docs.

Corrected, using the numbers from that confirmation (same config: 8 server cores + a pinned persist
core, tmpfs, 1M keys, BGSAVE/3s):
  - during-save p99.9: 794ms -> **30ms** (~26x); p99 640ms -> 12ms; the no-save baseline is 21ms, so
    the save is now essentially invisible to the datapath.
  - vs the same pinned competitors: Dragonfly 19ms, **IronCache 30ms**, Valkey 510ms, Redis 719ms --
    i.e. from WORST-in-class into Dragonfly's class, ~17x/24x ahead of Valkey/Redis.

Files:
  - TAIL_LATENCY.md: new CURRENT record up top; the old record retitled "Superseded: PRE-#742" with a
    warning that its analysis ATTRIBUTES TO SAVE COST what was actually a scheduling defect -- notably
    the dataset-scaling table and its "~4.3ms of datapath stall per MB" conclusion were measuring how
    long the HOL block lasted, not an inherent persistence cost. Competitor numbers there stay valid,
    and the save WALL-TIME characterization (deltas cut incremental cost; a base save is O(resident))
    is still accurate, so the section is kept for provenance. The old "honest verdict" is marked
    superseded and its wrong causal conclusion called out explicitly.
  - README.md: the during-snapshot tail is no longer listed as "a known limitation at a
    memory-bandwidth floor" -- that was the most visible stale claim in the repo.
  - docs/PRODUCTION_READINESS.md: the "291ms, competitive but not category-leading" line updated.
  - docs/design/PERSISTENCE.md: the 291ms figure marked historical (it is the #588 Arc-COW change
    alone), and the "FUNDAMENTAL memory-bandwidth-headroom tradeoff" claim marked SUPERSEDED -- that
    theory was disproven twice by measurement (the #740 pacer was refuted on c7g and reverted; the
    1-shard-vs-8-shard ablation showed the BIGGER save stalling ~60x LESS).

No new measurement was taken for this: the numbers already existed on #676. This is purely making the
shipped docs match the code that merged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FfFZ8gkkNhDBASuntB72HR
@ELares
ELares merged commit 4d97ddd into main Jul 24, 2026
1 check passed
@ELares
ELares deleted the docs/tail-latency-post-fix branch July 24, 2026 18:58
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