apache / apache/parquet-java

Improve the creation of ExecutorService when reading footers

Open
#2,071 0 comments 0 reactions 0 assignees View on GitHub
Component: Java Component: Parquet Priority: Minor Type: enhancement
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

Doing some benchmarks loading a large set of parquet files (3000+) from the local FS, we observed some inefficiencies in the number of created threads when reading footers.

By reading, the read the configuration parallelism in Hadoop configuration (defaulted to 5) and allocate 2 ExecuteService with each 5 threads to read footers. This is especially inefficient if there is less Callable to handle than the configured parallelism.

**Reporter**: [Benoit Lacelle](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=blasd)

**Note**: *This issue was originally created as [PARQUET-1055](https://issues.apache.org/jira/browse/PARQUET-1055). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue identifies footer reading and Hadoop configuration parallelism as the entry points. Trace where the two ExecutorService instances are created and compare their sizing with the number of Callable footer tasks. Done means avoiding excess threads when fewer tasks exist than the configured parallelism.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.