haohuaijin opened a new pull request, #11007: URL: https://github.com/apache/arrow-rs/pull/11007
# Which issue does this PR close? Related to #10926. # Rationale for this change `RowFilter` evaluates each `ArrowPredicate` separately, so consecutive predicates on the same projection decode that column, or replay it from the predicate cache, once per predicate. #10859 fuses such chains. Per the contributing guide, the benchmark is submitted separately so it can run on the automated runner and serve as the baseline for that change. # What changes are included in this PR? A criterion benchmark, `parquet/benches/arrow_reader_predicate_fusion.rs`, that scans an in-memory Snappy Parquet file of 262,144 rows through the async reader. Case names are `type/layout/cache/predicates/profile`: - `int64` / `string` filter column, `fragmented` (one key per row) or `clustered` (each key repeated for 128 rows) - `cached` / `uncached`: whether the filter column is also projected and therefore served by the predicate cache - chains of 1 (control), 2 and 4 predicates - survivor profiles `all99`, `all50`, `early1` and `late1` - a `selection_boundary` group with run lengths 16, 32 and 64 around the default row selection policy threshold 75 cases in total. Each case is validated once outside measurement for the expected row count and predicate cache use. # Are these changes tested? The benchmark builds and its registration-time validation passes on `main`. # Are there any user-facing changes? No. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
