Extend string IN-list pruning benchmarks
Expanded DataFusion's Criterion benchmark matrix for string IN-list pruning while preserving historical benchmark identifiers and leaving production thresholds unchanged.
apache/datafusion · #24836
Benchmark infrastructure
DataFusion can now measure string IN-list pruning across small domains and changing container counts before altering production representation thresholds.
Problem
The existing benchmark covered only domain sizes 20, 21, 256, and 1,024 against a fixed 4,096 pruning containers. It could not characterize small-list behavior or show how competing representations scale with the number of containers.
Approach
Adds domain sizes 1, 2, 4, 8, and 16 and evaluates the complete domain set at 16, 256, and 4,096 containers. Construction measurements remain independent of container count, and each evaluation cell validates that both representations return equivalent pruning results outside the timed loop.
Impact and scope
- Creates the measurement coverage needed to evaluate follow-up pruning threshold and representation changes with reproducible evidence.
- Separates benchmark expansion from production optimization so later performance claims can be reviewed independently.
- Preserves existing 4,096-container Criterion identifiers, keeping historical baselines comparable.
Validation
- Executed the full 72-case Criterion matrix spanning domain size, container count, and pruning representation.
- All 95 datafusion-pruning tests, the extended workspace suite, and repository Rust lint checks passed; Codecov reported every modified coverable line covered.
- A DataFusion maintainer approved the authored change; the GitHub-verified merge commit credits Goutam Adwant and closed GH-24707.