Skip to content

docs(perf): rewrite the bare-metal report for its audience; correct a stale roadmap status - #40

Merged
lspecian merged 2 commits into
mainfrom
docs/perf-report-audience
Aug 18, 2026
Merged

docs(perf): rewrite the bare-metal report for its audience; correct a stale roadmap status#40
lspecian merged 2 commits into
mainfrom
docs/perf-report-audience

Conversation

@lspecian

Copy link
Copy Markdown
Owner

Documentation only. No code, no behaviour change.

The bare-metal performance report was written as a worklog

It opened with a post-mortem of a previous revision, carried internal identifiers
(RP-9, RP-10, OQ1, PR #29) throughout, had sections titled "Still owed"
and "Open Question 1, answered", and named the specific machines it ran on. A
reader arriving at the repository had to work through the document's own history
before reaching a number.

567 lines → 289. Nothing measured was dropped — every figure, sample set and
NIC reading is preserved, verified by spot-check.

What changed:

  • Leads with the numbers, and with the round-trip vs batched distinction that
    makes them comparable, instead of with what a previous revision got wrong.
  • The withdrawn figures are one short note at the end. They deserve
    acknowledgement — someone may arrive remembering 837,284 msg/s — but three
    sentences serve that reader better than four sections, and the narrative said
    nothing about current performance.
  • Internal identifiers removed. "Open Question 1, answered" became "What
    limits each number", which is what a reader actually wants from that section.
    "Still owed" became "Known limits of this report".
  • Machine names removed; the hardware specification is kept, because that is
    the useful part. A public report should not map someone's LAN.
  • The bug-fix appendix is gone — that belongs in the changelog.
  • Measurement traps kept and promoted to their own section, since anyone
    benchmarking this system will hit them: sub-ten-second runs measuring the
    client's send buffer rather than the broker, --linger-ms destroying a
    synchronous benchmark, and throughput alone being unable to distinguish a fast
    broker from a failing one.

The same three internal identifiers are stripped from BASELINE_PERFORMANCE.md,
whose structure was already reader-first.

RP-3.1's status was stale

It read CODE COMPLETE — unit-tested, not yet exercised on a cluster while all
three of its boxes were ticked. Leader epochs were exercised on a cluster, and
RP-3.3 is the evidence: staging real divergence surfaced a bug where replicated
assignments were rebuilt without their epoch, so every follower's copy read epoch
0 forever and truncation could never fire. No unit test reaches that — it needs
two nodes disagreeing about an epoch.

Leaving it as written implied the epoch work was less proven than it is, in the
phase where "proven" carries the most weight.

🤖 Generated with Claude Code

The report read like a worklog: a post-mortem of a deleted revision came before
any current result, internal identifiers (RP-9, RP-10, OQ1, PR #29) appeared
throughout, sections were titled "Still owed" and "Open Question 1, answered",
and it named the specific machines it ran on. A reader arriving at the repository
had to work through the history of the document to reach a number.

567 lines to 289. Nothing measured was dropped: every figure, sample set and NIC
reading is still there, verified by spot-check.

What changed:

  - Leads with what the numbers ARE — the round-trip/batched distinction and the
    headline figures — instead of with what a previous revision got wrong.
  - The withdrawn figures are one short note at the end. They deserve
    acknowledgement, since someone may arrive remembering 837,284 msg/s, but
    three sentences serve that reader better than four sections, and the
    narrative said nothing about current performance.
  - Internal roadmap identifiers removed. "Open Question 1, answered" became
    "What limits each number", which is what a reader wants from it. "Still owed"
    became "Known limits of this report".
  - Machine names removed; hardware specification kept, since that is the useful
    part. A public report should not map someone's LAN.
  - The bug-fix appendix is gone — that belongs in the changelog.
  - The measurement traps are kept and given their own section, because anyone
    benchmarking this system will hit them: sub-ten-second runs measuring the
    client's send buffer, `--linger-ms` destroying a synchronous benchmark, and
    throughput alone being unable to tell a fast broker from a failing one.

Same three internal identifiers stripped from BASELINE_PERFORMANCE.md, whose
structure was already reader-first.
The status read "CODE COMPLETE — unit-tested, not yet exercised on a cluster"
while all three of its boxes were ticked, which understated what had actually
been proven.

Leader epochs were exercised on a cluster, and RP-3.3 is the evidence: staging
real divergence surfaced a bug where replicated assignments were rebuilt without
their epoch, so every follower's copy read epoch 0 forever and truncation could
never fire. No unit test reaches that — it needs two nodes disagreeing about an
epoch. tests/cluster/local_divergence.sh covers the path on every run.

Leaving it as written implied the epoch work was less proven than it is, in the
one phase where "proven" carries the most weight.
@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7d0779a9-1166-49ea-aedc-33205ddf0e98


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lspecian
lspecian merged commit fd0d808 into main Aug 18, 2026
4 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