apache / apache/arrow-java

should control the maximum memory usage

Open
#736 0 comments 0 reactions 0 assignees View on GitHub
Type: enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.