Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tests for record batch size splitting logic in FlightClient #3481

Merged
merged 3 commits into from
Jan 6, 2023

Conversation

alamb
Copy link
Contributor

@alamb alamb commented Jan 6, 2023

Which issue does this PR close?

re #3478

Rationale for this change

There is ongoing drama downstream in IOx related to maximum message sizes.

This PR adds some tests for important cases to document the current behavior (and hopefully make fixing #3478 easier)

What changes are included in this PR?

Tests that encode RecordBatches and check how far off the encoded size is from the requested "flight_max_data_size"

Are there any user-facing changes?

No

@github-actions github-actions bot added the arrow-flight Changes to the arrow-flight crate label Jan 6, 2023
])
.unwrap();

verify_encoded_split(batch, 112).await;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is pretty good -- only 112 bytes above desired max (I think that is mostly the various alignment and padding overhead)

.unwrap();

// 5k over limit (which is 2x larger than limit of 5k) -- not great :(
verify_encoded_split(batch, 5800).await;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is pretty bad -- over 2x larger than the largest message size limit

Copy link
Contributor

@tustvold tustvold left a comment

Choose a reason for hiding this comment

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

Might be worth working in the issue somewhere to make clear these are tests of the current behaviour, not necessarily the long-term desired behaviour

}
}

// ensure that the specified overage is exactly the maxmium than necessary
Copy link
Contributor

Choose a reason for hiding this comment

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

This comment is a little funky

Copy link
Contributor Author

Choose a reason for hiding this comment

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

agreed -- clarified

@alamb
Copy link
Contributor Author

alamb commented Jan 6, 2023

Might be worth working in the issue somewhere to make clear these are tests of the current behaviour, not necessarily the long-term desired behaviour

Good idea -- added

@alamb alamb merged commit 7805a81 into apache:master Jan 6, 2023
@ursabot
Copy link

ursabot commented Jan 6, 2023

Benchmark runs are scheduled for baseline = b4d5705 and contender = 7805a81. 7805a81 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Skipped ⚠️ Benchmarking of arrow-rs-commits is not supported on ec2-t3-xlarge-us-east-2] ec2-t3-xlarge-us-east-2
[Skipped ⚠️ Benchmarking of arrow-rs-commits is not supported on test-mac-arm] test-mac-arm
[Skipped ⚠️ Benchmarking of arrow-rs-commits is not supported on ursa-i9-9960x] ursa-i9-9960x
[Skipped ⚠️ Benchmarking of arrow-rs-commits is not supported on ursa-thinkcentre-m75q] ursa-thinkcentre-m75q
Buildkite builds:
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python, R. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arrow-flight Changes to the arrow-flight crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants