feat: add Arrow IPC and refine benchmark summaries - #24
Conversation
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io> # Conflicts: # web/lib/groups.test.ts # web/lib/summary.ts
|
Vercel preview for |
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io> # Conflicts: # migrations/README.md
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ed30a6997c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ad0796f7c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8fdd14a795
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 08c2924ebe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (group.charts.size === chartsByDataset.get(dataset)?.size) { | ||
| grouped.push({ series, bucket: dataset, value: group.value }); |
There was a problem hiding this comment.
Preserve datasets with no complete format
When a dataset's charts are split across formats so that no single format covers every chart, this condition emits no sample for that dataset. Since rankSeries derives its bucket universe only from emitted samples, the dataset disappears from total, receives no missing-dataset penalty, and—if it is the only dataset—the entire summary returns null despite having measurements. The new knownSeries fallback preserves format identities but not this dataset universe; pass the known datasets into the ranking model so incomplete datasets still affect coverage and scoring.
AGENTS.md reference: AGENTS.md:L64-L66
Useful? React with 👍 / 👎.
connortsui20
left a comment
There was a problem hiding this comment.
seems fine to me, we can test in prod
Add
arrow-ipcto Compression Size and Random Access. Use decoded in-memory Arrow bytes for logical write and scan throughput, plus compression ratios.Compression Size shows Arrow-relative compression and Parquet-zstd-relative minimum, geometric mean, and maximum size ratios. If any Arrow ratio is unavailable, the summary ranks every format by its Parquet-zstd geometric mean.
Random Access now sums chart medians by dataset before ranking. It reports the geometric mean of dataset ratios and the arithmetic mean of dataset timings. Each format uses its latest available run, while incomplete coverage receives the missing-series penalty.
Compression ratios use the latest logical Arrow size per dataset, independent of each format's file commit. The nullable schema field preserves historical rows. JSON field access keeps web deployment compatible before migration 009 runs.
The summary cache key advances for the new payload.