Skip to content

test(bench): re-time ir-seconds.json from CI and cut plaintext-set-100kb to 400 ops (LAB-12407) - #306

Merged
27b-merge-warden[bot] merged 5 commits into
mainfrom
lab-12407-bench-ir-retime
Nov 2, 2026
Merged

27b-merge-warden[bot] merged 5 commits into
mainfrom
lab-12407-bench-ir-retime

Conversation

@27Bslash6

@27Bslash6 27Bslash6 commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

The first measured instruction-count run after #303 (run 41364076750, on #304) put shard 1's gate step at 27m34s of the job's 30-minute timeout, 2.36x the load bench/ir-seconds.json predicted for it. #303 refreshed that file from local runs scaled to CI, and the scaling did not hold: plaintext-set-100kb alone read 566 s per run against 191 predicted.

With this PR's file, run 41370359224 measured all four shards (36 workloads ok):

shard predicted s/repeat measured ratio gate step
1 458 663 1.45 20m12s
2 446 611 1.37 18m34s
3 445 578 1.30 16m28s
4 455 611 1.34 17m28s

The shards now sit within 15% of each other; before, they spread 3x (312 to 929). All four runners in that run were on the slow side of the range below, which is why every ratio is above 1.

This PR:

  • Re-times every row of bench/ir-seconds.json from CI. The figures come from the base.json artifacts (seconds / repeats) of four measured runs since test(bench): open the bench:ir window after V8's tier-up (LAB-12188) #303 merged, 14 shard runs in all, including this PR's first. A shard's runner sets the speed of everything on it: across those runners speed varied 1.9x, and every workload on one runner moved together (median residual 0.6%). So each row is fitted as cost × one speed factor per runner, and the factors are centred so the fastest and slowest runner seen miss their prediction by the same ratio, about 1.4x. Taking one run's figures would carry its runners' speeds into the balance: in run 41364076750, shard 1's runner ran 1.8x slower than shard 3's.
  • Cuts plaintext-set-100kb from 1,000 to 400 ops. Each shard runs its base suite, then its head suite, and each suite waits for its slowest single run. At up to 566 s per run, this one workload put a floor of about 19 minutes under any shard that held it, whatever the shard count. At 400 ops its run is about a third shorter. In CI it reads 18,091,693 Ir/op against 18,090,276 and 18,089,422 at 1,000 (+0.01%), with an A/A spread of 0.0003%.
  • CONTRIBUTING.md: refresh a row from CI when a workload's n or warm-up changes, scale it by how its shard's other workloads compare with their rows, and keep any one workload's run under about 7 minutes in CI.

eeecac2 added one HTML comment line to packages/cachekit/README.md so the gate would measure this PR rather than pass it as same-build; d07adff reverts it, so the squashed diff does not touch the README.

Closes LAB-12407

…0kb to 400 ops

Shard balance read seconds that #303 scaled from local runs; in CI the
first shard ran 2.36x its prediction, 27m34s of the 30-minute timeout.
Every row now holds CI's base.json seconds / repeats. The 100 KB set's
single run (566 s) set the floor of every shard's base and head suites;
at 400 ops it reads the same Ir/op within 0.01%.
@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 4 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between d3bf793 and b4a58d5.

Files selected for processing: 3
  • CONTRIBUTING.md
  • packages/cachekit/bench/ir-seconds.json
  • packages/cachekit/bench/ir-workload.mjs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@codecov

codecov Bot commented Nov 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Instruction counts: PASS (no runtime change)

Head b4a58d5 and base d3bf79352651cb212b74f3348d107e670c3c05ac hash alike (--build-hash 68a61704d532aec0): nothing the workloads run has changed, so there is nothing to measure.

Run log

…r runner

Fourteen shard runs measured each workload on runners up to 1.9x apart
in speed. Each row is now its cost on a runner in the middle of that
range, so any runner seen so far lands within 1.4x of its shard's
prediction. The 100 KB set's row is its first CI figure at 400 ops.
@27Bslash6
27Bslash6 marked this pull request as ready for review November 2, 2026 01:26
@kodus-27b

kodus-27b Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Code Review Completed! 🔥

The code review was successfully completed based on your current configurations.

Kody Guide: Usage and Configuration
Interacting with Kody
  • Request a Review: Ask Kody to review your PR manually by adding a comment with the `@kody start-review` command at the root of your PR.

  • Provide Feedback: Help Kody learn and improve by reacting to its comments with a 👍 for helpful suggestions or a 👎 if improvements are needed.

Providing Context (Files & MCPs)

Add these hints in your PR description (or a comment) to unlock deeper checks:

  • Ticket / Acceptance Criteria: `Refs: ABC-123` (Linear/Jira/Asana/ClickUp/Trello) or a direct ticket link.
  • Bugfix Validation: a Sentry/Datadog/Bugsnag event link (or paste the stack trace/error message).
  • Endpoint Risk: mention the route (e.g., `POST /api/payments`) or controller/action name.
  • Attach a repo file as context: use an explicit marker like `@file:docs/guide.mdx#L10-L50` (replace with your real path).
  • API Contract Docs: include `@file:openapi.yaml` or `@file:swagger.json` when changing routes/schemas.
  • Definition of Done / Standards: include `@file:DOD.md` or `@file:CONTRIBUTING.md` if your repo has them.
  • Design System Source of Truth: include `@file:ui/index.ts` (replace with your DS entrypoint path).
  • Feature Flags: include the flag key/name and `@file:flags.ts` / `@file:config.json` (and optionally the PostHog flag name).
  • Edge/CDN Rules: link the Cloudflare rule/zone or describe the intended redirect/header behavior.
  • Attach an MCP tool output: use `@mcp<provider|tool>` (replace with an installed MCP provider + tool, e.g., `@mcp<sentry|events.search>`).
Current Kody Configuration
Review Options

The following review options are enabled or disabled:

Options Enabled
Bug ✅
Performance ✅
Security ✅
Business Logic ✅

Access your configuration settings here.

@27b-merge-warden
27b-merge-warden Bot merged commit 6d1bfd1 into main Nov 2, 2026
25 checks passed
@27b-merge-warden
27b-merge-warden Bot deleted the lab-12407-bench-ir-retime branch November 2, 2026 02:59
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