should control the maximum memory usage
- Dominant language
- Java
- Stars
- 94
- Forks
- 152
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 11
Description
### Describe the enhancement requested
`ArrowVectorIterator::consume` only concern about the `ArrowVectorIterator#targetBatchSize` but not the memory used.
Let's suppose a scenario:
1. A database table with a longtext field;
2. All of the rows in the table are larger than 500M;
3. `ArrowVectorIterator#targetBatchSize` is 256;
We need at least for 125G memory to get one record batch.
So I think it's better add a parameter such as `maxBufferSize` to control the memory usage.
Contributor guide
Research direction
Start with ArrowVectorIterator::consume and the existing targetBatchSize handling. Determine how a maxBufferSize limit should interact with record-batch construction, then define tests for large variable-length values; done means iteration respects the memory limit without requiring an oversized batch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data-engineering
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100