Skip to content

[#10029][benchmarks] arrow-flight roundtrip as well as encode/decode #10031

Open
Rich-T-kid wants to merge 1 commit into
apache:mainfrom
Rich-T-kid:rich-T-kid/introduce-flight-benchmarks
Open

[#10029][benchmarks] arrow-flight roundtrip as well as encode/decode #10031
Rich-T-kid wants to merge 1 commit into
apache:mainfrom
Rich-T-kid:rich-T-kid/introduce-flight-benchmarks

Conversation

@Rich-T-kid
Copy link
Copy Markdown
Contributor

@Rich-T-kid Rich-T-kid commented May 27, 2026

Which issue does this PR close?

Rationale for this change

Provides benchmarks for arrow-flight crate. benchmarks for round trip as well as encode/decode individually.

What changes are included in this PR?

Adds three criterion benches under arrow-flight/benchmarks/ (roundtrip.rs, flight_encode.rs, flight_decode.rs), each sweeping a tunable matrix of rows, cols, and column types (fixed Int64, variable StringArray, nested List, dict DictionaryArray) built via a shared
common::build_batch helper.

Are these changes tested?

n/a

Are there any user-facing changes?

no

@github-actions github-actions Bot added arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate labels May 27, 2026
@Rich-T-kid Rich-T-kid changed the title [#10029] arrow-flight roundtrip as well as encode/decode [#10029][benchmarks] arrow-flight roundtrip as well as encode/decode May 27, 2026
@Rich-T-kid Rich-T-kid force-pushed the rich-T-kid/introduce-flight-benchmarks branch from 20b0d75 to 4f6d153 Compare May 27, 2026 21:25
@Rich-T-kid
Copy link
Copy Markdown
Contributor Author

@alamb could you take a look at this when you get a chance? smaller PR that only includes benchmarks, #10029 has a bit more context. 🫡

Copy link
Copy Markdown
Contributor

@gabotechs gabotechs left a comment

Choose a reason for hiding this comment

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

👍 nice work @Rich-T-kid! pretty clean benchmarks. Left some suggestions, but otherwise this LGTM

Comment thread arrow-flight/benchmarks/common/mod.rs
Comment thread arrow-flight/benchmarks/common/mod.rs Outdated
Comment thread arrow-flight/benchmarks/common/mod.rs Outdated
Copy link
Copy Markdown
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

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

Thanks @Rich-T-kid and @gabotechs

I think this looks good to me after we implement @gabotechs 's suggestion

Comment thread arrow-flight/benchmarks/common/mod.rs Outdated
Comment thread arrow-flight/Cargo.toml Outdated
@Rich-T-kid Rich-T-kid force-pushed the rich-T-kid/introduce-flight-benchmarks branch from 97bc1a9 to a0ce9a3 Compare June 2, 2026 16:41
@Rich-T-kid
Copy link
Copy Markdown
Contributor Author

pushed a revised PR @alamb. im not sure why the CI is failing. I'm running ./regen.sh but that isnt resolving it.

@alamb
Copy link
Copy Markdown
Contributor

alamb commented Jun 2, 2026

pushed a revised PR @alamb. im not sure why the CI is failing. I'm running ./regen.sh but that isnt resolving it.

Looks like the fail is https://github.com/apache/arrow-rs/actions/runs/26834183268/job/79123485734?pr=10031

Run git diff --exit-code
diff --git a/Cargo.lock b/Cargo.lock
index 28fe6a4..9e5963a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -348,6 +348,7 @@ dependencies = [
  "base64",
  "bytes",
  "clap",
+ "criterion",
  "futures",
  "http",
  "http-body",
@@ -1063,6 +1064,7 @@ dependencies = [
  "serde",
  "serde_json",
  "tinytemplate",
+ "tokio",
  "walkdir",
 ]

do we need to check in the Cargo.lock file 🤔

@Rich-T-kid
Copy link
Copy Markdown
Contributor Author

Rich-T-kid commented Jun 2, 2026

yea the error mentions the cargo.lock file but it doesn't exist within the arrow-flight repo.

@Rich-T-kid
Copy link
Copy Markdown
Contributor Author

Rich-T-kid commented Jun 2, 2026

The issue is that the cargo.lock file on main doesnt have criterion listed as a dependency for arrow-flight. But Cargo.lock is ignored due to the .gitignore so I cant push an update directly. ./arrow-flight/regen.sh is suppose to do this but it only shows up in my local environment.

@github-actions github-actions Bot added parquet Changes to the parquet crate parquet-derive parquet-variant parquet-variant* crates arrow-avro arrow-avro crate labels Jun 2, 2026
@Rich-T-kid Rich-T-kid force-pushed the rich-T-kid/introduce-flight-benchmarks branch from 92c2c64 to dbf546c Compare June 2, 2026 18:10
@github-actions github-actions Bot removed parquet Changes to the parquet crate parquet-derive parquet-variant parquet-variant* crates arrow-avro arrow-avro crate labels Jun 2, 2026
@Rich-T-kid
Copy link
Copy Markdown
Contributor Author

😰 fixed it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants