-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[ENH][PERF] Optimize block decoding #5396
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
Conversation
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
|
Optimize Block Decoding Using serde_bytes and Improved Buffer Handling This PR refactors the block decoding logic in the blockstore module, transitioning internal decoding helpers to operate directly on byte slices (&[u8]) rather than I/O streams. It introduces the use of the serde_bytes crate for more efficient and clearer serialization/deserialization of binary data. Logic for Arrow IPC file parsing, particularly around footer and record batch extraction, has been consolidated into reusable helper functions. The changes also affect how block files are read from disk: instead of using streams, files are read fully into buffers before processing. This approach standardizes all in-memory and file-based logic and enables clearer code paths. Associated dependencies (serde_bytes) are introduced in Cargo.toml and Cargo.lock. Key Changes• Refactored block decoding helpers to operate on &[u8] instead of std::io streams. Affected Areas• rust/blockstore/src/arrow/block/types.rs This summary was automatically generated by @propel-code-bot |
## Description of changes _Summarize the changes made by this PR._ - Improvements & Bug fixes - Reverts #5396 - New functionality - ... ## Test plan _How are these changes tested?_ - [x] Tests pass locally with `pytest` for python, `yarn test` for js, `cargo test` for rust ## Migration plan None ## Observability plan lodc errors should go away in prod ## Documentation Changes None
## Description of changes _Summarize the changes made by this PR._ - Improvements & Bug fixes - Reverts #5396 - New functionality - ... ## Test plan _How are these changes tested?_ - [x] Tests pass locally with `pytest` for python, `yarn test` for js, `cargo test` for rust ## Migration plan None ## Observability plan lodc errors should go away in prod ## Documentation Changes None
Description of changes
Summarize the changes made by this PR.
Test plan
How are these changes tested?
Existing test coverage suffices as these are non functional changes at the boundary
pytestfor python,yarn testfor js,cargo testfor rustMigration plan
None required
Observability plan
We should audit staging enviornment use cases closely
Documentation Changes
None