arrow-ipc: Reduce writer allocations for dictionary batches
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 1.3k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 167
Description
### Is your feature request related to a problem or challenge?
IPC writer code used to stage ipc messages and array buffers in intermediate storage before writing them out to the final destination (writer or file). #10044 introduced an optimization to avoid this intermediate staging for record batch ipc bodies when compression was not present.
We can apply the same optimization for dictionary batches which are basically a special case of record batch messages.
### Describe the solution you'd like
Collect references to dictionary batch values ahead of time and do the writes directly to the writer when we don't have to apply compression.
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Research direction
Start with the IPC writer code and the record-batch optimization introduced in #10044, then locate the corresponding dictionary-batch write path. Confirm how dictionary values are collected and how compression changes the path; done means uncompressed dictionary batches write directly to the destination without intermediate staging while compressed writes retain their required behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data-engineering, performance
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100