Skip to content

refactor: update benchmark output format, update tables#2703

Open
Jameson-Crate wants to merge 3 commits into
delta-io:mainfrom
Jameson-Crate:stack/benchmarking-table-update
Open

refactor: update benchmark output format, update tables#2703
Jameson-Crate wants to merge 3 commits into
delta-io:mainfrom
Jameson-Crate:stack/benchmarking-table-update

Conversation

@Jameson-Crate

@Jameson-Crate Jameson-Crate commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

What changes are proposed in this pull request?

This PR changes the tables that we benchmark against and includes stats going forward. We also update some formatting such as making the the tests collapsable and adding a benchmark summary and add some emojis to make scanning the benchmark result much easier (🐌 -> ⚠️ -> ✅ -> 🚀).

How was this change tested?

Showed that benchmarks can run after pull request. Each scan looks like a regression because the base did not include stats in the scan.

@Jameson-Crate Jameson-Crate force-pushed the stack/benchmarking-table-update branch from a6cf4ae to e30e722 Compare June 5, 2026 21:17
@Jameson-Crate Jameson-Crate changed the title update benchmark output format, update tables refactor: update benchmark output format, update tables Jun 5, 2026
@Jameson-Crate Jameson-Crate marked this pull request as ready for review June 5, 2026 21:18
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Benchmark results

Commit: 8db842f · Trigger: auto-push · Tags: base

Test Base PR Change
CRC Missing/snapshotLatest/snapshotConstruction 27.1±0.94ms 26.6±0.79ms 1.02x faster
CRC at Latest/snapshotLatest/snapshotConstruction 9.2±0.21ms 9.1±0.37ms 1.01x faster
Simple Clustered/readLatestWithPredicate/readMetadata/serial 79.6±1.82ms 96.9±3.92ms 1.22x slower
Simple Partitioned/readLatestWithPredicate/readMetadata/serial 40.0±1.52ms 58.4±1.68ms 1.46x slower
Simple V1 Checkpoint/readLatest/readMetadata/serial 5.8±0.12ms 13.3±0.41ms 2.29x slower
Simple V1 Checkpoint/snapshotLatest/snapshotConstruction 845.4±16.66µs 840.5±24.47µs 1.01x faster
Simple V2 Checkpoint/readLatest/readMetadata/serial 7.7±0.15ms 16.0±0.50ms 2.08x slower
Simple V2 Checkpoint/snapshotLatest/snapshotConstruction 933.5±17.82µs 934.8±21.24µs 1.00x slower
Slightly Stale CRC/snapshotLatest/snapshotConstruction 31.6±0.86ms 31.1±0.80ms 1.02x faster
Very Stale CRC/snapshotLatest/snapshotConstruction 30.4±1.41ms 29.8±1.58ms 1.02x faster
Wide Schema with JSON Stats/readLatestWithPredicate/readMetadata/serial 58.8±1.37ms 75.3±3.22ms 1.28x slower
Wide Schema with JSON Stats/snapshotLatest/snapshotConstruction 2.1±0.05ms 2.1±0.04ms 1.00x
Wide Schema with Struct Stats/readLatestWithPredicate/readMetadata/serial 11.6±0.22ms 42.5±1.08ms 3.66x slower
Wide Schema with Struct Stats/snapshotLatest/snapshotConstruction 1958.0±52.82µs 1944.8±64.17µs 1.01x faster

@Jameson-Crate Jameson-Crate force-pushed the stack/benchmarking-table-update branch 2 times, most recently from c6d42ae to 9069d43 Compare June 5, 2026 21:59
@codecov

codecov Bot commented Jun 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.70%. Comparing base (e3cc537) to head (8db842f).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2703   +/-   ##
=======================================
  Coverage   88.70%   88.70%           
=======================================
  Files         209      209           
  Lines       65409    65411    +2     
  Branches    65409    65411    +2     
=======================================
+ Hits        58024    58026    +2     
  Misses       5170     5170           
  Partials     2215     2215           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread benchmarks/src/runners.rs Outdated
.clone()
.scan_builder()
.with_predicate(self.predicate.clone())
.with_stats(StatsOptions::all())

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's run it with Struct stats only

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one of our benchmarks explicitly uses json stats though, does that matter?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DrakeLin shouldn't this be defined in the spec, not the runner?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be at the spec level but for now i am just going to make it test with all_struct which is what we typically see in practice and sufficient from a regression perspective.

@scottsand-db scottsand-db left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with some comments, thanks!

Comment thread benchmarks/ci/parse_critcmp.py Outdated
Comment thread benchmarks/ci/parse_critcmp.py Outdated
Comment thread benchmarks/src/runners.rs Outdated
.clone()
.scan_builder()
.with_predicate(self.predicate.clone())
.with_stats(StatsOptions::all())

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DrakeLin shouldn't this be defined in the spec, not the runner?

@Jameson-Crate Jameson-Crate force-pushed the stack/benchmarking-table-update branch from 4586ac1 to d89fa42 Compare June 8, 2026 19:46
@Jameson-Crate Jameson-Crate requested a review from DrakeLin June 8, 2026 22:22
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.

3 participants