Skip to content

Parquet v3 read concurrency - #2235

Open
UnamedRus wants to merge 2 commits into
antalya-26.6from
parquet-v3-read-concurrency
Open

Parquet v3 read concurrency#2235
UnamedRus wants to merge 2 commits into
antalya-26.6from
parquet-v3-read-concurrency

Conversation

@UnamedRus

Copy link
Copy Markdown
Collaborator

Number of changes to bring parquet v3 reader perf closer to arrow based

Changelog category (leave one):

  • Performance Improvement

Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

Workflow [PR], commit [f13f6a5]

Budget memory and threads separately per read stage instead of one shared
fraction, and add a ColumnDataPrefetch stage that issues the compressed
data-page reads (charged to its own memory budget) while ColumnData only
decodes. The old single 0.2 fraction capped the data stage at 0.2 of both
memory and threads, so only ~2 row groups were read/decoded ahead and the S3
link sat idle on latency-bound, high-RTT reads. Now compressed reads run deep
(cheap per row group) while decoded row groups stay bounded, hiding per-GET
latency. Also reconcile the decoded-memory charge up to the actual footprint
inside decodePrimitiveColumn, before formOutputColumn moves the column, so the
honest cap actually bounds decode-ahead.

Squashed extraction of 34816a3 + 114640e + f260506 from the
parquet-v3 feature branch onto antalya-26.6.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: UnamedRus <dtitmoav@gmail.com>
@UnamedRus
UnamedRus force-pushed the parquet-v3-read-concurrency branch from ad5f3aa to 79d3658 Compare August 18, 2026 13:46
…2 MiB)

The reader always read a fixed 64 KiB tail to get FileMetaData; files whose
metadata (or metadata + Column/Offset index) exceed that pay a second read.
Size the initial tail to 10% of the file, clamped to [64 KiB, 2 MiB], so the
first read usually covers the whole footer - including the Column/Offset index
just before FileMetaData - without over-reading a large tail on big files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: UnamedRus <dtitmoav@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant