Repository navigation
test(parquet): add I/O tracking test for Bloom filter loading baseline - #26897
Open
mohitgurav20 wants to merge 1 commit into
Open
mohitgurav20 wants to merge 1 commit into
mohitgurav20 wants to merge 1 commit into
Conversation
mohitgurav20
force-pushed
the
test/parquet-bloom-filter-io-baseline
branch
from
October 29, 2026 19:36
aacf4dd to
587ce90
Compare
mohitgurav20
marked this pull request as ready for review
October 29, 2026 19:56
alamb
reviewed
Oct 30, 2026
alamb
left a comment
Contributor
There was a problem hiding this comment.
Thanks for this @mohitgurav20
Can you please:
- Move this to a "end to end" test that uses datafusion public APIs (dataframe or SQL, preferably SQL)
- Move to using insta snapshots
The test hould do something like:
- Create a test parquet file
- REad the test parquet file using an instrumented object store
- Report the series of events
Something like
Read data page for column 1 (offsets...)
Read PageInded for column 1 (ofsets...)
Produce batch (1024 rows)
Read Bloom Filter for column 1 (offsets...)
Then the log should be rendered as text and compared to a snapshot using insta snapshot
…ng baseline - Add InstrumentedObjectStore that correlates requested byte ranges to Parquet file structures (footers, page indexes, bloom filters, data pages) - Add test_parquet_bloom_filter_io_baseline using public SessionContext SQL APIs - Use insta snapshot to capture and compare the storage I/O trace - Documents baseline on main where all candidate column Bloom filters are loaded upfront, establishing the target diff for incremental pruning (apache#25811)
mohitgurav20
force-pushed
the
test/parquet-bloom-filter-io-baseline
branch
from
October 31, 2026 07:25
5788ada to
c0a70fb
Compare
Contributor
Author
|
hiii @alamb The snapshot records that both bloom filters are loaded upfront on main. Once this lands, #25811's diff on the snapshot will cleanly show the second fetch skipped. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Part of #25797. Baseline for #25811.
Rationale for this change
In #25811 we evaluate Parquet bloom filters incrementally during row group pruning to avoid fetching filters for later columns when an earlier column already rejects the row group.
Per review discussion on #25811, this PR adds a baseline test to
mainusing a trackingAsyncFileReader(similar toarrow-rsasync reader tests). It records thatmaincurrently fetches all candidate column bloom filters upfront (2 requests for a 2-column query where the first column is absent).Once this merges, #25811 will rebase on top and show the skipped fetch directly in the test diff.
What changes are included in this PR?
RangeTracker,TrackingAsyncReader, andTrackingReaderFactoryindatafusion/datasource-parquet/src/opener/mod.rsto record requested byte ranges.test_bloom_filter_io_pattern_baselineasserting current upfront fetch behavior onmain.Are these changes tested?
Yes, via
test_bloom_filter_io_pattern_baseline.Are there any user-facing changes?
No.