Skip to content

feat(parquet-datasource): always accept pushable filters, run rejected conjuncts post-scan - #22384

Draft
adriangb wants to merge 4 commits into
apache:mainfrom
adriangb:parquet-post-scan-filter
Draft

feat(parquet-datasource): always accept pushable filters, run rejected conjuncts post-scan#22384
adriangb wants to merge 4 commits into
apache:mainfrom
adriangb:parquet-post-scan-filter

Conversation

@adriangb

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

  • Closes #.

Rationale for this change

The Parquet scan today gives the predicate to the source for row-group / page
/ bloom pruning, but only applies it row-level via RowFilter when
pushdown_filters=true. With pushdown off, a FilterExec is left above the
scan to do row-level filtering. This is the substrate the adaptive-filter
work (#22237 / #22144) builds on, but it also has a real correctness bug
on main
that's worth fixing on its own.

build_row_filter (row_filter.rs:994-1083, see its own doc comment at
1009-1014) silently drops conjuncts that FilterCandidateBuilder::build
returns Ok(None) for, and RowFilterGenerator::build swallows whole-build
errors. By the time build_row_filter runs, ParquetSource::try_pushdown_filters
has already accepted the filter and the parent FilterExec has been removed
— so those dropped conjuncts are never applied anywhere and the query
returns wrong results. The most reproducible trigger is the per-file expr
adapter rewriting a predicate that was pushable at table schema time into
something PushdownChecker rejects at physical file schema time (schema
evolution / coercion, whole-struct refs introduced by the rewrite, etc.).

This PR makes the Parquet scan always own its pushable filters and
guarantees every accepted conjunct is applied — either by the parquet
RowFilter or by a new in-scan post-scan filter evaluated on decoded
batches (the in-scan equivalent of a FilterExec). Nothing is silently
dropped.

What changes are included in this PR?

  • row_filter.rs — never drop conjuncts.build_row_filter now returns
    Result<(Option<RowFilter>, Vec<Arc<dyn PhysicalExpr>>)> — the second
    element is the conjuncts it could not place. RowFilterGenerator exposes
    them via rejected_conjuncts(); on whole-file build errors it routes
    every conjunct through that list (no silent error swallowing).
  • post_scan_filter.rs (new module) — encapsulates the projection
    widening + rebasing + filter evaluation behind a small API:
    • PostScanFilter — evaluates a predicate on decoded batches; SQL WHERE
      semantics (NULL drops the row); records rows-pruned / matched / time.
    • DecoderProjection::build(projection, post_scan_conjuncts, schemas, …)
      — widens the decoder projection over (user projection ∪ post-scan
      conjunct columns), rebases the projection and conjuncts onto the
      decoder's stream schema, and returns the ProjectionMask, Projector,
      replace_schema flag, and the rebased PostScanFilter. Empty conjuncts
      list = the prior projection-only behaviour, so the opener routes every
      file through this one call.
  • ParquetSource::try_pushdown_filters — always returns the per-filter
    Yes/No discriminant based on can_expr_be_pushed_down_with_schemas,
    regardless of the pushdown_filters config. The flag still records whether
    the RowFilter (vs. post-scan) path is used downstream.
  • opener/mod.rs::build_stream — orchestrates: builds the
    RowFilterGenerator only when pushdown_filters=true; computes
    post_scan_conjuncts (rejected conjuncts when pushdown is on, full
    split-conjunction of the predicate when off); calls DecoderProjection::build;
    routes the LIMIT to remaining_limit instead of a decoder limit whenever
    the post-scan filter is present (decoder-local limit + post-scan filter is
    unsafe — the decoder would stop before the post-scan rejected enough rows).
    The prior inline build_projection_read_plan / reassign_expr_columns /
    make_projector block is replaced by the single DecoderProjection::build
    call — net simplification.
  • push_decoder.rsPushDecoderStreamState carries an
    Option<PostScanFilter>; in the DecodeResult::Data arm it applies the
    filter, skips empty batches, then enforces remaining_limit and projects.
    DecoderBuilderConfig is fed projection_mask: &ProjectionMask directly
    (no longer the full ParquetReadPlan).
  • metrics.rs — new post_scan_rows_pruned / post_scan_rows_matched
    counters and post_scan_filter_eval_timeTime, mirroring the existing
    pushdown_rows_* / row_pushdown_eval_time so EXPLAIN ANALYZE keeps
    surfacing filter cost once the FilterExec is gone.

The adaptive-filter machinery from #22237 / #22144 (SelectivityTracker,
FilterId tagging, per-conjunct pruning stats, StrategySwap mid-stream
swaps, OptionalFilterPhysicalExpr, custom arrow-rs branch, the three
filter_pushdown_* config knobs) is intentionally not included — this
PR is the standalone substrate they would build on.

Are these changes tested?

Yes.

  • Two new regression tests for the drop-on-floor bug:
    • build_row_filter_surfaces_rejected_struct_conjunct (row_filter.rs)
      asserts the new API contract directly — build_row_filter no longer
      drops the rejected conjunct.
    • rejected_struct_conjunct_runs_post_scan_not_dropped (opener/mod.rs)
      is an end-to-end test: with pushdown_filters=true and a s IS NOT NULL
      predicate over a struct column where row 1 is NULL, main returns 3
      rows (conjunct silently dropped, predicate relaxed) and this PR returns
      the correct 2.
  • Existing parquet integration tests, opener unit tests, physical-optimizer
    filter-pushdown tests, and sqllogictest all pass.
  • A handful of in-tree tests that asserted the old "scan only does stats
    pruning" behaviour (e.g. `a = 1` over data `[1, 2, 3]` should still
    return 3 rows because the row group wasn't stats-pruned) are updated to
    reflect the new behaviour — the scan now applies the predicate row-level
    via the post-scan filter, so they return only the matching row.
  • Parquet-related explain .slt files are regenerated (clickbench,
    push_down_filter_parquet, projection_pushdown, parquet*, etc.) — the
    FilterExec above parquet scans is gone from those plans. Spurious
    whitespace-only churn from --complete was reverted.

Are there any user-facing changes?

  • Bug fix: predicates with non-row-filterable conjuncts (e.g. whole-struct
    references, certain schema-evolution edge cases) now return correct
    results with pushdown_filters=true. Before this PR they were silently
    relaxed.
  • Plan shape: FilterExec no longer appears above a DataSourceExec for
    pushable filters on a parquet source. The predicate appears as predicate=…
    on the DataSourceExec. Query results are unchanged.
  • Metrics: three new metrics on ParquetFileMetrics
    post_scan_rows_pruned, post_scan_rows_matched, post_scan_filter_eval_time
    — appear in EXPLAIN ANALYZE output for parquet scans.
  • Public API: build_row_filter return type changes from
    Result<Option<RowFilter>> to
    Result<(Option<RowFilter>, Vec<Arc<dyn PhysicalExpr>>)>; callers must
    apply the rejected conjuncts (or they'll have the same drop-on-floor bug
    this PR fixes).

Draft. Happy to split into a stack (refactor → row_filter fix → opener
orchestration + tests) if reviewers prefer.

🤖 Generated with Claude Code

@github-actionsgithub-actionsBot added core Core DataFusion crate sqllogictest SQL Logic Tests (.slt) datasource Changes to the datasource crate labels May 20, 2026
@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4495887007-210-jhcst 6.12.68+ #1 SMP Wed Apr 1 02:23:28 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (7dd85fc) to c8b784a (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4495887007-211-6z8jh 6.12.68+ #1 SMP Wed Apr 1 02:23:28 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (7dd85fc) to c8b784a (merge-base) diff using: tpcds
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4495887007-212-rtdbb 6.12.68+ #1 SMP Wed Apr 1 02:23:28 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (7dd85fc) to c8b784a (merge-base) diff using: tpch
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.35 / 39.61 ±1.44 / 42.27 ms │ 38.15 / 38.72 ±0.85 / 40.41 ms │ no change │
│ QQuery 2 │ 20.33 / 20.45 ±0.18 / 20.79 ms │ 22.30 / 22.71 ±0.41 / 23.49 ms │ 1.11x slower │
│ QQuery 3 │ 32.78 / 36.07 ±3.11 / 41.27 ms │ 54.78 / 56.31 ±2.51 / 61.29 ms │ 1.56x slower │
│ QQuery 4 │ 17.20 / 17.71 ±0.55 / 18.73 ms │ 19.09 / 19.45 ±0.34 / 20.03 ms │ 1.10x slower │
│ QQuery 5 │ 40.80 / 42.19 ±0.72 / 42.89 ms │ 62.77 / 64.75 ±2.75 / 70.20 ms │ 1.53x slower │
│ QQuery 6 │ 16.44 / 16.54 ±0.08 / 16.62 ms │ 16.08 / 17.05 ±0.89 / 18.25 ms │ no change │
│ QQuery 7 │ 46.38 / 47.52 ±0.97 / 48.73 ms │ 56.06 / 56.24 ±0.15 / 56.44 ms │ 1.18x slower │
│ QQuery 8 │ 44.94 / 45.87 ±1.34 / 48.53 ms │ 66.90 / 67.58 ±0.92 / 69.40 ms │ 1.47x slower │
│ QQuery 9 │ 49.75 / 50.66 ±0.87 / 51.87 ms │ 83.17 / 83.63 ±0.45 / 84.29 ms │ 1.65x slower │
│ QQuery 10 │ 63.59 / 63.76 ±0.20 / 64.14 ms │ 69.43 / 71.36 ±2.92 / 77.16 ms │ 1.12x slower │
│ QQuery 11 │ 13.26 / 13.55 ±0.37 / 14.24 ms │ 13.73 / 13.97 ±0.18 / 14.26 ms │ no change │
│ QQuery 12 │ 23.93 / 24.98 ±1.27 / 27.47 ms │ 33.35 / 34.58 ±0.96 / 35.94 ms │ 1.38x slower │
│ QQuery 13 │ 33.76 / 34.96 ±1.08 / 36.65 ms │ 46.16 / 47.53 ±1.10 / 48.50 ms │ 1.36x slower │
│ QQuery 14 │ 25.59 / 26.01 ±0.51 / 26.97 ms │ 36.71 / 38.37 ±1.40 / 40.04 ms │ 1.48x slower │
│ QQuery 15 │ 31.50 / 32.24 ±0.74 / 33.40 ms │ 31.87 / 32.04 ±0.12 / 32.23 ms │ no change │
│ QQuery 16 │ 14.99 / 15.28 ±0.19 / 15.50 ms │ 18.68 / 18.86 ±0.16 / 19.11 ms │ 1.23x slower │
│ QQuery 17 │ 73.78 / 75.04 ±0.89 / 76.08 ms │ 155.58 / 156.97 ±1.10 / 158.83 ms │ 2.09x slower │
│ QQuery 18 │ 61.36 / 62.98 ±1.26 / 65.22 ms │ 81.69 / 84.32 ±2.58 / 87.47 ms │ 1.34x slower │
│ QQuery 19 │ 35.16 / 35.41 ±0.21 / 35.70 ms │ 37.17 / 37.30 ±0.08 / 37.42 ms │ 1.05x slower │
│ QQuery 20 │ 37.66 / 38.23 ±0.63 / 39.17 ms │ 48.22 / 49.64 ±2.11 / 53.76 ms │ 1.30x slower │
│ QQuery 21 │ 56.52 / 57.78 ±1.17 / 59.46 ms │ 56.17 / 57.26 ±0.90 / 58.63 ms │ no change │
│ QQuery 22 │ 23.31 / 24.70 ±1.57 / 27.74 ms │ 29.11 / 29.54 ±0.30 / 29.90 ms │ 1.20x slower │
└───────────┴────────────────────────────────┴───────────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 821.53ms │
│ Total Time (parquet-post-scan-filter) │ 1098.21ms │
│ Average Time (HEAD) │ 37.34ms │
│ Average Time (parquet-post-scan-filter) │ 49.92ms │
│ Queries Faster │ 0 │
│ Queries Slower │ 17 │
│ Queries with No Change │ 5 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory5.5 GiB
Avg memory5.0 GiB
CPU user29.4s
CPU sys2.2s
Peak spill0 B

tpch — branch

MetricValue
Wall time10.0s
Peak memory5.6 GiB
Avg memory4.8 GiB
CPU user40.7s
CPU sys1.9s
Peak spill0 B

File an issue against this benchmark runner

@adriangb
adriangbforce-pushed the parquet-post-scan-filter branch from 7dd85fc to 2fffad2CompareMay 20, 2026 08:06
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 6.51 / 7.00 ±0.87 / 8.73 ms │ 6.00 / 6.51 ±0.90 / 8.30 ms │ +1.08x faster │
│ QQuery 2 │ 81.39 / 82.08 ±0.45 / 82.64 ms │ 48.73 / 48.95 ±0.33 / 49.61 ms │ +1.68x faster │
│ QQuery 3 │ 29.15 / 29.59 ±0.35 / 30.09 ms │ 32.56 / 32.95 ±0.25 / 33.21 ms │ 1.11x slower │
│ QQuery 4 │ 515.01 / 524.35 ±5.24 / 531.01 ms │ 341.39 / 343.90 ±1.37 / 345.40 ms │ +1.52x faster │
│ QQuery 5 │ 52.71 / 53.81 ±0.86 / 55.13 ms │ 80.09 / 80.53 ±0.40 / 81.21 ms │ 1.50x slower │
│ QQuery 6 │ 35.70 / 35.85 ±0.10 / 35.99 ms │ 34.66 / 34.97 ±0.19 / 35.17 ms │ no change │
│ QQuery 7 │ 109.27 / 111.52 ±2.32 / 115.60 ms │ 138.02 / 140.81 ±1.45 / 142.06 ms │ 1.26x slower │
│ QQuery 8 │ 39.65 / 40.24 ±0.49 / 41.09 ms │ 20.01 / 20.36 ±0.32 / 20.90 ms │ +1.98x faster │
│ QQuery 9 │ 53.51 / 55.47 ±1.47 / 57.35 ms │ 54.07 / 55.45 ±0.76 / 56.16 ms │ no change │
│ QQuery 10 │ 82.69 / 83.34 ±0.60 / 84.37 ms │ 114.10 / 115.61 ±1.25 / 117.46 ms │ 1.39x slower │
│ QQuery 11 │ 323.08 / 334.05 ±6.16 / 341.43 ms │ 217.93 / 222.34 ±4.09 / 229.83 ms │ +1.50x faster │
│ QQuery 12 │ 29.09 / 29.43 ±0.38 / 30.15 ms │ 25.10 / 25.43 ±0.24 / 25.78 ms │ +1.16x faster │
│ QQuery 13 │ 129.29 / 130.11 ±0.62 / 130.95 ms │ 214.97 / 216.55 ±1.29 / 218.68 ms │ 1.66x slower │
│ QQuery 14 │ 507.14 / 511.06 ±3.22 / 515.06 ms │ 503.11 / 505.51 ±2.15 / 508.79 ms │ no change │
│ QQuery 15 │ 64.51 / 65.80 ±1.48 / 68.66 ms │ 29.98 / 30.41 ±0.31 / 30.75 ms │ +2.16x faster │
│ QQuery 16 │ 7.19 / 7.39 ±0.12 / 7.55 ms │ 6.62 / 6.89 ±0.28 / 7.43 ms │ +1.07x faster │
│ QQuery 17 │ 83.46 / 84.30 ±0.50 / 84.92 ms │ 140.17 / 141.24 ±0.91 / 142.46 ms │ 1.68x slower │
│ QQuery 18 │ 154.97 / 155.97 ±0.97 / 157.62 ms │ 287.12 / 289.55 ±2.25 / 293.66 ms │ 1.86x slower │
│ QQuery 19 │ 42.16 / 42.88 ±0.47 / 43.44 ms │ 55.63 / 56.47 ±0.63 / 57.29 ms │ 1.32x slower │
│ QQuery 20 │ 36.78 / 37.29 ±0.33 / 37.75 ms │ 29.08 / 29.51 ±0.48 / 30.44 ms │ +1.26x faster │
│ QQuery 21 │ 18.80 / 18.97 ±0.16 / 19.19 ms │ 18.59 / 18.74 ±0.12 / 18.89 ms │ no change │
│ QQuery 22 │ 64.89 / 65.96 ±0.71 / 67.00 ms │ 66.77 / 67.29 ±0.39 / 67.84 ms │ no change │
│ QQuery 23 │ 504.84 / 515.07 ±5.85 / 522.36 ms │ 361.66 / 364.66 ±1.75 / 366.67 ms │ +1.41x faster │
│ QQuery 24 │ 240.10 / 244.54 ±4.55 / 252.84 ms │ 562.66 / 568.16 ±3.40 / 572.96 ms │ 2.32x slower │
│ QQuery 25 │ 115.54 / 116.59 ±1.07 / 118.58 ms │ 161.92 / 162.92 ±0.73 / 164.06 ms │ 1.40x slower │
│ QQuery 26 │ 73.02 / 74.62 ±1.44 / 76.62 ms │ 88.35 / 89.65 ±1.56 / 92.70 ms │ 1.20x slower │
│ QQuery 27 │ 7.47 / 7.81 ±0.20 / 8.10 ms │ 6.95 / 7.13 ±0.15 / 7.33 ms │ +1.10x faster │
│ QQuery 28 │ 58.82 / 61.66 ±2.77 / 65.46 ms │ 58.96 / 61.96 ±2.32 / 64.36 ms │ no change │
│ QQuery 29 │ 100.07 / 101.39 ±1.41 / 104.09 ms │ 172.84 / 175.62 ±2.06 / 178.90 ms │ 1.73x slower │
│ QQuery 30 │ 31.81 / 32.60 ±0.76 / 33.61 ms │ 34.59 / 35.17 ±0.42 / 35.68 ms │ 1.08x slower │
│ QQuery 31 │ 114.69 / 115.59 ±0.70 / 116.54 ms │ 149.34 / 150.67 ±1.11 / 152.15 ms │ 1.30x slower │
│ QQuery 32 │ 21.77 / 21.91 ±0.15 / 22.19 ms │ 23.36 / 23.97 ±0.37 / 24.44 ms │ 1.09x slower │
│ QQuery 33 │ 40.43 / 40.99 ±0.55 / 41.98 ms │ 49.84 / 50.22 ±0.33 / 50.78 ms │ 1.23x slower │
│ QQuery 34 │ 10.27 / 12.03 ±2.57 / 17.10 ms │ 10.06 / 10.53 ±0.53 / 11.50 ms │ +1.14x faster │
│ QQuery 35 │ 82.69 / 83.81 ±0.97 / 85.57 ms │ 106.39 / 107.30 ±0.58 / 108.16 ms │ 1.28x slower │
│ QQuery 36 │ 6.66 / 6.84 ±0.15 / 7.12 ms │ 6.23 / 6.38 ±0.17 / 6.69 ms │ +1.07x faster │
│ QQuery 37 │ 7.54 / 7.64 ±0.07 / 7.75 ms │ 8.69 / 8.83 ±0.09 / 8.94 ms │ 1.16x slower │
│ QQuery 38 │ 71.05 / 72.08 ±0.93 / 73.77 ms │ 84.76 / 85.38 ±0.70 / 86.62 ms │ 1.18x slower │
│ QQuery 39 │ 101.16 / 102.72 ±1.28 / 104.80 ms │ 98.02 / 98.85 ±0.88 / 100.32 ms │ no change │
│ QQuery 40 │ 24.05 / 24.48 ±0.51 / 25.46 ms │ 22.87 / 23.17 ±0.24 / 23.53 ms │ +1.06x faster │
│ QQuery 41 │ 14.64 / 14.83 ±0.18 / 15.15 ms │ 15.49 / 15.66 ±0.18 / 15.99 ms │ 1.06x slower │
│ QQuery 42 │ 24.36 / 24.65 ±0.19 / 24.92 ms │ 32.16 / 32.49 ±0.22 / 32.84 ms │ 1.32x slower │
│ QQuery 43 │ 5.53 / 5.63 ±0.11 / 5.83 ms │ 5.05 / 5.15 ±0.15 / 5.43 ms │ +1.09x faster │
│ QQuery 44 │ 11.24 / 11.43 ±0.16 / 11.70 ms │ 10.66 / 10.82 ±0.14 / 11.04 ms │ +1.06x faster │
│ QQuery 45 │ 40.91 / 42.67 ±1.47 / 45.22 ms │ 31.31 / 32.19 ±0.82 / 33.47 ms │ +1.33x faster │
│ QQuery 46 │ 14.26 / 14.73 ±0.34 / 15.24 ms │ 14.27 / 14.51 ±0.23 / 14.95 ms │ no change │
│ QQuery 47 │ 248.51 / 254.11 ±5.14 / 262.37 ms │ 226.11 / 229.05 ±2.27 / 231.86 ms │ +1.11x faster │
│ QQuery 48 │ 107.15 / 107.51 ±0.37 / 108.23 ms │ 184.80 / 185.82 ±1.02 / 187.39 ms │ 1.73x slower │
│ QQuery 49 │ 83.65 / 84.29 ±0.48 / 84.82 ms │ 79.24 / 79.81 ±0.49 / 80.66 ms │ +1.06x faster │
│ QQuery 50 │ 62.31 / 62.89 ±0.61 / 64.00 ms │ 137.10 / 139.48 ±1.32 / 140.57 ms │ 2.22x slower │
│ QQuery 51 │ 93.63 / 97.04 ±3.42 / 103.15 ms │ 99.19 / 100.89 ±1.44 / 102.70 ms │ no change │
│ QQuery 52 │ 25.22 / 26.00 ±0.56 / 26.90 ms │ 32.72 / 33.00 ±0.22 / 33.28 ms │ 1.27x slower │
│ QQuery 53 │ 31.56 / 31.88 ±0.21 / 32.14 ms │ 35.97 / 36.49 ±0.35 / 36.84 ms │ 1.14x slower │
│ QQuery 54 │ 57.77 / 57.99 ±0.13 / 58.13 ms │ 33.05 / 34.40 ±1.39 / 37.01 ms │ +1.69x faster │
│ QQuery 55 │ 25.02 / 25.48 ±0.29 / 25.86 ms │ 31.61 / 31.78 ±0.12 / 31.99 ms │ 1.25x slower │
│ QQuery 56 │ 42.30 / 43.48 ±1.65 / 46.74 ms │ 55.10 / 55.47 ±0.35 / 55.97 ms │ 1.28x slower │
│ QQuery 57 │ 185.78 / 187.95 ±1.55 / 190.44 ms │ 158.27 / 160.06 ±1.63 / 162.31 ms │ +1.17x faster │
│ QQuery 58 │ 120.25 / 120.92 ±0.77 / 122.37 ms │ 84.21 / 84.78 ±0.35 / 85.26 ms │ +1.43x faster │
│ QQuery 59 │ 120.48 / 121.36 ±0.84 / 122.95 ms │ 78.65 / 79.91 ±1.14 / 81.69 ms │ +1.52x faster │
│ QQuery 60 │ 41.79 / 42.32 ±0.67 / 43.62 ms │ 50.40 / 50.72 ±0.41 / 51.52 ms │ 1.20x slower │
│ QQuery 61 │ 14.51 / 14.63 ±0.06 / 14.68 ms │ 13.20 / 13.36 ±0.19 / 13.72 ms │ +1.10x faster │
│ QQuery 62 │ 46.99 / 47.94 ±0.57 / 48.52 ms │ 41.05 / 41.48 ±0.38 / 42.04 ms │ +1.16x faster │
│ QQuery 63 │ 31.48 / 31.86 ±0.30 / 32.36 ms │ 36.48 / 36.64 ±0.14 / 36.85 ms │ 1.15x slower │
│ QQuery 64 │ 469.25 / 479.29 ±9.07 / 492.34 ms │ 880.57 / 884.97 ±3.62 / 890.84 ms │ 1.85x slower │
│ QQuery 65 │ 150.75 / 152.39 ±1.86 / 155.90 ms │ 1404.44 / 1461.15 ±36.14 / 1504.50 ms │ 9.59x slower │
│ QQuery 66 │ 84.54 / 86.12 ±1.02 / 87.15 ms │ 74.12 / 75.44 ±1.78 / 78.97 ms │ +1.14x faster │
│ QQuery 67 │ 262.70 / 269.38 ±4.68 / 275.40 ms │ 269.85 / 274.50 ±5.46 / 283.86 ms │ no change │
│ QQuery 68 │ 14.43 / 14.50 ±0.09 / 14.67 ms │ 14.15 / 14.47 ±0.26 / 14.91 ms │ no change │
│ QQuery 69 │ 79.38 / 80.49 ±1.08 / 81.96 ms │ 104.36 / 106.39 ±2.60 / 111.22 ms │ 1.32x slower │
│ QQuery 70 │ 107.00 / 110.70 ±4.66 / 119.65 ms │ 115.14 / 118.66 ±2.70 / 122.84 ms │ 1.07x slower │
│ QQuery 71 │ 37.06 / 37.91 ±1.02 / 39.87 ms │ 44.28 / 46.50 ±3.63 / 53.74 ms │ 1.23x slower │
│ QQuery 72 │ 2093.87 / 2210.85 ±80.57 / 2315.27 ms │ 230.54 / 232.10 ±0.94 / 233.44 ms │ +9.53x faster │
│ QQuery 73 │ 10.41 / 12.45 ±3.19 / 18.75 ms │ 10.49 / 10.87 ±0.32 / 11.31 ms │ +1.15x faster │
│ QQuery 74 │ 185.63 / 189.55 ±3.76 / 195.69 ms │ 141.87 / 143.27 ±1.35 / 144.95 ms │ +1.32x faster │
│ QQuery 75 │ 149.49 / 150.92 ±0.91 / 152.15 ms │ 200.82 / 202.97 ±2.65 / 208.17 ms │ 1.34x slower │
│ QQuery 76 │ 36.58 / 37.46 ±1.40 / 40.25 ms │ 41.65 / 42.26 ±0.44 / 42.82 ms │ 1.13x slower │
│ QQuery 77 │ 61.99 / 63.18 ±0.74 / 64.26 ms │ 73.41 / 73.79 ±0.38 / 74.37 ms │ 1.17x slower │
│ QQuery 78 │ 190.83 / 194.05 ±2.91 / 199.44 ms │ 162.13 / 162.94 ±0.62 / 163.93 ms │ +1.19x faster │
│ QQuery 79 │ 67.37 / 68.14 ±0.41 / 68.55 ms │ 82.76 / 83.26 ±0.36 / 83.57 ms │ 1.22x slower │
│ QQuery 80 │ 102.54 / 104.83 ±2.90 / 110.35 ms │ 98.53 / 99.84 ±0.99 / 101.35 ms │ no change │
│ QQuery 81 │ 25.42 / 25.68 ±0.30 / 26.26 ms │ 27.59 / 28.02 ±0.33 / 28.58 ms │ 1.09x slower │
│ QQuery 82 │ 17.34 / 17.84 ±0.66 / 19.14 ms │ 19.98 / 20.33 ±0.30 / 20.78 ms │ 1.14x slower │
│ QQuery 83 │ 37.83 / 38.53 ±0.39 / 39.01 ms │ 36.51 / 36.75 ±0.14 / 36.95 ms │ no change │
│ QQuery 84 │ 43.70 / 44.23 ±0.37 / 44.81 ms │ 56.98 / 57.26 ±0.23 / 57.53 ms │ 1.29x slower │
│ QQuery 85 │ 139.03 / 140.96 ±1.48 / 143.40 ms │ 246.01 / 248.06 ±2.63 / 252.97 ms │ 1.76x slower │
│ QQuery 86 │ 25.74 / 26.30 ±0.39 / 26.88 ms │ 30.36 / 30.67 ±0.33 / 31.27 ms │ 1.17x slower │
│ QQuery 87 │ 70.38 / 71.58 ±0.66 / 72.35 ms │ 85.57 / 87.56 ±1.10 / 88.90 ms │ 1.22x slower │
│ QQuery 88 │ 66.42 / 67.78 ±1.62 / 70.91 ms │ 67.43 / 68.04 ±0.52 / 68.94 ms │ no change │
│ QQuery 89 │ 37.02 / 37.65 ±0.36 / 38.08 ms │ 46.22 / 47.24 ±0.83 / 48.49 ms │ 1.25x slower │
│ QQuery 90 │ 18.29 / 18.36 ±0.07 / 18.46 ms │ 18.98 / 19.35 ±0.22 / 19.67 ms │ 1.05x slower │
│ QQuery 91 │ 53.21 / 53.83 ±0.50 / 54.68 ms │ 67.43 / 67.75 ±0.24 / 68.10 ms │ 1.26x slower │
│ QQuery 92 │ 30.93 / 31.59 ±0.61 / 32.67 ms │ 36.36 / 37.96 ±1.12 / 39.55 ms │ 1.20x slower │
│ QQuery 93 │ 51.03 / 52.56 ±1.26 / 54.34 ms │ 50.31 / 50.70 ±0.34 / 51.30 ms │ no change │
│ QQuery 94 │ 38.42 / 39.07 ±0.42 / 39.48 ms │ 46.03 / 46.65 ±0.60 / 47.76 ms │ 1.19x slower │
│ QQuery 95 │ 85.87 / 86.45 ±0.54 / 87.43 ms │ 126.83 / 128.00 ±1.03 / 129.52 ms │ 1.48x slower │
│ QQuery 96 │ 25.06 / 25.21 ±0.09 / 25.30 ms │ 27.85 / 28.26 ±0.42 / 29.02 ms │ 1.12x slower │
│ QQuery 97 │ 46.89 / 47.20 ±0.30 / 47.72 ms │ 52.00 / 52.28 ±0.26 / 52.65 ms │ 1.11x slower │
│ QQuery 98 │ 42.97 / 43.55 ±0.54 / 44.22 ms │ 35.98 / 36.23 ±0.28 / 36.74 ms │ +1.20x faster │
│ QQuery 99 │ 70.91 / 71.23 ±0.18 / 71.46 ms │ 59.97 / 60.37 ±0.38 / 60.97 ms │ +1.18x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 10822.22ms │
│ Total Time (parquet-post-scan-filter) │ 11209.30ms │
│ Average Time (HEAD) │ 109.32ms │
│ Average Time (parquet-post-scan-filter) │ 113.23ms │
│ Queries Faster │ 32 │
│ Queries Slower │ 52 │
│ Queries with No Change │ 15 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time55.0s
Peak memory7.0 GiB
Avg memory6.3 GiB
CPU user237.6s
CPU sys5.9s
Peak spill0 B

tpcds — branch

MetricValue
Wall time60.0s
Peak memory6.5 GiB
Avg memory6.0 GiB
CPU user150.4s
CPU sys4.6s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.28 / 4.81 ±6.89 / 18.60 ms │ 1.24 / 4.69 ±6.81 / 18.30 ms │ no change │
│ QQuery 1 │ 12.29 / 12.79 ±0.26 / 13.04 ms │ 13.27 / 13.54 ±0.16 / 13.77 ms │ 1.06x slower │
│ QQuery 2 │ 35.61 / 35.83 ±0.20 / 36.18 ms │ 36.87 / 37.35 ±0.36 / 37.97 ms │ no change │
│ QQuery 3 │ 30.63 / 31.03 ±0.54 / 32.10 ms │ 30.55 / 31.37 ±1.21 / 33.78 ms │ no change │
│ QQuery 4 │ 224.80 / 229.47 ±3.13 / 233.79 ms │ 221.44 / 226.66 ±4.01 / 233.81 ms │ no change │
│ QQuery 5 │ 270.90 / 274.08 ±2.39 / 277.22 ms │ 269.49 / 272.37 ±3.28 / 278.45 ms │ no change │
│ QQuery 6 │ 1.32 / 1.46 ±0.23 / 1.91 ms │ 1.28 / 1.42 ±0.22 / 1.87 ms │ no change │
│ QQuery 7 │ 13.56 / 13.63 ±0.07 / 13.74 ms │ 14.44 / 14.67 ±0.19 / 14.96 ms │ 1.08x slower │
│ QQuery 8 │ 316.75 / 321.17 ±2.69 / 324.01 ms │ 316.74 / 321.70 ±5.39 / 331.25 ms │ no change │
│ QQuery 9 │ 448.98 / 454.72 ±5.83 / 462.14 ms │ 446.14 / 454.86 ±6.30 / 461.65 ms │ no change │
│ QQuery 10 │ 70.83 / 71.61 ±0.77 / 73.02 ms │ 70.59 / 71.30 ±0.62 / 72.42 ms │ no change │
│ QQuery 11 │ 81.06 / 81.97 ±0.76 / 83.10 ms │ 81.77 / 82.81 ±0.81 / 84.18 ms │ no change │
│ QQuery 12 │ 263.98 / 271.53 ±6.44 / 280.04 ms │ 253.92 / 259.78 ±5.64 / 266.75 ms │ no change │
│ QQuery 13 │ 358.53 / 377.02 ±14.97 / 403.38 ms │ 383.50 / 395.90 ±13.52 / 414.11 ms │ 1.05x slower │
│ QQuery 14 │ 278.24 / 282.24 ±4.80 / 291.56 ms │ 268.45 / 273.66 ±5.29 / 283.63 ms │ no change │
│ QQuery 15 │ 262.37 / 268.26 ±3.61 / 271.55 ms │ 260.94 / 267.61 ±4.51 / 274.21 ms │ no change │
│ QQuery 16 │ 607.16 / 614.16 ±4.53 / 619.07 ms │ 611.95 / 616.10 ±2.56 / 619.32 ms │ no change │
│ QQuery 17 │ 607.07 / 615.97 ±7.41 / 628.58 ms │ 606.91 / 619.35 ±9.15 / 633.31 ms │ no change │
│ QQuery 18 │ 1231.65 / 1254.84 ±18.99 / 1281.95 ms │ 1249.68 / 1266.23 ±10.70 / 1280.10 ms │ no change │
│ QQuery 19 │ 27.90 / 32.69 ±5.75 / 40.32 ms │ 27.20 / 29.84 ±4.65 / 39.13 ms │ +1.10x faster │
│ QQuery 20 │ 519.38 / 525.02 ±5.84 / 536.06 ms │ 514.92 / 519.57 ±5.58 / 529.57 ms │ no change │
│ QQuery 21 │ 592.73 / 594.82 ±2.00 / 597.43 ms │ 587.88 / 600.51 ±9.56 / 612.32 ms │ no change │
│ QQuery 22 │ 1049.60 / 1066.99 ±8.81 / 1073.00 ms │ 1041.83 / 1048.18 ±6.70 / 1060.89 ms │ no change │
│ QQuery 23 │ 3171.24 / 3193.31 ±18.33 / 3221.79 ms │ 720.09 / 727.86 ±6.73 / 736.57 ms │ +4.39x faster │
│ QQuery 24 │ 41.35 / 43.18 ±2.95 / 49.04 ms │ 39.98 / 40.26 ±0.30 / 40.79 ms │ +1.07x faster │
│ QQuery 25 │ 111.59 / 113.42 ±2.83 / 119.05 ms │ 108.23 / 109.23 ±0.80 / 110.21 ms │ no change │
│ QQuery 26 │ 42.03 / 43.61 ±1.31 / 45.03 ms │ 40.82 / 41.49 ±0.58 / 42.41 ms │ no change │
│ QQuery 27 │ 673.21 / 678.49 ±4.96 / 687.01 ms │ 648.91 / 651.44 ±2.07 / 654.52 ms │ no change │
│ QQuery 28 │ 3003.98 / 3030.02 ±19.26 / 3054.89 ms │ 2993.84 / 3028.23 ±24.43 / 3054.69 ms │ no change │
│ QQuery 29 │ 41.71 / 50.42 ±10.45 / 64.30 ms │ 42.23 / 49.33 ±6.09 / 56.47 ms │ no change │
│ QQuery 30 │ 300.56 / 304.97 ±6.36 / 317.57 ms │ 303.33 / 306.99 ±3.22 / 311.89 ms │ no change │
│ QQuery 31 │ 280.58 / 285.63 ±4.29 / 291.07 ms │ 309.98 / 320.00 ±7.71 / 328.94 ms │ 1.12x slower │
│ QQuery 32 │ 923.31 / 949.23 ±19.87 / 984.79 ms │ 903.63 / 926.70 ±25.06 / 975.12 ms │ no change │
│ QQuery 33 │ 1420.16 / 1444.69 ±18.71 / 1468.08 ms │ 1420.30 / 1436.11 ±14.08 / 1459.64 ms │ no change │
│ QQuery 34 │ 1468.90 / 1496.03 ±25.98 / 1538.88 ms │ 1436.55 / 1458.05 ±22.82 / 1498.20 ms │ no change │
│ QQuery 35 │ 277.30 / 293.04 ±19.72 / 331.40 ms │ 279.89 / 289.23 ±14.27 / 317.67 ms │ no change │
│ QQuery 36 │ 65.55 / 70.38 ±3.71 / 76.39 ms │ 67.42 / 72.71 ±5.75 / 83.39 ms │ no change │
│ QQuery 37 │ 35.79 / 41.15 ±5.81 / 51.85 ms │ 36.79 / 39.49 ±4.00 / 47.30 ms │ no change │
│ QQuery 38 │ 43.05 / 45.13 ±2.60 / 50.20 ms │ 40.57 / 45.68 ±6.70 / 58.80 ms │ no change │
│ QQuery 39 │ 144.37 / 149.44 ±6.26 / 161.70 ms │ 130.09 / 144.12 ±7.62 / 152.02 ms │ no change │
│ QQuery 40 │ 14.50 / 18.47 ±3.80 / 24.42 ms │ 14.72 / 16.64 ±3.30 / 23.20 ms │ +1.11x faster │
│ QQuery 41 │ 13.71 / 14.26 ±0.40 / 14.92 ms │ 13.78 / 14.32 ±0.57 / 15.20 ms │ no change │
│ QQuery 42 │ 13.73 / 14.01 ±0.26 / 14.49 ms │ 13.41 / 13.48 ±0.07 / 13.61 ms │ no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 19715.01ms │
│ Total Time (parquet-post-scan-filter) │ 17160.82ms │
│ Average Time (HEAD) │ 458.49ms │
│ Average Time (parquet-post-scan-filter) │ 399.09ms │
│ Queries Faster │ 4 │
│ Queries Slower │ 4 │
│ Queries with No Change │ 35 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time100.0s
Peak memory30.4 GiB
Avg memory23.3 GiB
CPU user1024.5s
CPU sys62.1s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time90.0s
Peak memory30.0 GiB
Avg memory23.3 GiB
CPU user890.2s
CPU sys50.9s
Peak spill0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4871207316-819-p82vs 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (cca69df) to ad7d6ea (merge-base) diff using: tpcds
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4871207316-820-q76qs 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (cca69df) to ad7d6ea (merge-base) diff using: tpch
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c4871207316-818-f4qsw 6.12.85+ #1 SMP Mon May 11 08:17:35 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (cca69df) to ad7d6ea (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete


File an issue against this benchmark runner

@github-actions

github-actionsBot commented Jul 2, 2026

Copy link
Copy Markdown

Thank you for opening this pull request!

Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).

Details
 Cloning apache/main
Building datafusion v54.1.0 (current)
Built [ 88.164s] (current)
Parsing datafusion v54.1.0 (current)
Parsed [ 0.029s] (current)
Building datafusion v54.1.0 (baseline)
Built [ 85.945s] (baseline)
Parsing datafusion v54.1.0 (baseline)
Parsed [ 0.030s] (baseline)
Checking datafusion v54.1.0 -> v54.1.0 (no change; assume patch)
Checked [ 0.757s] 223 checks: 223 pass, 30 skip
Summary no semver update required
Finished [ 177.340s] datafusion
Building datafusion-datasource-parquet v54.1.0 (current)
Built [ 39.587s] (current)
Parsing datafusion-datasource-parquet v54.1.0 (current)
Parsed [ 0.027s] (current)
Building datafusion-datasource-parquet v54.1.0 (baseline)
Built [ 40.288s] (baseline)
Parsing datafusion-datasource-parquet v54.1.0 (baseline)
Parsed [ 0.027s] (baseline)
Checking datafusion-datasource-parquet v54.1.0 -> v54.1.0 (no change; assume patch)
Checked [ 0.171s] 223 checks: 222 pass, 1 fail, 0 warn, 30 skip
--- failure constructible_struct_adds_field: externally-constructible struct adds field ---
Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.49.0/src/lints/constructible_struct_adds_field.ron
Failed in:
field ParquetFileMetrics.post_scan_rows_pruned in /home/runner/work/datafusion/datafusion/datafusion/datasource-parquet/src/metrics.rs:75
field ParquetFileMetrics.post_scan_rows_matched in /home/runner/work/datafusion/datafusion/datafusion/datasource-parquet/src/metrics.rs:77
field ParquetFileMetrics.post_scan_filter_eval_time in /home/runner/work/datafusion/datafusion/datafusion/datasource-parquet/src/metrics.rs:79
Summary semver requires new major version: 1 major and 0 minor checks failed
Finished [ 81.049s] datafusion-datasource-parquet
Building datafusion-sqllogictest v54.1.0 (current)
Built [ 149.364s] (current)
Parsing datafusion-sqllogictest v54.1.0 (current)
Parsed [ 0.019s] (current)
Building datafusion-sqllogictest v54.1.0 (baseline)
Built [ 149.282s] (baseline)
Parsing datafusion-sqllogictest v54.1.0 (baseline)
Parsed [ 0.019s] (baseline)
Checking datafusion-sqllogictest v54.1.0 -> v54.1.0 (no change; assume patch)
Checked [ 0.092s] 223 checks: 223 pass, 30 skip
Summary no semver update required
Finished [ 300.960s] datafusion-sqllogictest

@github-actionsgithub-actionsBot added the auto detected api change Auto detected API change label Jul 2, 2026
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.44 / 40.54 ±1.67 / 42.62 ms │ 38.11 / 38.80 ±0.98 / 40.73 ms │ no change │
│ QQuery 2 │ 19.37 / 19.59 ±0.28 / 20.12 ms │ 19.39 / 19.62 ±0.17 / 19.84 ms │ no change │
│ QQuery 3 │ 30.70 / 32.13 ±1.07 / 33.44 ms │ 53.16 / 53.61 ±0.45 / 54.16 ms │ 1.67x slower │
│ QQuery 4 │ 17.59 / 17.72 ±0.09 / 17.86 ms │ 19.56 / 20.02 ±0.59 / 21.17 ms │ 1.13x slower │
│ QQuery 5 │ 38.63 / 41.15 ±1.82 / 43.90 ms │ 60.31 / 60.91 ±0.68 / 62.18 ms │ 1.48x slower │
│ QQuery 6 │ 16.78 / 17.05 ±0.38 / 17.80 ms │ 16.31 / 16.98 ±0.92 / 18.79 ms │ no change │
│ QQuery 7 │ 47.21 / 50.17 ±2.29 / 53.27 ms │ 54.32 / 55.24 ±1.54 / 58.32 ms │ 1.10x slower │
│ QQuery 8 │ 45.20 / 46.10 ±1.04 / 48.15 ms │ 61.04 / 61.61 ±0.34 / 62.03 ms │ 1.34x slower │
│ QQuery 9 │ 53.59 / 54.79 ±0.77 / 55.64 ms │ 72.51 / 73.88 ±1.36 / 75.58 ms │ 1.35x slower │
│ QQuery 10 │ 46.19 / 46.52 ±0.36 / 47.05 ms │ 46.30 / 47.28 ±1.11 / 48.99 ms │ no change │
│ QQuery 11 │ 14.84 / 15.56 ±0.63 / 16.71 ms │ 13.76 / 13.90 ±0.09 / 14.04 ms │ +1.12x faster │
│ QQuery 12 │ 25.23 / 25.85 ±0.47 / 26.60 ms │ 33.11 / 33.74 ±0.81 / 35.31 ms │ 1.31x slower │
│ QQuery 13 │ 32.60 / 33.84 ±1.31 / 36.28 ms │ 45.20 / 47.22 ±1.56 / 49.55 ms │ 1.40x slower │
│ QQuery 14 │ 23.91 / 24.09 ±0.15 / 24.26 ms │ 29.50 / 29.80 ±0.22 / 30.17 ms │ 1.24x slower │
│ QQuery 15 │ 31.06 / 31.59 ±0.64 / 32.82 ms │ 31.46 / 32.39 ±0.88 / 33.47 ms │ no change │
│ QQuery 16 │ 13.91 / 14.07 ±0.11 / 14.25 ms │ 14.03 / 14.30 ±0.22 / 14.66 ms │ no change │
│ QQuery 17 │ 73.84 / 75.09 ±1.38 / 77.70 ms │ 152.04 / 157.12 ±3.02 / 161.14 ms │ 2.09x slower │
│ QQuery 18 │ 58.40 / 61.13 ±2.27 / 65.31 ms │ 78.07 / 79.10 ±1.48 / 82.05 ms │ 1.29x slower │
│ QQuery 19 │ 33.35 / 33.77 ±0.47 / 34.58 ms │ 34.14 / 34.38 ±0.19 / 34.66 ms │ no change │
│ QQuery 20 │ 33.46 / 33.64 ±0.14 / 33.77 ms │ 41.27 / 41.63 ±0.19 / 41.84 ms │ 1.24x slower │
│ QQuery 21 │ 56.66 / 59.43 ±1.66 / 61.70 ms │ 55.38 / 56.64 ±1.01 / 58.18 ms │ no change │
│ QQuery 22 │ 13.86 / 15.13 ±1.34 / 17.68 ms │ 14.54 / 15.81 ±1.96 / 19.70 ms │ no change │
└───────────┴────────────────────────────────┴───────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 788.94ms │
│ Total Time (parquet-post-scan-filter) │ 1003.97ms │
│ Average Time (HEAD) │ 35.86ms │
│ Average Time (parquet-post-scan-filter) │ 45.64ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 12 │
│ Queries with No Change │ 9 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory1.1 GiB
Avg memory503.0 MiB
CPU user22.9s
CPU sys1.9s
Peak spill0 B

tpch — branch

MetricValue
Wall time10.0s
Peak memory986.1 MiB
Avg memory403.2 MiB
CPU user32.8s
CPU sys1.6s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.57 / 6.10 ±0.90 / 7.90 ms │ 5.01 / 5.53 ±0.85 / 7.23 ms │ +1.10x faster │
│ QQuery 2 │ 80.92 / 81.47 ±0.59 / 82.54 ms │ 47.76 / 48.11 ±0.30 / 48.48 ms │ +1.69x faster │
│ QQuery 3 │ 29.72 / 30.02 ±0.20 / 30.25 ms │ 31.84 / 32.29 ±0.23 / 32.50 ms │ 1.08x slower │
│ QQuery 4 │ 497.26 / 504.37 ±5.91 / 512.80 ms │ 406.11 / 410.56 ±3.70 / 415.14 ms │ +1.23x faster │
│ QQuery 5 │ 52.35 / 52.72 ±0.32 / 53.14 ms │ 77.62 / 78.33 ±0.55 / 79.31 ms │ 1.49x slower │
│ QQuery 6 │ 36.87 / 37.25 ±0.33 / 37.72 ms │ 35.73 / 37.27 ±2.19 / 41.45 ms │ no change │
│ QQuery 7 │ 94.78 / 97.00 ±2.32 / 101.45 ms │ 118.15 / 119.26 ±0.83 / 120.74 ms │ 1.23x slower │
│ QQuery 8 │ 37.39 / 37.81 ±0.25 / 38.13 ms │ 13.41 / 13.53 ±0.09 / 13.69 ms │ +2.80x faster │
│ QQuery 9 │ 53.35 / 55.90 ±1.49 / 57.33 ms │ 53.21 / 55.86 ±2.27 / 60.07 ms │ no change │
│ QQuery 10 │ 64.32 / 64.76 ±0.28 / 65.20 ms │ 79.50 / 82.60 ±4.37 / 91.27 ms │ 1.28x slower │
│ QQuery 11 │ 308.31 / 310.32 ±2.38 / 313.95 ms │ 243.28 / 247.73 ±5.05 / 257.19 ms │ +1.25x faster │
│ QQuery 12 │ 29.16 / 29.23 ±0.07 / 29.37 ms │ 24.53 / 24.61 ±0.09 / 24.79 ms │ +1.19x faster │
│ QQuery 13 │ 119.75 / 121.88 ±3.34 / 128.54 ms │ 187.92 / 188.96 ±1.15 / 191.18 ms │ 1.55x slower │
│ QQuery 14 │ 414.20 / 422.05 ±4.79 / 428.37 ms │ 407.95 / 408.74 ±0.74 / 409.89 ms │ no change │
│ QQuery 15 │ 58.85 / 59.45 ±0.47 / 60.08 ms │ 27.85 / 28.03 ±0.12 / 28.19 ms │ +2.12x faster │
│ QQuery 16 │ 7.00 / 7.16 ±0.16 / 7.43 ms │ 6.37 / 6.51 ±0.17 / 6.86 ms │ +1.10x faster │
│ QQuery 17 │ 81.04 / 82.36 ±1.40 / 84.84 ms │ 135.61 / 137.52 ±1.75 / 140.80 ms │ 1.67x slower │
│ QQuery 18 │ 124.15 / 125.36 ±1.42 / 128.11 ms │ 339.06 / 344.84 ±4.82 / 351.29 ms │ 2.75x slower │
│ QQuery 19 │ 41.94 / 42.27 ±0.28 / 42.75 ms │ 55.58 / 56.21 ±0.48 / 56.94 ms │ 1.33x slower │
│ QQuery 20 │ 35.76 / 37.08 ±1.00 / 38.82 ms │ 28.57 / 29.35 ±0.78 / 30.86 ms │ +1.26x faster │
│ QQuery 21 │ 17.87 / 18.01 ±0.11 / 18.17 ms │ 17.23 / 17.56 ±0.26 / 17.90 ms │ no change │
│ QQuery 22 │ 63.01 / 65.08 ±1.89 / 68.35 ms │ 66.90 / 67.87 ±0.85 / 69.35 ms │ no change │
│ QQuery 23 │ 350.14 / 353.17 ±3.29 / 359.07 ms │ 364.76 / 369.05 ±3.54 / 374.07 ms │ no change │
│ QQuery 24 │ 227.90 / 230.79 ±4.59 / 239.92 ms │ 569.92 / 573.49 ±4.55 / 582.34 ms │ 2.48x slower │
│ QQuery 25 │ 112.50 / 113.12 ±0.85 / 114.76 ms │ 155.15 / 156.58 ±1.52 / 159.41 ms │ 1.38x slower │
│ QQuery 26 │ 59.68 / 60.48 ±0.56 / 61.12 ms │ 68.65 / 69.85 ±1.74 / 73.28 ms │ 1.15x slower │
│ QQuery 27 │ 6.32 / 6.49 ±0.18 / 6.85 ms │ 6.34 / 6.81 ±0.63 / 8.03 ms │ no change │
│ QQuery 28 │ 58.67 / 61.51 ±1.50 / 62.82 ms │ 61.28 / 62.16 ±1.16 / 64.42 ms │ no change │
│ QQuery 29 │ 99.42 / 102.22 ±2.71 / 106.47 ms │ 168.71 / 171.21 ±2.56 / 176.02 ms │ 1.67x slower │
│ QQuery 30 │ 32.71 / 33.23 ±0.41 / 33.72 ms │ 32.62 / 33.25 ±0.48 / 34.06 ms │ no change │
│ QQuery 31 │ 112.21 / 113.19 ±0.62 / 114.11 ms │ 148.91 / 151.73 ±2.36 / 155.39 ms │ 1.34x slower │
│ QQuery 32 │ 20.77 / 21.14 ±0.24 / 21.49 ms │ 23.67 / 24.16 ±0.34 / 24.69 ms │ 1.14x slower │
│ QQuery 33 │ 38.38 / 40.84 ±2.73 / 45.35 ms │ 49.15 / 49.96 ±0.62 / 50.73 ms │ 1.22x slower │
│ QQuery 34 │ 10.15 / 10.33 ±0.18 / 10.65 ms │ 10.37 / 10.67 ±0.42 / 11.47 ms │ no change │
│ QQuery 35 │ 73.70 / 74.38 ±0.88 / 76.09 ms │ 82.58 / 83.72 ±0.92 / 85.16 ms │ 1.13x slower │
│ QQuery 36 │ 5.92 / 6.09 ±0.18 / 6.44 ms │ 5.94 / 6.04 ±0.15 / 6.33 ms │ no change │
│ QQuery 37 │ 7.11 / 7.29 ±0.12 / 7.45 ms │ 8.93 / 9.69 ±1.21 / 12.09 ms │ 1.33x slower │
│ QQuery 38 │ 63.25 / 63.83 ±0.52 / 64.77 ms │ 82.51 / 83.21 ±0.58 / 83.97 ms │ 1.30x slower │
│ QQuery 39 │ 87.09 / 89.97 ±2.50 / 93.91 ms │ 88.60 / 91.27 ±3.90 / 98.97 ms │ no change │
│ QQuery 40 │ 23.95 / 24.14 ±0.26 / 24.64 ms │ 23.80 / 24.36 ±0.78 / 25.86 ms │ no change │
│ QQuery 41 │ 11.65 / 11.90 ±0.25 / 12.36 ms │ 13.23 / 13.41 ±0.10 / 13.54 ms │ 1.13x slower │
│ QQuery 42 │ 24.44 / 24.73 ±0.29 / 25.25 ms │ 32.96 / 33.13 ±0.14 / 33.37 ms │ 1.34x slower │
│ QQuery 43 │ 5.10 / 5.19 ±0.13 / 5.43 ms │ 4.72 / 4.85 ±0.20 / 5.25 ms │ +1.07x faster │
│ QQuery 44 │ 9.59 / 9.76 ±0.18 / 10.10 ms │ 9.31 / 9.42 ±0.15 / 9.71 ms │ no change │
│ QQuery 45 │ 38.93 / 40.07 ±1.66 / 43.37 ms │ 30.40 / 30.68 ±0.18 / 30.86 ms │ +1.31x faster │
│ QQuery 46 │ 11.96 / 12.39 ±0.50 / 13.34 ms │ 12.61 / 13.00 ±0.21 / 13.21 ms │ no change │
│ QQuery 47 │ 227.69 / 234.40 ±5.45 / 242.96 ms │ 229.09 / 232.66 ±3.67 / 238.96 ms │ no change │
│ QQuery 48 │ 97.32 / 97.49 ±0.18 / 97.71 ms │ 162.00 / 164.16 ±3.14 / 170.39 ms │ 1.68x slower │
│ QQuery 49 │ 77.01 / 78.76 ±1.78 / 82.09 ms │ 172.01 / 174.02 ±1.55 / 175.88 ms │ 2.21x slower │
│ QQuery 50 │ 59.10 / 60.09 ±0.85 / 61.07 ms │ 138.59 / 139.60 ±1.01 / 141.38 ms │ 2.32x slower │
│ QQuery 51 │ 90.88 / 93.62 ±2.17 / 96.22 ms │ 99.10 / 101.94 ±1.99 / 105.13 ms │ 1.09x slower │
│ QQuery 52 │ 24.74 / 25.96 ±2.15 / 30.25 ms │ 32.83 / 33.12 ±0.27 / 33.55 ms │ 1.28x slower │
│ QQuery 53 │ 30.48 / 31.09 ±0.42 / 31.58 ms │ 36.07 / 37.69 ±2.63 / 42.94 ms │ 1.21x slower │
│ QQuery 54 │ 56.74 / 57.22 ±0.29 / 57.54 ms │ 31.41 / 33.56 ±2.36 / 38.09 ms │ +1.70x faster │
│ QQuery 55 │ 23.79 / 24.29 ±0.61 / 25.49 ms │ 31.32 / 31.78 ±0.34 / 32.29 ms │ 1.31x slower │
│ QQuery 56 │ 39.66 / 40.09 ±0.24 / 40.33 ms │ 46.28 / 46.88 ±0.53 / 47.75 ms │ 1.17x slower │
│ QQuery 57 │ 177.03 / 178.30 ±1.19 / 180.31 ms │ 156.69 / 158.25 ±1.15 / 160.18 ms │ +1.13x faster │
│ QQuery 58 │ 115.61 / 117.67 ±2.92 / 123.42 ms │ 85.02 / 85.42 ±0.33 / 85.86 ms │ +1.38x faster │
│ QQuery 59 │ 118.71 / 119.91 ±0.78 / 121.05 ms │ 79.40 / 81.20 ±2.02 / 84.95 ms │ +1.48x faster │
│ QQuery 60 │ 39.44 / 39.87 ±0.33 / 40.39 ms │ 45.94 / 46.76 ±0.41 / 47.05 ms │ 1.17x slower │
│ QQuery 61 │ 12.59 / 12.69 ±0.12 / 12.93 ms │ 12.07 / 12.16 ±0.11 / 12.37 ms │ no change │
│ QQuery 62 │ 46.23 / 46.85 ±0.76 / 48.35 ms │ 41.59 / 41.95 ±0.21 / 42.18 ms │ +1.12x faster │
│ QQuery 63 │ 30.28 / 30.44 ±0.19 / 30.79 ms │ 35.83 / 36.03 ±0.14 / 36.27 ms │ 1.18x slower │
│ QQuery 64 │ 411.15 / 414.65 ±2.73 / 419.40 ms │ 935.18 / 944.30 ±7.69 / 957.49 ms │ 2.28x slower │
│ QQuery 65 │ 145.57 / 150.66 ±4.47 / 156.12 ms │ 1390.96 / 1420.09 ±25.31 / 1462.24 ms │ 9.43x slower │
│ QQuery 66 │ 79.74 / 80.45 ±0.57 / 81.28 ms │ 69.66 / 70.11 ±0.52 / 70.78 ms │ +1.15x faster │
│ QQuery 67 │ 240.05 / 245.10 ±2.64 / 247.50 ms │ 258.50 / 266.20 ±6.49 / 274.15 ms │ 1.09x slower │
│ QQuery 68 │ 11.96 / 12.17 ±0.19 / 12.52 ms │ 12.32 / 12.53 ±0.21 / 12.92 ms │ no change │
│ QQuery 69 │ 58.59 / 60.14 ±2.07 / 63.95 ms │ 73.18 / 74.41 ±0.77 / 75.58 ms │ 1.24x slower │
│ QQuery 70 │ 105.02 / 106.22 ±0.83 / 106.97 ms │ 116.48 / 120.47 ±4.47 / 129.09 ms │ 1.13x slower │
│ QQuery 71 │ 35.71 / 36.34 ±0.87 / 38.06 ms │ 44.59 / 45.29 ±0.67 / 46.43 ms │ 1.25x slower │
│ QQuery 72 │ 2018.12 / 2209.83 ±114.79 / 2364.50 ms │ 215.48 / 218.57 ±1.83 / 220.80 ms │ +10.11x faster │
│ QQuery 73 │ 9.69 / 9.99 ±0.25 / 10.42 ms │ 9.99 / 10.29 ±0.25 / 10.70 ms │ no change │
│ QQuery 74 │ 173.11 / 176.21 ±2.01 / 179.42 ms │ 153.54 / 155.95 ±1.90 / 159.30 ms │ +1.13x faster │
│ QQuery 75 │ 150.25 / 153.64 ±3.06 / 159.31 ms │ 201.26 / 203.31 ±2.11 / 207.05 ms │ 1.32x slower │
│ QQuery 76 │ 35.39 / 35.94 ±0.40 / 36.56 ms │ 41.54 / 42.30 ±0.61 / 43.26 ms │ 1.18x slower │
│ QQuery 77 │ 61.73 / 63.62 ±1.80 / 65.95 ms │ 70.92 / 71.95 ±0.74 / 72.95 ms │ 1.13x slower │
│ QQuery 78 │ 187.45 / 189.03 ±1.05 / 190.28 ms │ 160.47 / 163.14 ±3.61 / 170.23 ms │ +1.16x faster │
│ QQuery 79 │ 67.36 / 67.86 ±0.46 / 68.53 ms │ 82.77 / 83.43 ±0.62 / 84.59 ms │ 1.23x slower │
│ QQuery 80 │ 99.18 / 102.80 ±3.96 / 107.86 ms │ 97.17 / 100.43 ±2.67 / 105.21 ms │ no change │
│ QQuery 81 │ 25.88 / 27.64 ±2.06 / 31.65 ms │ 26.38 / 26.84 ±0.32 / 27.18 ms │ no change │
│ QQuery 82 │ 16.78 / 17.34 ±0.38 / 17.88 ms │ 19.32 / 19.53 ±0.19 / 19.82 ms │ 1.13x slower │
│ QQuery 83 │ 40.64 / 41.17 ±0.29 / 41.51 ms │ 36.64 / 37.16 ±0.31 / 37.53 ms │ +1.11x faster │
│ QQuery 84 │ 30.78 / 31.13 ±0.19 / 31.36 ms │ 35.42 / 37.06 ±2.78 / 42.59 ms │ 1.19x slower │
│ QQuery 85 │ 107.39 / 110.75 ±3.55 / 117.17 ms │ 168.02 / 169.31 ±0.95 / 170.56 ms │ 1.53x slower │
│ QQuery 86 │ 25.76 / 26.24 ±0.43 / 26.79 ms │ 30.24 / 32.41 ±3.22 / 38.71 ms │ 1.24x slower │
│ QQuery 87 │ 63.05 / 63.87 ±0.71 / 64.78 ms │ 80.27 / 82.42 ±1.51 / 84.73 ms │ 1.29x slower │
│ QQuery 88 │ 63.47 / 64.52 ±0.78 / 65.72 ms │ 65.22 / 65.73 ±0.45 / 66.47 ms │ no change │
│ QQuery 89 │ 36.33 / 37.61 ±0.99 / 38.94 ms │ 46.92 / 48.66 ±2.89 / 54.42 ms │ 1.29x slower │
│ QQuery 90 │ 17.30 / 17.45 ±0.12 / 17.67 ms │ 18.32 / 18.60 ±0.22 / 18.99 ms │ 1.07x slower │
│ QQuery 91 │ 47.28 / 47.60 ±0.19 / 47.87 ms │ 55.90 / 56.40 ±0.51 / 57.24 ms │ 1.19x slower │
│ QQuery 92 │ 29.97 / 30.44 ±0.31 / 30.77 ms │ 36.48 / 37.61 ±0.84 / 38.63 ms │ 1.24x slower │
│ QQuery 93 │ 49.40 / 50.42 ±0.59 / 51.09 ms │ 51.36 / 52.34 ±0.83 / 53.79 ms │ no change │
│ QQuery 94 │ 38.49 / 39.93 ±1.91 / 43.65 ms │ 46.46 / 47.76 ±1.33 / 50.21 ms │ 1.20x slower │
│ QQuery 95 │ 82.90 / 84.60 ±1.25 / 86.70 ms │ 138.77 / 139.30 ±0.53 / 140.31 ms │ 1.65x slower │
│ QQuery 96 │ 24.87 / 24.98 ±0.09 / 25.12 ms │ 26.87 / 27.26 ±0.24 / 27.57 ms │ 1.09x slower │
│ QQuery 97 │ 47.10 / 47.49 ±0.29 / 47.84 ms │ 52.83 / 53.37 ±0.58 / 54.20 ms │ 1.12x slower │
│ QQuery 98 │ 42.26 / 43.41 ±1.04 / 45.05 ms │ 35.70 / 36.41 ±0.93 / 38.19 ms │ +1.19x faster │
│ QQuery 99 │ 70.50 / 71.21 ±1.10 / 73.39 ms │ 59.53 / 59.80 ±0.18 / 60.04 ms │ +1.19x faster │
└───────────┴────────────────────────────────────────┴───────────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 10085.10ms │
│ Total Time (parquet-post-scan-filter) │ 11030.96ms │
│ Average Time (HEAD) │ 101.87ms │
│ Average Time (parquet-post-scan-filter) │ 111.42ms │
│ Queries Faster │ 23 │
│ Queries Slower │ 53 │
│ Queries with No Change │ 23 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time55.0s
Peak memory2.4 GiB
Avg memory1.6 GiB
CPU user225.9s
CPU sys5.9s
Peak spill0 B

tpcds — branch

MetricValue
Wall time60.0s
Peak memory1.9 GiB
Avg memory1.2 GiB
CPU user152.3s
CPU sys5.3s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.25 / 4.10 ±5.54 / 15.19 ms │ 1.25 / 4.15 ±5.64 / 15.43 ms │ no change │
│ QQuery 1 │ 12.56 / 12.99 ±0.22 / 13.17 ms │ 12.72 / 13.29 ±0.30 / 13.55 ms │ no change │
│ QQuery 2 │ 35.83 / 36.21 ±0.37 / 36.70 ms │ 37.17 / 37.47 ±0.24 / 37.85 ms │ no change │
│ QQuery 3 │ 30.62 / 31.66 ±0.76 / 32.81 ms │ 32.22 / 32.52 ±0.29 / 32.98 ms │ no change │
│ QQuery 4 │ 231.50 / 233.42 ±1.28 / 235.36 ms │ 228.14 / 234.73 ±3.48 / 238.41 ms │ no change │
│ QQuery 5 │ 280.21 / 283.92 ±3.87 / 288.81 ms │ 276.83 / 281.49 ±3.01 / 284.68 ms │ no change │
│ QQuery 6 │ 1.30 / 1.44 ±0.22 / 1.88 ms │ 1.28 / 1.44 ±0.25 / 1.93 ms │ no change │
│ QQuery 7 │ 13.78 / 14.08 ±0.19 / 14.29 ms │ 14.95 / 15.03 ±0.08 / 15.15 ms │ 1.07x slower │
│ QQuery 8 │ 331.96 / 340.77 ±7.66 / 354.08 ms │ 332.12 / 334.28 ±1.87 / 337.38 ms │ no change │
│ QQuery 9 │ 468.58 / 476.65 ±4.93 / 483.95 ms │ 471.60 / 482.93 ±16.29 / 515.09 ms │ no change │
│ QQuery 10 │ 72.13 / 74.41 ±3.29 / 80.91 ms │ 72.83 / 75.00 ±2.73 / 80.14 ms │ no change │
│ QQuery 11 │ 83.25 / 83.75 ±0.26 / 83.94 ms │ 84.74 / 85.71 ±0.67 / 86.75 ms │ no change │
│ QQuery 12 │ 273.17 / 279.49 ±5.15 / 287.25 ms │ 266.75 / 273.75 ±5.39 / 280.03 ms │ no change │
│ QQuery 13 │ 373.63 / 383.15 ±9.82 / 402.14 ms │ 408.72 / 417.40 ±5.79 / 425.26 ms │ 1.09x slower │
│ QQuery 14 │ 285.57 / 296.36 ±8.48 / 309.94 ms │ 287.40 / 294.47 ±8.89 / 311.82 ms │ no change │
│ QQuery 15 │ 276.05 / 283.47 ±7.72 / 297.49 ms │ 281.79 / 287.05 ±5.28 / 296.90 ms │ no change │
│ QQuery 16 │ 623.45 / 634.77 ±9.05 / 649.12 ms │ 626.70 / 645.02 ±16.99 / 675.16 ms │ no change │
│ QQuery 17 │ 625.61 / 637.99 ±8.81 / 647.42 ms │ 635.12 / 642.65 ±5.52 / 650.69 ms │ no change │
│ QQuery 18 │ 1281.27 / 1313.59 ±27.63 / 1358.14 ms │ 1287.15 / 1316.99 ±25.06 / 1359.98 ms │ no change │
│ QQuery 19 │ 28.32 / 28.75 ±0.47 / 29.58 ms │ 27.38 / 27.73 ±0.18 / 27.90 ms │ no change │
│ QQuery 20 │ 520.77 / 528.42 ±6.38 / 539.50 ms │ 518.88 / 532.36 ±24.11 / 580.54 ms │ no change │
│ QQuery 21 │ 515.67 / 521.61 ±5.24 / 530.42 ms │ 515.26 / 527.74 ±8.06 / 539.71 ms │ no change │
│ QQuery 22 │ 999.94 / 1026.13 ±19.92 / 1061.72 ms │ 988.46 / 999.58 ±16.31 / 1031.78 ms │ no change │
│ QQuery 23 │ 3131.53 / 3166.24 ±33.07 / 3220.15 ms │ 653.09 / 668.23 ±12.38 / 688.86 ms │ +4.74x faster │
│ QQuery 24 │ 42.17 / 43.29 ±1.84 / 46.95 ms │ 38.56 / 44.92 ±7.86 / 59.05 ms │ no change │
│ QQuery 25 │ 114.24 / 119.29 ±6.00 / 129.43 ms │ 109.19 / 112.70 ±4.08 / 120.30 ms │ +1.06x faster │
│ QQuery 26 │ 42.67 / 43.10 ±0.42 / 43.62 ms │ 39.23 / 39.65 ±0.24 / 39.88 ms │ +1.09x faster │
│ QQuery 27 │ 672.84 / 676.70 ±3.00 / 679.81 ms │ 644.16 / 650.92 ±4.69 / 658.13 ms │ no change │
│ QQuery 28 │ 3061.79 / 3083.51 ±16.50 / 3103.49 ms │ 3066.82 / 3087.28 ±15.68 / 3110.17 ms │ no change │
│ QQuery 29 │ 40.82 / 46.87 ±7.13 / 56.91 ms │ 42.29 / 53.06 ±20.85 / 94.75 ms │ 1.13x slower │
│ QQuery 30 │ 307.18 / 310.78 ±2.86 / 314.45 ms │ 310.54 / 321.14 ±7.07 / 330.69 ms │ no change │
│ QQuery 31 │ 289.06 / 297.21 ±6.30 / 305.87 ms │ 321.42 / 330.66 ±9.54 / 347.49 ms │ 1.11x slower │
│ QQuery 32 │ 941.45 / 987.17 ±33.22 / 1029.46 ms │ 948.58 / 992.72 ±29.44 / 1040.16 ms │ no change │
│ QQuery 33 │ 1517.47 / 1519.98 ±2.59 / 1524.95 ms │ 1497.28 / 1531.04 ±25.95 / 1563.57 ms │ no change │
│ QQuery 34 │ 1519.26 / 1550.46 ±29.93 / 1606.66 ms │ 1523.26 / 1543.49 ±23.03 / 1587.98 ms │ no change │
│ QQuery 35 │ 292.85 / 329.70 ±30.60 / 374.39 ms │ 287.23 / 311.76 ±29.65 / 368.70 ms │ +1.06x faster │
│ QQuery 36 │ 67.03 / 76.36 ±5.72 / 83.11 ms │ 67.81 / 74.08 ±4.55 / 78.39 ms │ no change │
│ QQuery 37 │ 36.69 / 41.13 ±3.63 / 44.85 ms │ 35.53 / 36.66 ±0.83 / 37.81 ms │ +1.12x faster │
│ QQuery 38 │ 41.09 / 43.22 ±1.30 / 45.05 ms │ 40.75 / 47.11 ±5.00 / 55.54 ms │ 1.09x slower │
│ QQuery 39 │ 144.79 / 159.64 ±11.01 / 176.12 ms │ 143.90 / 155.93 ±8.30 / 167.24 ms │ no change │
│ QQuery 40 │ 14.39 / 14.75 ±0.58 / 15.91 ms │ 14.65 / 15.11 ±0.61 / 16.28 ms │ no change │
│ QQuery 41 │ 14.01 / 14.22 ±0.18 / 14.46 ms │ 14.03 / 17.11 ±3.72 / 21.97 ms │ 1.20x slower │
│ QQuery 42 │ 13.60 / 13.78 ±0.12 / 13.98 ms │ 13.77 / 14.06 ±0.18 / 14.33 ms │ no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 20064.52ms │
│ Total Time (parquet-post-scan-filter) │ 17610.43ms │
│ Average Time (HEAD) │ 466.62ms │
│ Average Time (parquet-post-scan-filter) │ 409.54ms │
│ Queries Faster │ 5 │
│ Queries Slower │ 6 │
│ Queries with No Change │ 32 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time105.0s
Peak memory11.3 GiB
Avg memory4.4 GiB
CPU user1028.7s
CPU sys71.4s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time90.0s
Peak memory13.0 GiB
Avg memory4.7 GiB
CPU user890.2s
CPU sys61.1s
Peak spill0 B

File an issue against this benchmark runner

zhuqi-lucas added a commit to zhuqi-lucas/arrow-datafusion that referenced this pull request Jul 19, 2026
…filter
The pushdown=false path in the parquet opener split the whole predicate
into 'post_scan_conjuncts' — a per-batch FilterExec-equivalent — which
included any dynamic filter conjuncts (HashJoin bounds, TopK threshold,
aggregate dynamic filter).
For join-heavy TPC-H / TPC-DS this dominates cost: HashJoin's Partitioned-
mode dynamic filter is a 'CASE hash(col) % N WHEN pid THEN bounds ELSE
lit(false) END' — per-row hash + modulo + CASE branch — and it prunes
almost nothing on high-match-rate joins where the downstream hash lookup
would eliminate the same rows anyway. Local TPC-H SF1 Q9 profile showed
1.1% self-time in 'expressions::case::PartialResultIndex::merge_n' and
1.3% in 'arrow_select::filter::filter_native' on the PR, both at 0% on
main — driving Q9 from 40ms → 80ms (2.09x on CI, 1.79x locally).
This commit filters DynamicFilterPhysicalExpr-containing conjuncts out
of 'post_scan_conjuncts'. Effects:
- RowGroupPruner (added by apache#22450) still sees the full predicate via
prepared.predicate, so RG-level dynamic pruning continues to fire on
bounds/threshold updates.
- pushdown_filters=true path unchanged — dynamic filters still go
through the arrow-rs RowFilter.
- Downstream operator does the exact equivalent: HashJoin's hash lookup
filters rows the bounds would have filtered; TopK's sort heap filters
rows the threshold would have filtered. No wrong results.
Local TPC-H SF1 (release-nonlto, 3 iters):
- baseline (HEAD~2, pre-apache#22384) avg: 27.65 ms
- PR + this fix avg: 26.24 ms (net 5% ahead of baseline)
- Q9 individually: 34.54 → 34.33 ms (matches baseline, was 80.74 before)
Also regenerates push_down_filter_parquet.slt for the membership-off
default (from the earlier 'split membership from bounds' commit).
zhuqi-lucas added a commit to zhuqi-lucas/arrow-datafusion that referenced this pull request Jul 20, 2026
…r (root fix)
Reverts the tactical fix from the previous commit and cures the same
regression at its source. The prior commit skipped
DynamicFilterPhysicalExpr-containing conjuncts from PostScanFilter for
pushdown_filters=false; that recovered TPC-H but killed TPC-DS Q72
(4.91x faster -> no change) by removing row-level pruning for
CollectLeft's cheap bounds too.
Root cause: on PartitionMode::Partitioned, SharedBuildAccumulator emitted
a per-partition 'CASE hash(col) % N WHEN pid THEN bounds ELSE
lit(false) END' as the dynamic filter. On the probe scan this evaluates
hash + modulo + CASE branch per row -- the profile hotspot
(expressions::case::PartialResultIndex::merge_n at 1.11% self-time on
TPC-H Q9 vs 0% on main).
The routing existed to keep the per-partition bounds exact -- a probe
row X with hash(X) % N == P would only be checked against partition P's
bounds. That's exact but redundant with the downstream hash lookup
(which is also per-partition and exact). The lookup filters exactly
what CASE was filtering, at a lower per-row cost, so the CASE routing
buys nothing on the probe scan.
This commit, when the membership gate is off (the production default
after the split-membership commit), emits the union of per-partition
bounds instead:
col >= min(min_0, ..., min_{N-1}) AND col <= max(max_0, ..., max_{N-1})
Same shape as PartitionMode::CollectLeft. A probe row can pass the
union and still miss its build partition, but the exact hash lookup
downstream drops it -- no wrong results. Empty partitions contribute
nothing to the union; if every partition is empty the filter is
lit(false); a canceled partition falls back to lit(true) (permissive,
we lack the info to safely narrow). Membership-opt-in retains the
historical CASE hash-routed form so InListExpr / HashTableLookupExpr
can be applied to the correct partition's build values.
With the expensive per-row form gone, the pushdown_filters=false
PostScanFilter is cheap again, so opener/mod.rs no longer needs to
filter dynamic conjuncts out of post_scan_conjuncts -- reverted.
Local TPC-H SF1 (release-nonlto, 5 iters, warm):
- baseline (HEAD~2, pre-apache#22384) Q9: 40 ms (avg 46)
- PR before any fix Q9: 80 ms (avg 82) -- 2.09x regression
- PR + this fix Q9: 35 ms (avg 52) -- back at baseline, no CASE hotspot
- Full TPC-H avg: baseline 27.65, this fix 26.99 ms (net -2%)
Snapshot in filter_pushdown.rs regenerated to reflect the union form
(the old snapshot's 'CASE hash_repartition % 12 WHEN 5 ...' is gone;
new form is 'a@0 >= aa AND a@0 <= ab AND b@1 >= ba AND b@1 <= bb').
zhuqi-lucas added a commit to zhuqi-lucas/arrow-datafusion that referenced this pull request Jul 20, 2026
- filter_pushdown.rs: enable enable_hash_join_dynamic_membership_filter in
test_hashjoin_hash_table_pushdown_{collect_left,partitioned} (they
specifically exercise HashTableLookupExpr; membership default is now false).
- filter_pushdown.rs: refresh test_hashjoin_dynamic_filter_pushdown_collect_left
and the force_hash_collisions branch snapshots (bounds only, no IN (SET)
since membership is off by default).
- clickbench.slt, preserve_file_partitioning.slt, projection_pushdown.slt,
repartition_subset_satisfaction.slt: regenerated for post-apache#22384 plan
display + membership-off default.
- configs.md: prettier reformat (trailing whitespace).
zhuqi-lucas added a commit to zhuqi-lucas/arrow-datafusion that referenced this pull request Jul 20, 2026
Tactical fix on top of apache#22384 to address the benchmark regressions that
paper reported (TPCH SF1: +27% total, Q17 2.09x slower, Q3/5/7/8/9/12/
13/14/18/20 all 1.24-1.67x slower). Approach was suggested by @adriangb
in the apache#23420 discussion: "splitting out the min/max range dynamic
filters that HashJoinExec pushes down from the hash table ones and then
we could turn off the hash table ones by default".
Why: HashJoin's build-side dynamic filter today publishes a combined
`bounds AND membership` expression to the probe scan.
- Bounds (`col >= min AND col <= max`) is 2 comparisons per row (~2ns)
and drives the RG-level statistics pruning that is by far the largest
contribution.
- Membership (`InListExpr` over the build keys, or a hash-table lookup
for large builds) is a per-row hash-set / hash-table probe (~50-100ns).
apache#22384's contract change (`try_pushdown_filters` always accepts pushable
filters, PostScanFilter picks up whatever the RowFilter cannot place)
means the combined expression now runs on every scanned batch even with
`pushdown_filters = false`, where previously it was silently propagated
through source.predicate but never row-evaluated. On multi-join queries
with high match rate, the membership check pays the hash cost twice
(once in the scan, once inside HashJoin) with no selectivity win —
that's exactly the "not earning their keep" case @adriangb described.
What: a new config knob
`datafusion.optimizer.enable_hash_join_dynamic_membership_filter` (default
`false`) gates the membership creation. When off, `SharedBuildAccumulator`
skips `create_membership_predicate` in both the CollectLeft and
Partitioned finalize paths and publishes only the bounds portion. RG
pruning is unaffected. Highly-selective joins with big build sides that
used to see 2-3x wins from membership pruning can restore the historical
behavior by flipping the knob to `true`.
Tests: two new unit tests in `shared_bounds.rs`:
- `collect_left_with_gate_off_publishes_bounds_only`
drives an accumulator with the gate off, asserts the published
expression contains no `InListExpr` and its top op is `AND` (bounds).
- `collect_left_with_gate_on_publishes_bounds_and_membership`
the inverse, guards against accidentally regressing the wiring.
All 398 pre-existing `joins::hash_join` tests still pass. All 1559
`datafusion-physical-plan` lib tests pass. Full `information_schema.slt`
passes with the new option listed.
Draft while we run benchmarks to quantify how much of the apache#22384
regression this closes. Companion to apache#22384 (adriangb's foundation),
follow-up to apache#23532 (DynamicFilter cache — Layer 1 of the regression fix).
zhuqi-lucas added a commit to zhuqi-lucas/arrow-datafusion that referenced this pull request Jul 20, 2026
…filter
The pushdown=false path in the parquet opener split the whole predicate
into 'post_scan_conjuncts' — a per-batch FilterExec-equivalent — which
included any dynamic filter conjuncts (HashJoin bounds, TopK threshold,
aggregate dynamic filter).
For join-heavy TPC-H / TPC-DS this dominates cost: HashJoin's Partitioned-
mode dynamic filter is a 'CASE hash(col) % N WHEN pid THEN bounds ELSE
lit(false) END' — per-row hash + modulo + CASE branch — and it prunes
almost nothing on high-match-rate joins where the downstream hash lookup
would eliminate the same rows anyway. Local TPC-H SF1 Q9 profile showed
1.1% self-time in 'expressions::case::PartialResultIndex::merge_n' and
1.3% in 'arrow_select::filter::filter_native' on the PR, both at 0% on
main — driving Q9 from 40ms → 80ms (2.09x on CI, 1.79x locally).
This commit filters DynamicFilterPhysicalExpr-containing conjuncts out
of 'post_scan_conjuncts'. Effects:
- RowGroupPruner (added by apache#22450) still sees the full predicate via
prepared.predicate, so RG-level dynamic pruning continues to fire on
bounds/threshold updates.
- pushdown_filters=true path unchanged — dynamic filters still go
through the arrow-rs RowFilter.
- Downstream operator does the exact equivalent: HashJoin's hash lookup
filters rows the bounds would have filtered; TopK's sort heap filters
rows the threshold would have filtered. No wrong results.
Local TPC-H SF1 (release-nonlto, 3 iters):
- baseline (HEAD~2, pre-apache#22384) avg: 27.65 ms
- PR + this fix avg: 26.24 ms (net 5% ahead of baseline)
- Q9 individually: 34.54 → 34.33 ms (matches baseline, was 80.74 before)
Also regenerates push_down_filter_parquet.slt for the membership-off
default (from the earlier 'split membership from bounds' commit).
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 37.99 ms │ 38.00 ms │ no change │
│ QQuery 2 │ 19.16 ms │ 19.14 ms │ no change │
│ QQuery 3 │ 30.69 ms │ 47.90 ms │ 1.56x slower │
│ QQuery 4 │ 17.30 ms │ 18.93 ms │ 1.09x slower │
│ QQuery 5 │ 37.92 ms │ 55.96 ms │ 1.48x slower │
│ QQuery 6 │ 16.24 ms │ 15.71 ms │ no change │
│ QQuery 7 │ 43.13 ms │ 49.50 ms │ 1.15x slower │
│ QQuery 8 │ 41.79 ms │ 55.36 ms │ 1.32x slower │
│ QQuery 9 │ 49.28 ms │ 64.12 ms │ 1.30x slower │
│ QQuery 10 │ 42.11 ms │ 45.72 ms │ 1.09x slower │
│ QQuery 11 │ 13.29 ms │ 13.42 ms │ no change │
│ QQuery 12 │ 23.86 ms │ 32.67 ms │ 1.37x slower │
│ QQuery 13 │ 32.06 ms │ 43.30 ms │ 1.35x slower │
│ QQuery 14 │ 23.07 ms │ 28.70 ms │ 1.24x slower │
│ QQuery 15 │ 30.23 ms │ 30.48 ms │ no change │
│ QQuery 16 │ 13.64 ms │ 13.81 ms │ no change │
│ QQuery 17 │ 69.76 ms │ 72.00 ms │ no change │
│ QQuery 18 │ 59.45 ms │ 72.82 ms │ 1.23x slower │
│ QQuery 19 │ 32.44 ms │ 33.11 ms │ no change │
│ QQuery 20 │ 31.41 ms │ 35.73 ms │ 1.14x slower │
│ QQuery 21 │ 53.76 ms │ 50.56 ms │ +1.06x faster │
│ QQuery 22 │ 13.78 ms │ 14.27 ms │ no change │
└───────────┴──────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 732.35ms │
│ Total Time (parquet-post-scan-filter) │ 851.20ms │
│ Average Time (HEAD) │ 33.29ms │
│ Average Time (parquet-post-scan-filter) │ 38.69ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 12 │
│ Queries with No Change │ 9 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 37.99 / 38.82 ±1.26 / 41.33 ms │ 38.00 / 38.59 ±0.93 / 40.44 ms │ no change │
│ QQuery 2 │ 19.16 / 19.45 ±0.24 / 19.76 ms │ 19.14 / 19.79 ±0.42 / 20.23 ms │ no change │
│ QQuery 3 │ 30.69 / 31.91 ±1.34 / 33.59 ms │ 47.90 / 49.29 ±2.30 / 53.87 ms │ 1.54x slower │
│ QQuery 4 │ 17.30 / 17.99 ±1.02 / 20.02 ms │ 18.93 / 19.10 ±0.29 / 19.68 ms │ 1.06x slower │
│ QQuery 5 │ 37.92 / 39.41 ±0.77 / 40.11 ms │ 55.96 / 57.85 ±3.12 / 64.07 ms │ 1.47x slower │
│ QQuery 6 │ 16.24 / 16.91 ±0.52 / 17.62 ms │ 15.71 / 17.01 ±1.33 / 19.15 ms │ no change │
│ QQuery 7 │ 43.13 / 45.60 ±1.61 / 46.99 ms │ 49.50 / 50.75 ±1.18 / 52.62 ms │ 1.11x slower │
│ QQuery 8 │ 41.79 / 43.30 ±1.45 / 45.13 ms │ 55.36 / 55.55 ±0.20 / 55.91 ms │ 1.28x slower │
│ QQuery 9 │ 49.28 / 50.01 ±0.83 / 51.58 ms │ 64.12 / 65.14 ±0.92 / 66.51 ms │ 1.30x slower │
│ QQuery 10 │ 42.11 / 43.17 ±0.94 / 44.37 ms │ 45.72 / 46.82 ±0.91 / 48.03 ms │ 1.08x slower │
│ QQuery 11 │ 13.29 / 13.61 ±0.20 / 13.91 ms │ 13.42 / 13.96 ±0.72 / 15.38 ms │ no change │
│ QQuery 12 │ 23.86 / 24.19 ±0.20 / 24.40 ms │ 32.67 / 33.28 ±0.76 / 34.77 ms │ 1.38x slower │
│ QQuery 13 │ 32.06 / 34.61 ±2.07 / 38.09 ms │ 43.30 / 44.36 ±1.11 / 46.40 ms │ 1.28x slower │
│ QQuery 14 │ 23.07 / 23.36 ±0.17 / 23.61 ms │ 28.70 / 29.45 ±1.20 / 31.84 ms │ 1.26x slower │
│ QQuery 15 │ 30.23 / 31.32 ±1.01 / 32.66 ms │ 30.48 / 30.67 ±0.20 / 30.94 ms │ no change │
│ QQuery 16 │ 13.64 / 14.11 ±0.26 / 14.37 ms │ 13.81 / 14.06 ±0.16 / 14.30 ms │ no change │
│ QQuery 17 │ 69.76 / 71.15 ±0.94 / 72.28 ms │ 72.00 / 73.28 ±1.56 / 75.78 ms │ no change │
│ QQuery 18 │ 59.45 / 61.23 ±1.55 / 63.32 ms │ 72.82 / 75.56 ±1.96 / 77.41 ms │ 1.23x slower │
│ QQuery 19 │ 32.44 / 33.12 ±0.73 / 34.46 ms │ 33.11 / 33.44 ±0.17 / 33.62 ms │ no change │
│ QQuery 20 │ 31.41 / 31.64 ±0.24 / 32.06 ms │ 35.73 / 37.28 ±2.71 / 42.70 ms │ 1.18x slower │
│ QQuery 21 │ 53.76 / 55.59 ±1.15 / 57.38 ms │ 50.56 / 51.86 ±1.43 / 54.44 ms │ +1.07x faster │
│ QQuery 22 │ 13.78 / 13.89 ±0.08 / 14.01 ms │ 14.27 / 14.61 ±0.19 / 14.80 ms │ 1.05x slower │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 754.39ms │
│ Total Time (parquet-post-scan-filter) │ 871.72ms │
│ Average Time (HEAD) │ 34.29ms │
│ Average Time (parquet-post-scan-filter) │ 39.62ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 13 │
│ Queries with No Change │ 8 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory1.2 GiB
Avg memory506.5 MiB
CPU user21.4s
CPU sys1.7s
Peak spill0 B

tpch — branch

MetricValue
Wall time5.0s
Peak memory998.0 MiB
Avg memory599.2 MiB
CPU user23.4s
CPU sys1.3s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5240177619-1517-sqxxt 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitionedenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.43 ms │ 5.11 ms │ +1.06x faster │
│ QQuery 2 │ 80.05 ms │ 46.00 ms │ +1.74x faster │
│ QQuery 3 │ 28.99 ms │ 30.23 ms │ no change │
│ QQuery 4 │ 485.47 ms │ 394.85 ms │ +1.23x faster │
│ QQuery 5 │ 51.62 ms │ 72.77 ms │ 1.41x slower │
│ QQuery 6 │ 36.20 ms │ 32.79 ms │ +1.10x faster │
│ QQuery 7 │ 92.75 ms │ 109.08 ms │ 1.18x slower │
│ QQuery 8 │ 37.24 ms │ 15.33 ms │ +2.43x faster │
│ QQuery 9 │ 51.40 ms │ 53.82 ms │ no change │
│ QQuery 10 │ 62.28 ms │ 72.02 ms │ 1.16x slower │
│ QQuery 11 │ 309.76 ms │ 237.94 ms │ +1.30x faster │
│ QQuery 12 │ 28.59 ms │ 23.50 ms │ +1.22x faster │
│ QQuery 13 │ 118.10 ms │ 165.66 ms │ 1.40x slower │
│ QQuery 14 │ 415.68 ms │ 404.35 ms │ no change │
│ QQuery 15 │ 56.87 ms │ 25.37 ms │ +2.24x faster │
│ QQuery 16 │ 6.61 ms │ 6.09 ms │ +1.08x faster │
│ QQuery 17 │ 78.88 ms │ 128.11 ms │ 1.62x slower │
│ QQuery 18 │ 121.73 ms │ 187.91 ms │ 1.54x slower │
│ QQuery 19 │ 41.40 ms │ 50.78 ms │ 1.23x slower │
│ QQuery 20 │ 35.54 ms │ 27.25 ms │ +1.30x faster │
│ QQuery 21 │ 17.11 ms │ 15.80 ms │ +1.08x faster │
│ QQuery 22 │ 61.63 ms │ 65.16 ms │ 1.06x slower │
│ QQuery 23 │ 340.26 ms │ 346.46 ms │ no change │
│ QQuery 24 │ 223.18 ms │ 488.49 ms │ 2.19x slower │
│ QQuery 25 │ 108.92 ms │ 147.74 ms │ 1.36x slower │
│ QQuery 26 │ 57.14 ms │ 64.14 ms │ 1.12x slower │
│ QQuery 27 │ 6.29 ms │ 6.09 ms │ no change │
│ QQuery 28 │ 55.82 ms │ 57.57 ms │ no change │
│ QQuery 29 │ 96.94 ms │ 159.31 ms │ 1.64x slower │
│ QQuery 30 │ 32.73 ms │ 32.46 ms │ no change │
│ QQuery 31 │ 110.99 ms │ 134.86 ms │ 1.22x slower │
│ QQuery 32 │ 20.50 ms │ 22.33 ms │ 1.09x slower │
│ QQuery 33 │ 38.09 ms │ 46.20 ms │ 1.21x slower │
│ QQuery 34 │ 9.89 ms │ 10.09 ms │ no change │
│ QQuery 35 │ 73.11 ms │ 79.58 ms │ 1.09x slower │
│ QQuery 36 │ 5.85 ms │ 5.51 ms │ +1.06x faster │
│ QQuery 37 │ 6.94 ms │ 8.44 ms │ 1.22x slower │
│ QQuery 38 │ 61.66 ms │ 77.48 ms │ 1.26x slower │
│ QQuery 39 │ 89.75 ms │ 87.27 ms │ no change │
│ QQuery 40 │ 23.24 ms │ 22.26 ms │ no change │
│ QQuery 41 │ 11.41 ms │ 12.80 ms │ 1.12x slower │
│ QQuery 42 │ 23.63 ms │ 30.94 ms │ 1.31x slower │
│ QQuery 43 │ 4.92 ms │ 4.74 ms │ no change │
│ QQuery 44 │ 8.88 ms │ 9.31 ms │ no change │
│ QQuery 45 │ 37.51 ms │ 27.25 ms │ +1.38x faster │
│ QQuery 46 │ 11.77 ms │ 12.79 ms │ 1.09x slower │
│ QQuery 47 │ 225.62 ms │ 217.66 ms │ no change │
│ QQuery 48 │ 96.19 ms │ 137.76 ms │ 1.43x slower │
│ QQuery 49 │ 76.19 ms │ 135.57 ms │ 1.78x slower │
│ QQuery 50 │ 58.92 ms │ 126.00 ms │ 2.14x slower │
│ QQuery 51 │ 91.23 ms │ 97.69 ms │ 1.07x slower │
│ QQuery 52 │ 23.90 ms │ 31.22 ms │ 1.31x slower │
│ QQuery 53 │ 29.68 ms │ 34.31 ms │ 1.16x slower │
│ QQuery 54 │ 54.77 ms │ 29.49 ms │ +1.86x faster │
│ QQuery 55 │ 23.35 ms │ 29.54 ms │ 1.27x slower │
│ QQuery 56 │ 38.65 ms │ 44.23 ms │ 1.14x slower │
│ QQuery 57 │ 175.96 ms │ 153.71 ms │ +1.14x faster │
│ QQuery 58 │ 112.40 ms │ 80.41 ms │ +1.40x faster │
│ QQuery 59 │ 117.11 ms │ 75.34 ms │ +1.55x faster │
│ QQuery 60 │ 39.13 ms │ 44.44 ms │ 1.14x slower │
│ QQuery 61 │ 12.03 ms │ 11.52 ms │ no change │
│ QQuery 62 │ 46.62 ms │ 38.41 ms │ +1.21x faster │
│ QQuery 63 │ 29.44 ms │ 34.18 ms │ 1.16x slower │
│ QQuery 64 │ 407.87 ms │ 833.38 ms │ 2.04x slower │
│ QQuery 65 │ 120.74 ms │ 155.86 ms │ 1.29x slower │
│ QQuery 66 │ 79.98 ms │ 67.27 ms │ +1.19x faster │
│ QQuery 67 │ 246.74 ms │ 260.78 ms │ 1.06x slower │
│ QQuery 68 │ 12.07 ms │ 12.62 ms │ no change │
│ QQuery 69 │ 57.11 ms │ 68.22 ms │ 1.19x slower │
│ QQuery 70 │ 107.26 ms │ 112.37 ms │ no change │
│ QQuery 71 │ 34.92 ms │ 41.95 ms │ 1.20x slower │
│ QQuery 72 │ 1967.65 ms │ 185.55 ms │ +10.60x faster │
│ QQuery 73 │ 9.91 ms │ 10.16 ms │ no change │
│ QQuery 74 │ 173.55 ms │ 149.52 ms │ +1.16x faster │
│ QQuery 75 │ 149.42 ms │ 194.72 ms │ 1.30x slower │
│ QQuery 76 │ 35.13 ms │ 40.38 ms │ 1.15x slower │
│ QQuery 77 │ 61.05 ms │ 67.80 ms │ 1.11x slower │
│ QQuery 78 │ 197.53 ms │ 167.45 ms │ +1.18x faster │
│ QQuery 79 │ 67.06 ms │ 78.83 ms │ 1.18x slower │
│ QQuery 80 │ 98.41 ms │ 91.30 ms │ +1.08x faster │
│ QQuery 81 │ 25.82 ms │ 25.85 ms │ no change │
│ QQuery 82 │ 16.34 ms │ 17.54 ms │ 1.07x slower │
│ QQuery 83 │ 40.06 ms │ 35.29 ms │ +1.13x faster │
│ QQuery 84 │ 30.11 ms │ 31.58 ms │ no change │
│ QQuery 85 │ 106.18 ms │ 153.69 ms │ 1.45x slower │
│ QQuery 86 │ 25.25 ms │ 28.50 ms │ 1.13x slower │
│ QQuery 87 │ 61.45 ms │ 77.81 ms │ 1.27x slower │
│ QQuery 88 │ 63.16 ms │ 62.55 ms │ no change │
│ QQuery 89 │ 35.53 ms │ 44.48 ms │ 1.25x slower │
│ QQuery 90 │ 16.93 ms │ 17.45 ms │ no change │
│ QQuery 91 │ 45.74 ms │ 49.94 ms │ 1.09x slower │
│ QQuery 92 │ 29.89 ms │ 34.01 ms │ 1.14x slower │
│ QQuery 93 │ 49.39 ms │ 49.79 ms │ no change │
│ QQuery 94 │ 37.90 ms │ 44.19 ms │ 1.17x slower │
│ QQuery 95 │ 79.47 ms │ 114.04 ms │ 1.43x slower │
│ QQuery 96 │ 24.04 ms │ 26.01 ms │ 1.08x slower │
│ QQuery 97 │ 46.51 ms │ 50.95 ms │ 1.10x slower │
│ QQuery 98 │ 42.62 ms │ 34.76 ms │ +1.23x faster │
│ QQuery 99 │ 70.62 ms │ 54.03 ms │ +1.31x faster │
└───────────┴────────────┴──────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9607.35ms │
│ Total Time (parquet-post-scan-filter) │ 8876.17ms │
│ Average Time (HEAD) │ 97.04ms │
│ Average Time (parquet-post-scan-filter) │ 89.66ms │
│ Queries Faster │ 26 │
│ Queries Slower │ 51 │
│ Queries with No Change │ 22 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.43 / 5.98 ±0.96 / 7.90 ms │ 5.11 / 5.59 ±0.90 / 7.38 ms │ +1.07x faster │
│ QQuery 2 │ 80.05 / 80.53 ±0.35 / 81.13 ms │ 46.00 / 46.41 ±0.47 / 47.31 ms │ +1.74x faster │
│ QQuery 3 │ 28.99 / 29.35 ±0.30 / 29.70 ms │ 30.23 / 30.61 ±0.26 / 30.97 ms │ no change │
│ QQuery 4 │ 485.47 / 496.44 ±5.70 / 500.67 ms │ 394.85 / 400.39 ±2.86 / 402.54 ms │ +1.24x faster │
│ QQuery 5 │ 51.62 / 52.07 ±0.49 / 52.78 ms │ 72.77 / 73.59 ±0.97 / 75.35 ms │ 1.41x slower │
│ QQuery 6 │ 36.20 / 36.59 ±0.33 / 37.09 ms │ 32.79 / 33.36 ±0.39 / 33.84 ms │ +1.10x faster │
│ QQuery 7 │ 92.75 / 93.65 ±0.51 / 94.24 ms │ 109.08 / 110.25 ±1.05 / 112.04 ms │ 1.18x slower │
│ QQuery 8 │ 37.24 / 38.84 ±2.47 / 43.73 ms │ 15.33 / 15.45 ±0.08 / 15.56 ms │ +2.51x faster │
│ QQuery 9 │ 51.40 / 52.77 ±1.02 / 53.84 ms │ 53.82 / 55.09 ±1.58 / 58.01 ms │ no change │
│ QQuery 10 │ 62.28 / 62.53 ±0.22 / 62.87 ms │ 72.02 / 74.28 ±3.09 / 80.30 ms │ 1.19x slower │
│ QQuery 11 │ 309.76 / 311.90 ±1.64 / 314.58 ms │ 237.94 / 240.98 ±3.45 / 247.52 ms │ +1.29x faster │
│ QQuery 12 │ 28.59 / 29.07 ±0.37 / 29.54 ms │ 23.50 / 23.94 ±0.25 / 24.25 ms │ +1.21x faster │
│ QQuery 13 │ 118.10 / 119.52 ±1.31 / 121.21 ms │ 165.66 / 168.11 ±1.97 / 171.63 ms │ 1.41x slower │
│ QQuery 14 │ 415.68 / 417.69 ±1.21 / 419.45 ms │ 404.35 / 407.97 ±4.52 / 416.66 ms │ no change │
│ QQuery 15 │ 56.87 / 57.56 ±0.38 / 58.00 ms │ 25.37 / 25.86 ±0.44 / 26.67 ms │ +2.23x faster │
│ QQuery 16 │ 6.61 / 6.75 ±0.18 / 7.10 ms │ 6.09 / 6.22 ±0.20 / 6.63 ms │ +1.09x faster │
│ QQuery 17 │ 78.88 / 79.99 ±0.90 / 81.41 ms │ 128.11 / 128.99 ±0.56 / 129.85 ms │ 1.61x slower │
│ QQuery 18 │ 121.73 / 122.81 ±0.75 / 123.56 ms │ 187.91 / 189.94 ±1.69 / 191.71 ms │ 1.55x slower │
│ QQuery 19 │ 41.40 / 42.02 ±0.61 / 43.15 ms │ 50.78 / 51.53 ±0.49 / 52.16 ms │ 1.23x slower │
│ QQuery 20 │ 35.54 / 36.11 ±0.48 / 36.75 ms │ 27.25 / 27.73 ±0.32 / 28.06 ms │ +1.30x faster │
│ QQuery 21 │ 17.11 / 17.38 ±0.27 / 17.71 ms │ 15.80 / 16.04 ±0.20 / 16.36 ms │ +1.08x faster │
│ QQuery 22 │ 61.63 / 62.97 ±0.90 / 64.39 ms │ 65.16 / 66.15 ±0.67 / 67.23 ms │ 1.05x slower │
│ QQuery 23 │ 340.26 / 344.48 ±2.14 / 346.04 ms │ 346.46 / 351.33 ±4.40 / 358.84 ms │ no change │
│ QQuery 24 │ 223.18 / 224.97 ±1.48 / 226.91 ms │ 488.49 / 491.00 ±1.76 / 493.03 ms │ 2.18x slower │
│ QQuery 25 │ 108.92 / 110.41 ±1.44 / 112.60 ms │ 147.74 / 148.57 ±0.66 / 149.68 ms │ 1.35x slower │
│ QQuery 26 │ 57.14 / 58.70 ±1.84 / 62.30 ms │ 64.14 / 65.69 ±1.32 / 68.13 ms │ 1.12x slower │
│ QQuery 27 │ 6.29 / 6.40 ±0.19 / 6.78 ms │ 6.09 / 6.19 ±0.17 / 6.52 ms │ no change │
│ QQuery 28 │ 55.82 / 60.60 ±3.05 / 65.47 ms │ 57.57 / 60.90 ±1.75 / 62.54 ms │ no change │
│ QQuery 29 │ 96.94 / 98.13 ±1.06 / 99.76 ms │ 159.31 / 161.10 ±1.80 / 164.55 ms │ 1.64x slower │
│ QQuery 30 │ 32.73 / 34.54 ±2.58 / 39.64 ms │ 32.46 / 33.51 ±1.45 / 36.39 ms │ no change │
│ QQuery 31 │ 110.99 / 111.79 ±0.66 / 112.92 ms │ 134.86 / 136.88 ±1.18 / 138.30 ms │ 1.22x slower │
│ QQuery 32 │ 20.50 / 20.79 ±0.32 / 21.39 ms │ 22.33 / 22.71 ±0.28 / 23.09 ms │ 1.09x slower │
│ QQuery 33 │ 38.09 / 38.32 ±0.17 / 38.61 ms │ 46.20 / 47.38 ±1.38 / 49.96 ms │ 1.24x slower │
│ QQuery 34 │ 9.89 / 10.71 ±1.31 / 13.31 ms │ 10.09 / 10.32 ±0.29 / 10.81 ms │ no change │
│ QQuery 35 │ 73.11 / 74.51 ±1.41 / 76.72 ms │ 79.58 / 79.83 ±0.22 / 80.16 ms │ 1.07x slower │
│ QQuery 36 │ 5.85 / 5.98 ±0.21 / 6.40 ms │ 5.51 / 5.70 ±0.23 / 6.13 ms │ no change │
│ QQuery 37 │ 6.94 / 7.01 ±0.05 / 7.06 ms │ 8.44 / 9.24 ±1.39 / 12.01 ms │ 1.32x slower │
│ QQuery 38 │ 61.66 / 62.06 ±0.49 / 63.01 ms │ 77.48 / 78.30 ±0.67 / 79.23 ms │ 1.26x slower │
│ QQuery 39 │ 89.75 / 90.69 ±1.02 / 92.68 ms │ 87.27 / 88.03 ±0.79 / 89.52 ms │ no change │
│ QQuery 40 │ 23.24 / 23.53 ±0.29 / 24.03 ms │ 22.26 / 22.59 ±0.17 / 22.73 ms │ no change │
│ QQuery 41 │ 11.41 / 11.62 ±0.24 / 12.08 ms │ 12.80 / 13.47 ±0.95 / 15.34 ms │ 1.16x slower │
│ QQuery 42 │ 23.63 / 24.13 ±0.59 / 25.02 ms │ 30.94 / 31.18 ±0.23 / 31.56 ms │ 1.29x slower │
│ QQuery 43 │ 4.92 / 5.05 ±0.19 / 5.42 ms │ 4.74 / 4.86 ±0.17 / 5.20 ms │ no change │
│ QQuery 44 │ 8.88 / 9.06 ±0.11 / 9.20 ms │ 9.31 / 9.42 ±0.09 / 9.57 ms │ no change │
│ QQuery 45 │ 37.51 / 38.21 ±0.38 / 38.60 ms │ 27.25 / 27.84 ±0.78 / 29.38 ms │ +1.37x faster │
│ QQuery 46 │ 11.77 / 11.92 ±0.14 / 12.16 ms │ 12.79 / 13.09 ±0.29 / 13.63 ms │ 1.10x slower │
│ QQuery 47 │ 225.62 / 228.60 ±2.52 / 231.98 ms │ 217.66 / 222.88 ±2.77 / 225.51 ms │ no change │
│ QQuery 48 │ 96.19 / 97.56 ±2.17 / 101.87 ms │ 137.76 / 139.13 ±1.08 / 140.46 ms │ 1.43x slower │
│ QQuery 49 │ 76.19 / 77.04 ±0.62 / 78.12 ms │ 135.57 / 136.90 ±1.27 / 139.22 ms │ 1.78x slower │
│ QQuery 50 │ 58.92 / 61.15 ±2.43 / 65.68 ms │ 126.00 / 126.83 ±1.14 / 129.08 ms │ 2.07x slower │
│ QQuery 51 │ 91.23 / 93.55 ±2.00 / 97.08 ms │ 97.69 / 99.73 ±1.08 / 100.69 ms │ 1.07x slower │
│ QQuery 52 │ 23.90 / 24.25 ±0.26 / 24.70 ms │ 31.22 / 31.44 ±0.22 / 31.78 ms │ 1.30x slower │
│ QQuery 53 │ 29.68 / 30.21 ±0.59 / 31.28 ms │ 34.31 / 35.53 ±1.80 / 39.11 ms │ 1.18x slower │
│ QQuery 54 │ 54.77 / 57.09 ±3.69 / 64.35 ms │ 29.49 / 30.92 ±1.57 / 33.57 ms │ +1.85x faster │
│ QQuery 55 │ 23.35 / 24.36 ±0.93 / 26.09 ms │ 29.54 / 29.95 ±0.33 / 30.40 ms │ 1.23x slower │
│ QQuery 56 │ 38.65 / 39.30 ±0.47 / 39.99 ms │ 44.23 / 44.77 ±0.33 / 45.26 ms │ 1.14x slower │
│ QQuery 57 │ 175.96 / 178.02 ±1.99 / 181.56 ms │ 153.71 / 155.41 ±1.58 / 158.37 ms │ +1.15x faster │
│ QQuery 58 │ 112.40 / 113.73 ±1.48 / 116.59 ms │ 80.41 / 81.25 ±0.88 / 82.79 ms │ +1.40x faster │
│ QQuery 59 │ 117.11 / 119.41 ±2.19 / 122.13 ms │ 75.34 / 76.25 ±1.58 / 79.40 ms │ +1.57x faster │
│ QQuery 60 │ 39.13 / 39.48 ±0.34 / 39.95 ms │ 44.44 / 45.04 ±0.41 / 45.57 ms │ 1.14x slower │
│ QQuery 61 │ 12.03 / 12.27 ±0.25 / 12.74 ms │ 11.52 / 11.71 ±0.22 / 12.14 ms │ no change │
│ QQuery 62 │ 46.62 / 47.63 ±1.72 / 51.05 ms │ 38.41 / 38.72 ±0.22 / 39.09 ms │ +1.23x faster │
│ QQuery 63 │ 29.44 / 30.06 ±0.48 / 30.86 ms │ 34.18 / 34.79 ±0.42 / 35.48 ms │ 1.16x slower │
│ QQuery 64 │ 407.87 / 413.34 ±4.78 / 421.20 ms │ 833.38 / 836.95 ±1.93 / 838.63 ms │ 2.02x slower │
│ QQuery 65 │ 120.74 / 124.64 ±1.99 / 125.92 ms │ 155.86 / 156.70 ±0.79 / 157.99 ms │ 1.26x slower │
│ QQuery 66 │ 79.98 / 81.73 ±1.93 / 85.29 ms │ 67.27 / 67.97 ±0.39 / 68.40 ms │ +1.20x faster │
│ QQuery 67 │ 246.74 / 252.83 ±4.67 / 260.70 ms │ 260.78 / 264.51 ±3.99 / 272.04 ms │ no change │
│ QQuery 68 │ 12.07 / 12.16 ±0.08 / 12.31 ms │ 12.62 / 12.82 ±0.14 / 13.03 ms │ 1.05x slower │
│ QQuery 69 │ 57.11 / 59.20 ±3.17 / 65.50 ms │ 68.22 / 69.45 ±1.77 / 72.93 ms │ 1.17x slower │
│ QQuery 70 │ 107.26 / 111.65 ±3.81 / 117.51 ms │ 112.37 / 116.66 ±5.24 / 126.57 ms │ no change │
│ QQuery 71 │ 34.92 / 35.34 ±0.35 / 35.99 ms │ 41.95 / 42.48 ±0.43 / 43.08 ms │ 1.20x slower │
│ QQuery 72 │ 1967.65 / 2017.19 ±49.26 / 2102.09 ms │ 185.55 / 189.47 ±3.12 / 194.88 ms │ +10.65x faster │
│ QQuery 73 │ 9.91 / 10.10 ±0.17 / 10.39 ms │ 10.16 / 10.27 ±0.13 / 10.50 ms │ no change │
│ QQuery 74 │ 173.55 / 177.19 ±3.47 / 183.29 ms │ 149.52 / 151.56 ±1.90 / 153.96 ms │ +1.17x faster │
│ QQuery 75 │ 149.42 / 152.99 ±2.52 / 156.15 ms │ 194.72 / 195.97 ±1.24 / 198.06 ms │ 1.28x slower │
│ QQuery 76 │ 35.13 / 35.66 ±0.31 / 36.10 ms │ 40.38 / 40.99 ±0.44 / 41.44 ms │ 1.15x slower │
│ QQuery 77 │ 61.05 / 61.63 ±0.41 / 62.16 ms │ 67.80 / 69.15 ±1.91 / 72.88 ms │ 1.12x slower │
│ QQuery 78 │ 197.53 / 201.35 ±5.88 / 213.01 ms │ 167.45 / 170.25 ±2.62 / 173.82 ms │ +1.18x faster │
│ QQuery 79 │ 67.06 / 69.81 ±2.44 / 72.80 ms │ 78.83 / 80.35 ±2.32 / 84.96 ms │ 1.15x slower │
│ QQuery 80 │ 98.41 / 100.39 ±1.49 / 102.92 ms │ 91.30 / 92.80 ±1.42 / 95.39 ms │ +1.08x faster │
│ QQuery 81 │ 25.82 / 26.03 ±0.16 / 26.27 ms │ 25.85 / 27.12 ±2.37 / 31.85 ms │ no change │
│ QQuery 82 │ 16.34 / 16.62 ±0.18 / 16.89 ms │ 17.54 / 18.08 ±0.41 / 18.56 ms │ 1.09x slower │
│ QQuery 83 │ 40.06 / 41.48 ±2.05 / 45.46 ms │ 35.29 / 35.99 ±0.40 / 36.42 ms │ +1.15x faster │
│ QQuery 84 │ 30.11 / 31.44 ±1.53 / 34.42 ms │ 31.58 / 32.68 ±1.31 / 35.09 ms │ no change │
│ QQuery 85 │ 106.18 / 107.17 ±0.79 / 108.16 ms │ 153.69 / 154.28 ±0.31 / 154.55 ms │ 1.44x slower │
│ QQuery 86 │ 25.25 / 25.51 ±0.18 / 25.76 ms │ 28.50 / 28.86 ±0.28 / 29.36 ms │ 1.13x slower │
│ QQuery 87 │ 61.45 / 62.68 ±0.92 / 64.16 ms │ 77.81 / 79.63 ±2.34 / 84.12 ms │ 1.27x slower │
│ QQuery 88 │ 63.16 / 63.69 ±0.60 / 64.85 ms │ 62.55 / 63.38 ±0.45 / 63.90 ms │ no change │
│ QQuery 89 │ 35.53 / 35.90 ±0.47 / 36.82 ms │ 44.48 / 45.05 ±0.70 / 46.40 ms │ 1.25x slower │
│ QQuery 90 │ 16.93 / 17.08 ±0.16 / 17.36 ms │ 17.45 / 17.81 ±0.30 / 18.19 ms │ no change │
│ QQuery 91 │ 45.74 / 46.40 ±0.74 / 47.80 ms │ 49.94 / 51.40 ±1.13 / 53.11 ms │ 1.11x slower │
│ QQuery 92 │ 29.89 / 31.16 ±0.95 / 32.79 ms │ 34.01 / 34.62 ±0.58 / 35.59 ms │ 1.11x slower │
│ QQuery 93 │ 49.39 / 50.86 ±1.06 / 52.59 ms │ 49.79 / 51.18 ±1.06 / 52.54 ms │ no change │
│ QQuery 94 │ 37.90 / 38.12 ±0.15 / 38.32 ms │ 44.19 / 44.60 ±0.35 / 45.17 ms │ 1.17x slower │
│ QQuery 95 │ 79.47 / 80.35 ±0.92 / 82.08 ms │ 114.04 / 115.16 ±1.44 / 118.00 ms │ 1.43x slower │
│ QQuery 96 │ 24.04 / 24.61 ±0.68 / 25.92 ms │ 26.01 / 26.70 ±0.95 / 28.58 ms │ 1.08x slower │
│ QQuery 97 │ 46.51 / 48.11 ±1.07 / 49.51 ms │ 50.95 / 51.75 ±1.01 / 53.73 ms │ 1.08x slower │
│ QQuery 98 │ 42.62 / 43.10 ±0.64 / 44.33 ms │ 34.76 / 34.99 ±0.27 / 35.51 ms │ +1.23x faster │
│ QQuery 99 │ 70.62 / 70.92 ±0.23 / 71.21 ms │ 54.03 / 55.63 ±2.78 / 61.17 ms │ +1.27x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9788.28ms │
│ Total Time (parquet-post-scan-filter) │ 8996.13ms │
│ Average Time (HEAD) │ 98.87ms │
│ Average Time (parquet-post-scan-filter) │ 90.87ms │
│ Queries Faster │ 25 │
│ Queries Slower │ 51 │
│ Queries with No Change │ 23 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time50.0s
Peak memory2.2 GiB
Avg memory1.6 GiB
CPU user218.6s
CPU sys6.1s
Peak spill0 B

tpcds — branch

MetricValue
Wall time50.0s
Peak memory1.9 GiB
Avg memory1.3 GiB
CPU user123.6s
CPU sys5.3s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5240177619-1519-5grdp 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpchenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed.

Run configuration
run benchmark tpcdsenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"

Last 20 lines of output:

Click to expand
Cloning into '/workspace/datafusion-branch'...
fatal: unable to access 'https://github.com/apache/datafusion.git/': Failed to connect to github.com port 443 after 134040 ms: Couldn't connect to server

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitioned
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.26 ms │ 1.29 ms │ no change │
│ QQuery 1 │ 12.35 ms │ 13.00 ms │ 1.05x slower │
│ QQuery 2 │ 36.39 ms │ 37.12 ms │ no change │
│ QQuery 3 │ 31.17 ms │ 31.55 ms │ no change │
│ QQuery 4 │ 233.23 ms │ 237.35 ms │ no change │
│ QQuery 5 │ 280.47 ms │ 280.70 ms │ no change │
│ QQuery 6 │ 1.30 ms │ 1.31 ms │ no change │
│ QQuery 7 │ 13.99 ms │ 15.04 ms │ 1.08x slower │
│ QQuery 8 │ 347.07 ms │ 344.85 ms │ no change │
│ QQuery 9 │ 471.80 ms │ 475.35 ms │ no change │
│ QQuery 10 │ 71.11 ms │ 72.83 ms │ no change │
│ QQuery 11 │ 81.79 ms │ 84.16 ms │ no change │
│ QQuery 12 │ 277.10 ms │ 274.19 ms │ no change │
│ QQuery 13 │ 377.31 ms │ 403.50 ms │ 1.07x slower │
│ QQuery 14 │ 295.29 ms │ 290.52 ms │ no change │
│ QQuery 15 │ 288.25 ms │ 289.68 ms │ no change │
│ QQuery 16 │ 642.34 ms │ 646.02 ms │ no change │
│ QQuery 17 │ 645.19 ms │ 640.04 ms │ no change │
│ QQuery 18 │ 1304.77 ms │ 1313.71 ms │ no change │
│ QQuery 19 │ 28.21 ms │ 28.31 ms │ no change │
│ QQuery 20 │ 521.20 ms │ 522.64 ms │ no change │
│ QQuery 21 │ 521.49 ms │ 521.51 ms │ no change │
│ QQuery 22 │ 1004.97 ms │ 1011.34 ms │ no change │
│ QQuery 23 │ 3134.25 ms │ 668.73 ms │ +4.69x faster │
│ QQuery 24 │ 41.56 ms │ 38.90 ms │ +1.07x faster │
│ QQuery 25 │ 113.39 ms │ 108.54 ms │ no change │
│ QQuery 26 │ 41.79 ms │ 39.19 ms │ +1.07x faster │
│ QQuery 27 │ 519.47 ms │ 496.58 ms │ no change │
│ QQuery 28 │ 2956.58 ms │ 2938.50 ms │ no change │
│ QQuery 29 │ 41.88 ms │ 42.04 ms │ no change │
│ QQuery 30 │ 315.60 ms │ 320.95 ms │ no change │
│ QQuery 31 │ 294.04 ms │ 329.43 ms │ 1.12x slower │
│ QQuery 32 │ 957.53 ms │ 999.81 ms │ no change │
│ QQuery 33 │ 1509.66 ms │ 1538.18 ms │ no change │
│ QQuery 34 │ 1548.01 ms │ 1536.37 ms │ no change │
│ QQuery 35 │ 299.80 ms │ 303.66 ms │ no change │
│ QQuery 36 │ 72.49 ms │ 69.05 ms │ no change │
│ QQuery 37 │ 36.28 ms │ 36.82 ms │ no change │
│ QQuery 38 │ 41.35 ms │ 41.00 ms │ no change │
│ QQuery 39 │ 146.05 ms │ 139.81 ms │ no change │
│ QQuery 40 │ 14.86 ms │ 14.77 ms │ no change │
│ QQuery 41 │ 14.66 ms │ 14.59 ms │ no change │
│ QQuery 42 │ 13.98 ms │ 14.20 ms │ no change │
└───────────┴────────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 19601.31ms │
│ Total Time (parquet-post-scan-filter) │ 17227.12ms │
│ Average Time (HEAD) │ 455.84ms │
│ Average Time (parquet-post-scan-filter) │ 400.63ms │
│ Queries Faster │ 3 │
│ Queries Slower │ 4 │
│ Queries with No Change │ 36 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.26 / 4.11 ±5.55 / 15.22 ms │ 1.29 / 4.12 ±5.52 / 15.15 ms │ no change │
│ QQuery 1 │ 12.35 / 12.83 ±0.25 / 13.09 ms │ 13.00 / 13.56 ±0.35 / 14.05 ms │ 1.06x slower │
│ QQuery 2 │ 36.39 / 36.76 ±0.36 / 37.43 ms │ 37.12 / 37.44 ±0.27 / 37.79 ms │ no change │
│ QQuery 3 │ 31.17 / 31.72 ±0.66 / 32.99 ms │ 31.55 / 31.79 ±0.18 / 32.06 ms │ no change │
│ QQuery 4 │ 233.23 / 239.38 ±3.17 / 241.68 ms │ 237.35 / 242.31 ±3.31 / 246.24 ms │ no change │
│ QQuery 5 │ 280.47 / 286.08 ±3.31 / 289.12 ms │ 280.70 / 285.70 ±3.06 / 289.45 ms │ no change │
│ QQuery 6 │ 1.30 / 1.43 ±0.21 / 1.84 ms │ 1.31 / 1.46 ±0.23 / 1.90 ms │ no change │
│ QQuery 7 │ 13.99 / 14.30 ±0.17 / 14.44 ms │ 15.04 / 15.97 ±1.49 / 18.94 ms │ 1.12x slower │
│ QQuery 8 │ 347.07 / 351.76 ±4.06 / 357.88 ms │ 344.85 / 348.94 ±4.94 / 358.60 ms │ no change │
│ QQuery 9 │ 471.80 / 487.90 ±11.06 / 506.56 ms │ 475.35 / 483.37 ±5.90 / 492.05 ms │ no change │
│ QQuery 10 │ 71.11 / 72.14 ±0.73 / 73.14 ms │ 72.83 / 74.77 ±2.03 / 78.63 ms │ no change │
│ QQuery 11 │ 81.79 / 82.32 ±0.40 / 82.81 ms │ 84.16 / 84.69 ±0.42 / 85.28 ms │ no change │
│ QQuery 12 │ 277.10 / 283.99 ±4.11 / 289.78 ms │ 274.19 / 281.42 ±5.97 / 288.04 ms │ no change │
│ QQuery 13 │ 377.31 / 397.55 ±17.00 / 425.76 ms │ 403.50 / 426.38 ±12.62 / 438.32 ms │ 1.07x slower │
│ QQuery 14 │ 295.29 / 300.38 ±3.27 / 303.96 ms │ 290.52 / 296.13 ±4.66 / 301.81 ms │ no change │
│ QQuery 15 │ 288.25 / 301.19 ±10.67 / 318.49 ms │ 289.68 / 297.00 ±7.95 / 311.40 ms │ no change │
│ QQuery 16 │ 642.34 / 647.98 ±4.40 / 654.14 ms │ 646.02 / 661.16 ±15.39 / 690.05 ms │ no change │
│ QQuery 17 │ 645.19 / 653.90 ±7.29 / 664.32 ms │ 640.04 / 652.33 ±7.89 / 662.60 ms │ no change │
│ QQuery 18 │ 1304.77 / 1339.86 ±20.60 / 1363.81 ms │ 1313.71 / 1334.48 ±28.55 / 1390.40 ms │ no change │
│ QQuery 19 │ 28.21 / 30.72 ±4.26 / 39.22 ms │ 28.31 / 30.15 ±3.06 / 36.27 ms │ no change │
│ QQuery 20 │ 521.20 / 531.86 ±8.98 / 544.23 ms │ 522.64 / 534.00 ±8.89 / 543.92 ms │ no change │
│ QQuery 21 │ 521.49 / 524.33 ±1.73 / 526.23 ms │ 521.51 / 526.34 ±3.62 / 529.72 ms │ no change │
│ QQuery 22 │ 1004.97 / 1032.05 ±27.28 / 1079.54 ms │ 1011.34 / 1021.05 ±8.93 / 1035.12 ms │ no change │
│ QQuery 23 │ 3134.25 / 3153.58 ±19.93 / 3186.42 ms │ 668.73 / 692.05 ±22.32 / 731.97 ms │ +4.56x faster │
│ QQuery 24 │ 41.56 / 42.70 ±1.07 / 44.39 ms │ 38.90 / 40.94 ±3.79 / 48.53 ms │ no change │
│ QQuery 25 │ 113.39 / 121.81 ±7.99 / 131.94 ms │ 108.54 / 119.15 ±13.38 / 143.37 ms │ no change │
│ QQuery 26 │ 41.79 / 42.72 ±0.80 / 43.99 ms │ 39.19 / 39.69 ±0.50 / 40.58 ms │ +1.08x faster │
│ QQuery 27 │ 519.47 / 528.29 ±10.22 / 548.15 ms │ 496.58 / 514.13 ±12.55 / 529.27 ms │ no change │
│ QQuery 28 │ 2956.58 / 2973.14 ±12.78 / 2990.24 ms │ 2938.50 / 2976.99 ±23.75 / 3008.99 ms │ no change │
│ QQuery 29 │ 41.88 / 48.59 ±7.81 / 59.55 ms │ 42.04 / 65.55 ±20.40 / 94.42 ms │ 1.35x slower │
│ QQuery 30 │ 315.60 / 321.46 ±3.26 / 325.00 ms │ 320.95 / 333.25 ±8.90 / 348.00 ms │ no change │
│ QQuery 31 │ 294.04 / 300.94 ±7.51 / 311.23 ms │ 329.43 / 337.51 ±7.12 / 348.86 ms │ 1.12x slower │
│ QQuery 32 │ 957.53 / 1001.13 ±29.19 / 1042.59 ms │ 999.81 / 1018.70 ±28.19 / 1074.54 ms │ no change │
│ QQuery 33 │ 1509.66 / 1549.62 ±30.97 / 1599.14 ms │ 1538.18 / 1563.06 ±18.37 / 1588.58 ms │ no change │
│ QQuery 34 │ 1548.01 / 1571.99 ±31.11 / 1633.03 ms │ 1536.37 / 1575.79 ±25.61 / 1601.00 ms │ no change │
│ QQuery 35 │ 299.80 / 340.69 ±68.00 / 476.14 ms │ 303.66 / 323.22 ±23.42 / 367.92 ms │ +1.05x faster │
│ QQuery 36 │ 72.49 / 82.81 ±9.97 / 101.65 ms │ 69.05 / 76.33 ±3.96 / 79.76 ms │ +1.08x faster │
│ QQuery 37 │ 36.28 / 37.00 ±0.58 / 37.91 ms │ 36.82 / 37.45 ±0.66 / 38.47 ms │ no change │
│ QQuery 38 │ 41.35 / 44.93 ±3.43 / 49.25 ms │ 41.00 / 44.14 ±3.36 / 49.73 ms │ no change │
│ QQuery 39 │ 146.05 / 153.55 ±4.25 / 157.79 ms │ 139.81 / 150.80 ±9.48 / 165.95 ms │ no change │
│ QQuery 40 │ 14.86 / 16.22 ±2.05 / 20.30 ms │ 14.77 / 15.32 ±0.48 / 16.18 ms │ +1.06x faster │
│ QQuery 41 │ 14.66 / 16.08 ±2.33 / 20.73 ms │ 14.59 / 15.51 ±1.52 / 18.54 ms │ no change │
│ QQuery 42 │ 13.98 / 14.18 ±0.13 / 14.36 ms │ 14.20 / 14.43 ±0.21 / 14.80 ms │ no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 20025.95ms │
│ Total Time (parquet-post-scan-filter) │ 17638.59ms │
│ Average Time (HEAD) │ 465.72ms │
│ Average Time (parquet-post-scan-filter) │ 410.20ms │
│ Queries Faster │ 5 │
│ Queries Slower │ 5 │
│ Queries with No Change │ 33 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time105.0s
Peak memory11.5 GiB
Avg memory4.3 GiB
CPU user1024.8s
CPU sys74.2s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time90.0s
Peak memory10.8 GiB
Avg memory4.7 GiB
CPU user886.6s
CPU sys63.4s
Peak spill0 B

File an issue against this benchmark runner

@codecov-commenter

codecov-commenter commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.60270% with 36 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.00%. Comparing base (2bfdd4a) to head (bd6ee28).
⚠️ Report is 7 commits behind head on main.

Files with missing linesPatch %Lines
datafusion/datasource-parquet/src/push_decoder.rs76.92%8 Missing and 7 partials ⚠️
...usion/datasource-parquet/src/decoder_projection.rs93.36%3 Missing and 11 partials ⚠️
datafusion/datasource-parquet/src/row_filter.rs94.11%3 Missing and 2 partials ⚠️
datafusion/datasource-parquet/src/opener/mod.rs99.01%1 Missing and 1 partial ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #22384 +/- ##
==========================================
+ Coverage 80.99% 81.00% +0.01% 
==========================================
Files 1106 1106 Lines 383158 383865 +707 Branches 383158 383865 +707 ==========================================
+ Hits 310331 310966 +635 - Misses 54513 54557 +44 - Partials 18314 18342 +28 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpchenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1 │ 39.34 ms │ 39.52 ms │ no change │
│ QQuery 2 │ 20.18 ms │ 20.37 ms │ no change │
│ QQuery 3 │ 41.48 ms │ 41.21 ms │ no change │
│ QQuery 4 │ 25.40 ms │ 25.61 ms │ no change │
│ QQuery 5 │ 60.50 ms │ 60.87 ms │ no change │
│ QQuery 6 │ 22.91 ms │ 22.58 ms │ no change │
│ QQuery 7 │ 49.19 ms │ 49.20 ms │ no change │
│ QQuery 8 │ 49.94 ms │ 50.16 ms │ no change │
│ QQuery 9 │ 65.15 ms │ 65.01 ms │ no change │
│ QQuery 10 │ 48.06 ms │ 48.96 ms │ no change │
│ QQuery 11 │ 15.73 ms │ 16.01 ms │ no change │
│ QQuery 12 │ 41.82 ms │ 42.24 ms │ no change │
│ QQuery 13 │ 43.63 ms │ 43.54 ms │ no change │
│ QQuery 14 │ 30.70 ms │ 31.00 ms │ no change │
│ QQuery 15 │ 39.94 ms │ 40.30 ms │ no change │
│ QQuery 16 │ 16.07 ms │ 16.04 ms │ no change │
│ QQuery 17 │ 71.17 ms │ 70.34 ms │ no change │
│ QQuery 18 │ 75.75 ms │ 75.72 ms │ no change │
│ QQuery 19 │ 34.43 ms │ 34.07 ms │ no change │
│ QQuery 20 │ 36.92 ms │ 36.67 ms │ no change │
│ QQuery 21 │ 62.42 ms │ 64.57 ms │ no change │
│ QQuery 22 │ 17.13 ms │ 17.17 ms │ no change │
└───────────┴──────────┴──────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 907.84ms │
│ Total Time (parquet-post-scan-filter) │ 911.14ms │
│ Average Time (HEAD) │ 41.27ms │
│ Average Time (parquet-post-scan-filter) │ 41.42ms │
│ Queries Faster │ 0 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 22 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 1 │ 39.34 / 40.20 ±1.24 / 42.66 ms │ 39.52 / 40.19 ±0.95 / 42.07 ms │ no change │
│ QQuery 2 │ 20.18 / 20.54 ±0.41 / 21.30 ms │ 20.37 / 20.91 ±0.40 / 21.51 ms │ no change │
│ QQuery 3 │ 41.48 / 42.32 ±0.87 / 43.87 ms │ 41.21 / 42.50 ±1.52 / 44.71 ms │ no change │
│ QQuery 4 │ 25.40 / 26.56 ±1.01 / 28.00 ms │ 25.61 / 26.92 ±0.74 / 27.75 ms │ no change │
│ QQuery 5 │ 60.50 / 62.75 ±2.25 / 65.87 ms │ 60.87 / 61.87 ±1.45 / 64.73 ms │ no change │
│ QQuery 6 │ 22.91 / 24.24 ±1.13 / 25.87 ms │ 22.58 / 23.93 ±1.33 / 26.46 ms │ no change │
│ QQuery 7 │ 49.19 / 49.71 ±0.47 / 50.39 ms │ 49.20 / 49.81 ±0.52 / 50.69 ms │ no change │
│ QQuery 8 │ 49.94 / 50.51 ±0.53 / 51.41 ms │ 50.16 / 50.83 ±0.52 / 51.62 ms │ no change │
│ QQuery 9 │ 65.15 / 66.06 ±0.97 / 67.36 ms │ 65.01 / 66.92 ±1.50 / 68.75 ms │ no change │
│ QQuery 10 │ 48.06 / 49.20 ±0.98 / 50.71 ms │ 48.96 / 49.85 ±1.05 / 51.87 ms │ no change │
│ QQuery 11 │ 15.73 / 15.81 ±0.13 / 16.07 ms │ 16.01 / 16.17 ±0.17 / 16.49 ms │ no change │
│ QQuery 12 │ 41.82 / 42.71 ±0.77 / 43.98 ms │ 42.24 / 42.69 ±0.56 / 43.79 ms │ no change │
│ QQuery 13 │ 43.63 / 44.19 ±0.72 / 45.59 ms │ 43.54 / 44.31 ±1.08 / 46.45 ms │ no change │
│ QQuery 14 │ 30.70 / 31.49 ±0.66 / 32.71 ms │ 31.00 / 31.64 ±0.81 / 33.20 ms │ no change │
│ QQuery 15 │ 39.94 / 41.89 ±1.81 / 44.84 ms │ 40.30 / 42.27 ±1.48 / 44.81 ms │ no change │
│ QQuery 16 │ 16.07 / 16.21 ±0.10 / 16.31 ms │ 16.04 / 16.25 ±0.22 / 16.62 ms │ no change │
│ QQuery 17 │ 71.17 / 72.32 ±1.02 / 74.02 ms │ 70.34 / 71.62 ±0.75 / 72.51 ms │ no change │
│ QQuery 18 │ 75.75 / 78.02 ±2.35 / 82.41 ms │ 75.72 / 77.24 ±1.55 / 79.97 ms │ no change │
│ QQuery 19 │ 34.43 / 34.58 ±0.29 / 35.16 ms │ 34.07 / 35.45 ±2.24 / 39.93 ms │ no change │
│ QQuery 20 │ 36.92 / 37.18 ±0.22 / 37.43 ms │ 36.67 / 37.01 ±0.31 / 37.46 ms │ no change │
│ QQuery 21 │ 62.42 / 63.96 ±0.94 / 65.14 ms │ 64.57 / 65.34 ±0.86 / 66.96 ms │ no change │
│ QQuery 22 │ 17.13 / 17.34 ±0.20 / 17.73 ms │ 17.17 / 17.38 ±0.18 / 17.63 ms │ no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 927.81ms │
│ Total Time (parquet-post-scan-filter) │ 931.12ms │
│ Average Time (HEAD) │ 42.17ms │
│ Average Time (parquet-post-scan-filter) │ 42.32ms │
│ Queries Faster │ 0 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 22 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory1.2 GiB
Avg memory739.0 MiB
CPU user23.2s
CPU sys1.7s
Peak spill0 B

tpch — branch

MetricValue
Wall time5.0s
Peak memory1.3 GiB
Avg memory752.1 MiB
CPU user23.2s
CPU sys1.8s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitionedenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.23 ms │ 1.25 ms │ no change │
│ QQuery 1 │ 12.64 ms │ 12.87 ms │ no change │
│ QQuery 2 │ 36.20 ms │ 36.94 ms │ no change │
│ QQuery 3 │ 30.86 ms │ 31.20 ms │ no change │
│ QQuery 4 │ 227.35 ms │ 228.35 ms │ no change │
│ QQuery 5 │ 273.64 ms │ 274.41 ms │ no change │
│ QQuery 6 │ 1.26 ms │ 1.28 ms │ no change │
│ QQuery 7 │ 16.40 ms │ 16.89 ms │ no change │
│ QQuery 8 │ 330.87 ms │ 332.43 ms │ no change │
│ QQuery 9 │ 462.41 ms │ 464.28 ms │ no change │
│ QQuery 10 │ 95.01 ms │ 95.71 ms │ no change │
│ QQuery 11 │ 105.13 ms │ 106.43 ms │ no change │
│ QQuery 12 │ 296.24 ms │ 302.92 ms │ no change │
│ QQuery 13 │ 411.70 ms │ 405.12 ms │ no change │
│ QQuery 14 │ 313.77 ms │ 315.88 ms │ no change │
│ QQuery 15 │ 281.23 ms │ 280.57 ms │ no change │
│ QQuery 16 │ 621.95 ms │ 616.31 ms │ no change │
│ QQuery 17 │ 625.56 ms │ 620.95 ms │ no change │
│ QQuery 18 │ 1284.09 ms │ 1275.75 ms │ no change │
│ QQuery 19 │ 29.50 ms │ 29.77 ms │ no change │
│ QQuery 20 │ 516.97 ms │ 519.92 ms │ no change │
│ QQuery 21 │ 574.61 ms │ 584.62 ms │ no change │
│ QQuery 22 │ 796.46 ms │ 811.41 ms │ no change │
│ QQuery 23 │ 138.02 ms │ 139.15 ms │ no change │
│ QQuery 24 │ 45.12 ms │ 45.70 ms │ no change │
│ QQuery 25 │ 141.62 ms │ 143.25 ms │ no change │
│ QQuery 26 │ 48.79 ms │ 51.09 ms │ no change │
│ QQuery 27 │ 561.38 ms │ 571.64 ms │ no change │
│ QQuery 28 │ 2940.92 ms │ 3014.26 ms │ no change │
│ QQuery 29 │ 41.27 ms │ 42.47 ms │ no change │
│ QQuery 30 │ 308.95 ms │ 330.71 ms │ 1.07x slower │
│ QQuery 31 │ 286.04 ms │ 305.30 ms │ 1.07x slower │
│ QQuery 32 │ 1010.88 ms │ 1005.99 ms │ no change │
│ QQuery 33 │ 1537.66 ms │ 1602.61 ms │ no change │
│ QQuery 34 │ 1498.10 ms │ 1637.03 ms │ 1.09x slower │
│ QQuery 35 │ 286.29 ms │ 326.47 ms │ 1.14x slower │
│ QQuery 36 │ 65.21 ms │ 74.52 ms │ 1.14x slower │
│ QQuery 37 │ 36.37 ms │ 39.24 ms │ 1.08x slower │
│ QQuery 38 │ 35.77 ms │ 37.05 ms │ no change │
│ QQuery 39 │ 133.14 ms │ 153.37 ms │ 1.15x slower │
│ QQuery 40 │ 17.82 ms │ 18.83 ms │ 1.06x slower │
│ QQuery 41 │ 16.47 ms │ 17.29 ms │ no change │
│ QQuery 42 │ 14.20 ms │ 15.43 ms │ 1.09x slower │
└───────────┴────────────┴──────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 16509.08ms │
│ Total Time (parquet-post-scan-filter) │ 16936.68ms │
│ Average Time (HEAD) │ 383.93ms │
│ Average Time (parquet-post-scan-filter) │ 393.88ms │
│ Queries Faster │ 0 │
│ Queries Slower │ 9 │
│ Queries with No Change │ 34 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.23 / 3.97 ±5.34 / 14.65 ms │ 1.25 / 4.10 ±5.54 / 15.18 ms │ no change │
│ QQuery 1 │ 12.64 / 12.83 ±0.15 / 13.06 ms │ 12.87 / 13.23 ±0.20 / 13.45 ms │ no change │
│ QQuery 2 │ 36.20 / 36.33 ±0.12 / 36.56 ms │ 36.94 / 37.14 ±0.18 / 37.37 ms │ no change │
│ QQuery 3 │ 30.86 / 31.60 ±0.68 / 32.66 ms │ 31.20 / 31.57 ±0.30 / 31.97 ms │ no change │
│ QQuery 4 │ 227.35 / 233.18 ±3.96 / 239.18 ms │ 228.35 / 234.94 ±6.06 / 246.11 ms │ no change │
│ QQuery 5 │ 273.64 / 278.77 ±3.96 / 283.44 ms │ 274.41 / 278.99 ±4.64 / 286.92 ms │ no change │
│ QQuery 6 │ 1.26 / 1.48 ±0.33 / 2.12 ms │ 1.28 / 1.44 ±0.24 / 1.92 ms │ no change │
│ QQuery 7 │ 16.40 / 16.59 ±0.19 / 16.88 ms │ 16.89 / 17.03 ±0.16 / 17.33 ms │ no change │
│ QQuery 8 │ 330.87 / 333.17 ±1.66 / 335.21 ms │ 332.43 / 333.93 ±1.38 / 335.99 ms │ no change │
│ QQuery 9 │ 462.41 / 470.08 ±6.51 / 480.77 ms │ 464.28 / 473.69 ±11.81 / 496.66 ms │ no change │
│ QQuery 10 │ 95.01 / 95.87 ±1.04 / 97.88 ms │ 95.71 / 96.74 ±0.88 / 98.00 ms │ no change │
│ QQuery 11 │ 105.13 / 106.38 ±1.21 / 108.62 ms │ 106.43 / 107.13 ±0.49 / 107.83 ms │ no change │
│ QQuery 12 │ 296.24 / 303.96 ±6.48 / 314.66 ms │ 302.92 / 314.85 ±12.59 / 334.09 ms │ no change │
│ QQuery 13 │ 411.70 / 429.08 ±13.24 / 444.67 ms │ 405.12 / 418.18 ±16.47 / 450.61 ms │ no change │
│ QQuery 14 │ 313.77 / 318.18 ±3.43 / 323.20 ms │ 315.88 / 323.11 ±6.99 / 335.32 ms │ no change │
│ QQuery 15 │ 281.23 / 290.31 ±5.56 / 298.36 ms │ 280.57 / 285.73 ±7.23 / 299.83 ms │ no change │
│ QQuery 16 │ 621.95 / 636.21 ±7.98 / 645.24 ms │ 616.31 / 632.60 ±12.78 / 652.29 ms │ no change │
│ QQuery 17 │ 625.56 / 636.72 ±14.97 / 665.72 ms │ 620.95 / 642.33 ±12.44 / 657.27 ms │ no change │
│ QQuery 18 │ 1284.09 / 1310.13 ±21.93 / 1348.40 ms │ 1275.75 / 1304.57 ±20.36 / 1337.78 ms │ no change │
│ QQuery 19 │ 29.50 / 30.00 ±0.72 / 31.39 ms │ 29.77 / 36.43 ±12.27 / 60.94 ms │ 1.21x slower │
│ QQuery 20 │ 516.97 / 530.01 ±9.44 / 542.72 ms │ 519.92 / 535.29 ±13.86 / 555.56 ms │ no change │
│ QQuery 21 │ 574.61 / 586.78 ±13.46 / 611.27 ms │ 584.62 / 600.81 ±14.01 / 621.03 ms │ no change │
│ QQuery 22 │ 796.46 / 804.93 ±6.00 / 813.16 ms │ 811.41 / 821.99 ±6.24 / 830.67 ms │ no change │
│ QQuery 23 │ 138.02 / 140.23 ±1.79 / 142.78 ms │ 139.15 / 142.13 ±4.13 / 150.27 ms │ no change │
│ QQuery 24 │ 45.12 / 50.67 ±9.16 / 68.91 ms │ 45.70 / 46.37 ±0.65 / 47.55 ms │ +1.09x faster │
│ QQuery 25 │ 141.62 / 147.34 ±5.75 / 157.67 ms │ 143.25 / 147.17 ±2.89 / 151.81 ms │ no change │
│ QQuery 26 │ 48.79 / 51.91 ±3.42 / 58.48 ms │ 51.09 / 53.78 ±4.14 / 62.04 ms │ no change │
│ QQuery 27 │ 561.38 / 580.25 ±11.68 / 595.27 ms │ 571.64 / 607.52 ±30.92 / 660.73 ms │ no change │
│ QQuery 28 │ 2940.92 / 2972.24 ±23.85 / 3005.68 ms │ 3014.26 / 3047.46 ±21.54 / 3080.35 ms │ no change │
│ QQuery 29 │ 41.27 / 64.29 ±23.30 / 93.77 ms │ 42.47 / 43.09 ±0.54 / 43.90 ms │ +1.49x faster │
│ QQuery 30 │ 308.95 / 318.31 ±10.11 / 331.67 ms │ 330.71 / 338.10 ±5.99 / 347.50 ms │ 1.06x slower │
│ QQuery 31 │ 286.04 / 301.02 ±11.25 / 318.37 ms │ 305.30 / 322.96 ±13.15 / 342.14 ms │ 1.07x slower │
│ QQuery 32 │ 1010.88 / 1072.00 ±45.98 / 1139.14 ms │ 1005.99 / 1019.90 ±9.14 / 1034.79 ms │ no change │
│ QQuery 33 │ 1537.66 / 1572.25 ±27.91 / 1620.11 ms │ 1602.61 / 1627.49 ±21.80 / 1668.34 ms │ no change │
│ QQuery 34 │ 1498.10 / 1537.64 ±58.35 / 1652.76 ms │ 1637.03 / 1659.31 ±11.51 / 1670.27 ms │ 1.08x slower │
│ QQuery 35 │ 286.29 / 303.67 ±14.17 / 329.58 ms │ 326.47 / 343.57 ±15.71 / 367.86 ms │ 1.13x slower │
│ QQuery 36 │ 65.21 / 71.32 ±3.34 / 75.05 ms │ 74.52 / 87.13 ±11.19 / 107.96 ms │ 1.22x slower │
│ QQuery 37 │ 36.37 / 41.85 ±5.25 / 51.80 ms │ 39.24 / 43.64 ±5.16 / 53.69 ms │ no change │
│ QQuery 38 │ 35.77 / 41.78 ±5.08 / 49.52 ms │ 37.05 / 43.03 ±4.32 / 48.57 ms │ no change │
│ QQuery 39 │ 133.14 / 148.94 ±9.69 / 161.28 ms │ 153.37 / 157.57 ±3.24 / 161.80 ms │ 1.06x slower │
│ QQuery 40 │ 17.82 / 19.41 ±2.67 / 24.73 ms │ 18.83 / 20.84 ±2.59 / 25.96 ms │ 1.07x slower │
│ QQuery 41 │ 16.47 / 19.16 ±5.13 / 29.43 ms │ 17.29 / 19.89 ±4.44 / 28.74 ms │ no change │
│ QQuery 42 │ 14.20 / 20.92 ±12.95 / 46.81 ms │ 15.43 / 17.89 ±3.34 / 24.02 ms │ +1.17x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 16971.72ms │
│ Total Time (parquet-post-scan-filter) │ 17334.67ms │
│ Average Time (HEAD) │ 394.69ms │
│ Average Time (parquet-post-scan-filter) │ 403.13ms │
│ Queries Faster │ 3 │
│ Queries Slower │ 8 │
│ Queries with No Change │ 32 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time90.0s
Peak memory11.0 GiB
Avg memory4.2 GiB
CPU user860.4s
CPU sys62.5s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time90.0s
Peak memory11.0 GiB
Avg memory4.6 GiB
CPU user873.9s
CPU sys66.2s
Peak spill0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmark tpcds

env:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5241728889-1520-zfxcm 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcdsenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (e743ae8) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcdsenv:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.02 ms │ 5.21 ms │ no change │
│ QQuery 2 │ 43.98 ms │ 44.01 ms │ no change │
│ QQuery 3 │ 26.16 ms │ 26.24 ms │ no change │
│ QQuery 4 │ 376.95 ms │ 381.47 ms │ no change │
│ QQuery 5 │ 71.47 ms │ 71.88 ms │ no change │
│ QQuery 6 │ 36.11 ms │ 36.41 ms │ no change │
│ QQuery 7 │ 110.42 ms │ 111.06 ms │ no change │
│ QQuery 8 │ 14.73 ms │ 14.73 ms │ no change │
│ QQuery 9 │ 109.76 ms │ 105.13 ms │ no change │
│ QQuery 10 │ 73.16 ms │ 72.82 ms │ no change │
│ QQuery 11 │ 232.30 ms │ 234.86 ms │ no change │
│ QQuery 12 │ 27.48 ms │ 27.49 ms │ no change │
│ QQuery 13 │ 115.15 ms │ 115.53 ms │ no change │
│ QQuery 14 │ 419.55 ms │ 423.48 ms │ no change │
│ QQuery 15 │ 23.02 ms │ 23.23 ms │ no change │
│ QQuery 16 │ 6.16 ms │ 6.04 ms │ no change │
│ QQuery 17 │ 113.28 ms │ 113.52 ms │ no change │
│ QQuery 18 │ 185.61 ms │ 188.00 ms │ no change │
│ QQuery 19 │ 39.25 ms │ 39.83 ms │ no change │
│ QQuery 20 │ 30.41 ms │ 30.35 ms │ no change │
│ QQuery 21 │ 18.71 ms │ 18.98 ms │ no change │
│ QQuery 22 │ 60.42 ms │ 61.52 ms │ no change │
│ QQuery 23 │ 374.48 ms │ 380.79 ms │ no change │
│ QQuery 24 │ 407.49 ms │ 406.52 ms │ no change │
│ QQuery 25 │ 114.63 ms │ 115.11 ms │ no change │
│ QQuery 26 │ 76.75 ms │ 75.58 ms │ no change │
│ QQuery 27 │ 5.91 ms │ 5.86 ms │ no change │
│ QQuery 28 │ 69.55 ms │ 72.59 ms │ no change │
│ QQuery 29 │ 144.42 ms │ 144.37 ms │ no change │
│ QQuery 30 │ 32.08 ms │ 32.37 ms │ no change │
│ QQuery 31 │ 124.81 ms │ 126.34 ms │ no change │
│ QQuery 32 │ 21.18 ms │ 21.27 ms │ no change │
│ QQuery 33 │ 38.88 ms │ 39.13 ms │ no change │
│ QQuery 34 │ 10.17 ms │ 10.25 ms │ no change │
│ QQuery 35 │ 81.58 ms │ 81.45 ms │ no change │
│ QQuery 36 │ 5.51 ms │ 5.59 ms │ no change │
│ QQuery 37 │ 6.92 ms │ 6.86 ms │ no change │
│ QQuery 38 │ 76.87 ms │ 77.28 ms │ no change │
│ QQuery 39 │ 88.36 ms │ 87.47 ms │ no change │
│ QQuery 40 │ 22.98 ms │ 22.71 ms │ no change │
│ QQuery 41 │ 12.59 ms │ 12.34 ms │ no change │
│ QQuery 42 │ 23.56 ms │ 23.48 ms │ no change │
│ QQuery 43 │ 4.67 ms │ 4.70 ms │ no change │
│ QQuery 44 │ 8.78 ms │ 8.94 ms │ no change │
│ QQuery 45 │ 26.17 ms │ 25.84 ms │ no change │
│ QQuery 46 │ 12.13 ms │ 12.19 ms │ no change │
│ QQuery 47 │ 217.69 ms │ 219.53 ms │ no change │
│ QQuery 48 │ 121.00 ms │ 121.69 ms │ no change │
│ QQuery 49 │ 103.46 ms │ 103.18 ms │ no change │
│ QQuery 50 │ 123.31 ms │ 125.04 ms │ no change │
│ QQuery 51 │ 98.96 ms │ 100.67 ms │ no change │
│ QQuery 52 │ 23.54 ms │ 24.10 ms │ no change │
│ QQuery 53 │ 29.91 ms │ 30.16 ms │ no change │
│ QQuery 54 │ 29.38 ms │ 28.69 ms │ no change │
│ QQuery 55 │ 22.91 ms │ 23.46 ms │ no change │
│ QQuery 56 │ 34.48 ms │ 35.73 ms │ no change │
│ QQuery 57 │ 138.40 ms │ 140.70 ms │ no change │
│ QQuery 58 │ 72.33 ms │ 73.14 ms │ no change │
│ QQuery 59 │ 79.08 ms │ 80.22 ms │ no change │
│ QQuery 60 │ 38.52 ms │ 39.07 ms │ no change │
│ QQuery 61 │ 11.65 ms │ 11.68 ms │ no change │
│ QQuery 62 │ 41.13 ms │ 41.96 ms │ no change │
│ QQuery 63 │ 30.47 ms │ 30.51 ms │ no change │
│ QQuery 64 │ 680.22 ms │ 693.99 ms │ no change │
│ QQuery 65 │ 151.14 ms │ 153.29 ms │ no change │
│ QQuery 66 │ 65.22 ms │ 66.44 ms │ no change │
│ QQuery 67 │ 251.06 ms │ 257.56 ms │ no change │
│ QQuery 68 │ 12.70 ms │ 12.05 ms │ +1.05x faster │
│ QQuery 69 │ 69.90 ms │ 69.77 ms │ no change │
│ QQuery 70 │ 120.84 ms │ 120.63 ms │ no change │
│ QQuery 71 │ 32.45 ms │ 32.19 ms │ no change │
│ QQuery 72 │ 195.60 ms │ 198.17 ms │ no change │
│ QQuery 73 │ 10.00 ms │ 10.07 ms │ no change │
│ QQuery 74 │ 154.90 ms │ 155.16 ms │ no change │
│ QQuery 75 │ 181.98 ms │ 183.02 ms │ no change │
│ QQuery 76 │ 40.85 ms │ 41.17 ms │ no change │
│ QQuery 77 │ 61.22 ms │ 62.20 ms │ no change │
│ QQuery 78 │ 148.49 ms │ 147.91 ms │ no change │
│ QQuery 79 │ 67.24 ms │ 67.03 ms │ no change │
│ QQuery 80 │ 75.77 ms │ 76.58 ms │ no change │
│ QQuery 81 │ 27.05 ms │ 26.94 ms │ no change │
│ QQuery 82 │ 30.13 ms │ 30.00 ms │ no change │
│ QQuery 83 │ 34.81 ms │ 35.74 ms │ no change │
│ QQuery 84 │ 29.73 ms │ 30.16 ms │ no change │
│ QQuery 85 │ 149.07 ms │ 150.21 ms │ no change │
│ QQuery 86 │ 29.46 ms │ 29.72 ms │ no change │
│ QQuery 87 │ 76.62 ms │ 77.95 ms │ no change │
│ QQuery 88 │ 67.49 ms │ 67.27 ms │ no change │
│ QQuery 89 │ 42.17 ms │ 42.53 ms │ no change │
│ QQuery 90 │ 17.64 ms │ 18.08 ms │ no change │
│ QQuery 91 │ 50.12 ms │ 50.84 ms │ no change │
│ QQuery 92 │ 28.98 ms │ 30.19 ms │ no change │
│ QQuery 93 │ 49.34 ms │ 49.20 ms │ no change │
│ QQuery 94 │ 35.59 ms │ 35.52 ms │ no change │
│ QQuery 95 │ 107.77 ms │ 109.15 ms │ no change │
│ QQuery 96 │ 25.58 ms │ 25.79 ms │ no change │
│ QQuery 97 │ 48.64 ms │ 48.83 ms │ no change │
│ QQuery 98 │ 37.16 ms │ 38.46 ms │ no change │
│ QQuery 99 │ 60.20 ms │ 60.67 ms │ no change │
└───────────┴───────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 8412.90ms │
│ Total Time (parquet-post-scan-filter) │ 8484.86ms │
│ Average Time (HEAD) │ 84.98ms │
│ Average Time (parquet-post-scan-filter) │ 85.71ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 98 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.02 / 5.49 ±0.86 / 7.19 ms │ 5.21 / 5.71 ±0.88 / 7.46 ms │ no change │
│ QQuery 2 │ 43.98 / 44.33 ±0.44 / 45.14 ms │ 44.01 / 44.53 ±0.49 / 45.41 ms │ no change │
│ QQuery 3 │ 26.16 / 26.52 ±0.26 / 26.84 ms │ 26.24 / 26.50 ±0.19 / 26.78 ms │ no change │
│ QQuery 4 │ 376.95 / 380.81 ±3.05 / 384.58 ms │ 381.47 / 384.55 ±2.73 / 389.58 ms │ no change │
│ QQuery 5 │ 71.47 / 71.79 ±0.36 / 72.24 ms │ 71.88 / 72.38 ±0.42 / 72.96 ms │ no change │
│ QQuery 6 │ 36.11 / 36.28 ±0.13 / 36.43 ms │ 36.41 / 36.79 ±0.28 / 37.10 ms │ no change │
│ QQuery 7 │ 110.42 / 114.04 ±4.64 / 122.76 ms │ 111.06 / 114.51 ±4.15 / 122.14 ms │ no change │
│ QQuery 8 │ 14.73 / 14.97 ±0.35 / 15.66 ms │ 14.73 / 15.06 ±0.26 / 15.49 ms │ no change │
│ QQuery 9 │ 109.76 / 116.42 ±5.64 / 124.41 ms │ 105.13 / 109.80 ±4.39 / 118.15 ms │ +1.06x faster │
│ QQuery 10 │ 73.16 / 74.35 ±1.21 / 76.49 ms │ 72.82 / 74.10 ±1.05 / 75.88 ms │ no change │
│ QQuery 11 │ 232.30 / 237.56 ±4.87 / 246.66 ms │ 234.86 / 238.85 ±4.36 / 247.26 ms │ no change │
│ QQuery 12 │ 27.48 / 27.78 ±0.30 / 28.31 ms │ 27.49 / 27.62 ±0.14 / 27.89 ms │ no change │
│ QQuery 13 │ 115.15 / 119.09 ±7.00 / 133.07 ms │ 115.53 / 118.97 ±5.68 / 130.31 ms │ no change │
│ QQuery 14 │ 419.55 / 425.44 ±5.73 / 435.27 ms │ 423.48 / 425.62 ±2.31 / 429.42 ms │ no change │
│ QQuery 15 │ 23.02 / 23.19 ±0.12 / 23.34 ms │ 23.23 / 24.94 ±2.70 / 30.31 ms │ 1.08x slower │
│ QQuery 16 │ 6.16 / 6.25 ±0.13 / 6.50 ms │ 6.04 / 6.18 ±0.18 / 6.54 ms │ no change │
│ QQuery 17 │ 113.28 / 116.42 ±3.49 / 122.75 ms │ 113.52 / 116.83 ±5.25 / 127.27 ms │ no change │
│ QQuery 18 │ 185.61 / 190.33 ±3.28 / 195.21 ms │ 188.00 / 191.18 ±3.27 / 197.12 ms │ no change │
│ QQuery 19 │ 39.25 / 39.87 ±0.44 / 40.42 ms │ 39.83 / 40.41 ±0.44 / 40.88 ms │ no change │
│ QQuery 20 │ 30.41 / 30.65 ±0.22 / 30.91 ms │ 30.35 / 31.06 ±0.76 / 32.37 ms │ no change │
│ QQuery 21 │ 18.71 / 18.93 ±0.16 / 19.16 ms │ 18.98 / 20.04 ±1.69 / 23.40 ms │ 1.06x slower │
│ QQuery 22 │ 60.42 / 61.52 ±0.79 / 62.77 ms │ 61.52 / 62.37 ±0.77 / 63.60 ms │ no change │
│ QQuery 23 │ 374.48 / 379.62 ±4.27 / 385.26 ms │ 380.79 / 383.92 ±3.87 / 390.31 ms │ no change │
│ QQuery 24 │ 407.49 / 412.17 ±5.94 / 423.61 ms │ 406.52 / 409.90 ±2.74 / 414.68 ms │ no change │
│ QQuery 25 │ 114.63 / 117.24 ±4.26 / 125.68 ms │ 115.11 / 118.06 ±5.41 / 128.87 ms │ no change │
│ QQuery 26 │ 76.75 / 79.51 ±2.46 / 82.64 ms │ 75.58 / 76.99 ±1.00 / 78.60 ms │ no change │
│ QQuery 27 │ 5.91 / 6.14 ±0.15 / 6.39 ms │ 5.86 / 6.04 ±0.18 / 6.39 ms │ no change │
│ QQuery 28 │ 69.55 / 73.68 ±3.00 / 78.63 ms │ 72.59 / 73.16 ±0.44 / 73.88 ms │ no change │
│ QQuery 29 │ 144.42 / 146.85 ±3.84 / 154.50 ms │ 144.37 / 145.76 ±1.02 / 147.38 ms │ no change │
│ QQuery 30 │ 32.08 / 34.55 ±3.62 / 41.65 ms │ 32.37 / 35.27 ±4.13 / 43.41 ms │ no change │
│ QQuery 31 │ 124.81 / 126.84 ±1.80 / 130.14 ms │ 126.34 / 127.59 ±1.10 / 129.01 ms │ no change │
│ QQuery 32 │ 21.18 / 21.38 ±0.16 / 21.61 ms │ 21.27 / 21.62 ±0.29 / 22.01 ms │ no change │
│ QQuery 33 │ 38.88 / 40.13 ±1.73 / 43.52 ms │ 39.13 / 41.97 ±4.58 / 51.09 ms │ no change │
│ QQuery 34 │ 10.17 / 10.42 ±0.25 / 10.85 ms │ 10.25 / 10.67 ±0.26 / 10.96 ms │ no change │
│ QQuery 35 │ 81.58 / 82.08 ±0.39 / 82.62 ms │ 81.45 / 82.12 ±0.47 / 82.90 ms │ no change │
│ QQuery 36 │ 5.51 / 5.67 ±0.23 / 6.11 ms │ 5.59 / 5.72 ±0.17 / 6.04 ms │ no change │
│ QQuery 37 │ 6.92 / 6.97 ±0.07 / 7.11 ms │ 6.86 / 6.95 ±0.07 / 7.05 ms │ no change │
│ QQuery 38 │ 76.87 / 77.26 ±0.30 / 77.78 ms │ 77.28 / 78.49 ±0.73 / 79.46 ms │ no change │
│ QQuery 39 │ 88.36 / 90.20 ±2.36 / 94.80 ms │ 87.47 / 90.30 ±3.95 / 98.15 ms │ no change │
│ QQuery 40 │ 22.98 / 23.32 ±0.37 / 23.88 ms │ 22.71 / 23.07 ±0.25 / 23.42 ms │ no change │
│ QQuery 41 │ 12.59 / 12.81 ±0.18 / 13.14 ms │ 12.34 / 12.54 ±0.15 / 12.80 ms │ no change │
│ QQuery 42 │ 23.56 / 23.80 ±0.24 / 24.20 ms │ 23.48 / 24.26 ±0.91 / 26.04 ms │ no change │
│ QQuery 43 │ 4.67 / 4.78 ±0.20 / 5.18 ms │ 4.70 / 4.78 ±0.11 / 4.99 ms │ no change │
│ QQuery 44 │ 8.78 / 8.96 ±0.15 / 9.21 ms │ 8.94 / 9.12 ±0.10 / 9.22 ms │ no change │
│ QQuery 45 │ 26.17 / 26.99 ±1.11 / 29.19 ms │ 25.84 / 26.22 ±0.26 / 26.55 ms │ no change │
│ QQuery 46 │ 12.13 / 12.50 ±0.31 / 12.97 ms │ 12.19 / 13.89 ±2.96 / 19.80 ms │ 1.11x slower │
│ QQuery 47 │ 217.69 / 224.40 ±7.75 / 238.54 ms │ 219.53 / 223.12 ±3.22 / 226.76 ms │ no change │
│ QQuery 48 │ 121.00 / 123.80 ±3.40 / 130.30 ms │ 121.69 / 124.54 ±2.50 / 128.95 ms │ no change │
│ QQuery 49 │ 103.46 / 106.24 ±2.91 / 111.72 ms │ 103.18 / 105.14 ±1.67 / 107.43 ms │ no change │
│ QQuery 50 │ 123.31 / 124.34 ±1.20 / 126.60 ms │ 125.04 / 128.19 ±3.85 / 135.51 ms │ no change │
│ QQuery 51 │ 98.96 / 102.76 ±5.07 / 112.68 ms │ 100.67 / 104.21 ±3.77 / 110.82 ms │ no change │
│ QQuery 52 │ 23.54 / 23.72 ±0.19 / 24.07 ms │ 24.10 / 24.41 ±0.33 / 25.02 ms │ no change │
│ QQuery 53 │ 29.91 / 30.03 ±0.12 / 30.24 ms │ 30.16 / 31.08 ±1.39 / 33.85 ms │ no change │
│ QQuery 54 │ 29.38 / 30.90 ±1.08 / 32.43 ms │ 28.69 / 29.94 ±0.76 / 30.92 ms │ no change │
│ QQuery 55 │ 22.91 / 23.09 ±0.27 / 23.62 ms │ 23.46 / 23.60 ±0.13 / 23.79 ms │ no change │
│ QQuery 56 │ 34.48 / 35.39 ±0.92 / 37.01 ms │ 35.73 / 38.28 ±3.71 / 45.61 ms │ 1.08x slower │
│ QQuery 57 │ 138.40 / 139.05 ±0.57 / 140.07 ms │ 140.70 / 142.41 ±1.23 / 144.19 ms │ no change │
│ QQuery 58 │ 72.33 / 74.31 ±1.49 / 76.27 ms │ 73.14 / 74.72 ±1.24 / 76.39 ms │ no change │
│ QQuery 59 │ 79.08 / 80.45 ±0.86 / 81.36 ms │ 80.22 / 80.60 ±0.34 / 81.21 ms │ no change │
│ QQuery 60 │ 38.52 / 38.87 ±0.20 / 39.08 ms │ 39.07 / 39.39 ±0.45 / 40.26 ms │ no change │
│ QQuery 61 │ 11.65 / 11.84 ±0.23 / 12.27 ms │ 11.68 / 11.90 ±0.23 / 12.35 ms │ no change │
│ QQuery 62 │ 41.13 / 44.54 ±5.56 / 55.61 ms │ 41.96 / 45.75 ±5.41 / 56.50 ms │ no change │
│ QQuery 63 │ 30.47 / 31.34 ±0.95 / 33.18 ms │ 30.51 / 31.65 ±1.05 / 33.54 ms │ no change │
│ QQuery 64 │ 680.22 / 685.25 ±2.78 / 688.20 ms │ 693.99 / 702.90 ±8.88 / 719.89 ms │ no change │
│ QQuery 65 │ 151.14 / 154.65 ±3.45 / 160.09 ms │ 153.29 / 157.95 ±3.25 / 163.07 ms │ no change │
│ QQuery 66 │ 65.22 / 65.95 ±0.62 / 66.94 ms │ 66.44 / 67.65 ±0.96 / 69.30 ms │ no change │
│ QQuery 67 │ 251.06 / 255.64 ±2.71 / 259.11 ms │ 257.56 / 262.75 ±5.28 / 272.25 ms │ no change │
│ QQuery 68 │ 12.70 / 15.67 ±5.01 / 25.64 ms │ 12.05 / 12.31 ±0.30 / 12.88 ms │ +1.27x faster │
│ QQuery 69 │ 69.90 / 74.38 ±3.90 / 81.15 ms │ 69.77 / 70.39 ±0.41 / 70.89 ms │ +1.06x faster │
│ QQuery 70 │ 120.84 / 124.48 ±4.05 / 132.04 ms │ 120.63 / 126.10 ±4.68 / 132.21 ms │ no change │
│ QQuery 71 │ 32.45 / 34.84 ±2.57 / 39.66 ms │ 32.19 / 32.65 ±0.27 / 33.02 ms │ +1.07x faster │
│ QQuery 72 │ 195.60 / 197.32 ±1.46 / 199.73 ms │ 198.17 / 204.37 ±4.78 / 211.80 ms │ no change │
│ QQuery 73 │ 10.00 / 11.65 ±2.99 / 17.63 ms │ 10.07 / 10.26 ±0.15 / 10.53 ms │ +1.14x faster │
│ QQuery 74 │ 154.90 / 156.08 ±0.92 / 157.16 ms │ 155.16 / 158.96 ±4.59 / 167.26 ms │ no change │
│ QQuery 75 │ 181.98 / 182.99 ±1.31 / 185.47 ms │ 183.02 / 188.49 ±4.39 / 196.10 ms │ no change │
│ QQuery 76 │ 40.85 / 43.43 ±3.61 / 50.44 ms │ 41.17 / 41.60 ±0.27 / 41.98 ms │ no change │
│ QQuery 77 │ 61.22 / 61.71 ±0.64 / 62.91 ms │ 62.20 / 62.47 ±0.22 / 62.76 ms │ no change │
│ QQuery 78 │ 148.49 / 152.24 ±4.92 / 161.84 ms │ 147.91 / 150.22 ±1.76 / 152.83 ms │ no change │
│ QQuery 79 │ 67.24 / 68.28 ±1.63 / 71.53 ms │ 67.03 / 67.94 ±1.35 / 70.62 ms │ no change │
│ QQuery 80 │ 75.77 / 76.93 ±0.75 / 77.70 ms │ 76.58 / 78.42 ±1.71 / 81.54 ms │ no change │
│ QQuery 81 │ 27.05 / 29.58 ±4.43 / 38.44 ms │ 26.94 / 27.19 ±0.27 / 27.67 ms │ +1.09x faster │
│ QQuery 82 │ 30.13 / 30.54 ±0.36 / 31.12 ms │ 30.00 / 30.54 ±0.44 / 31.25 ms │ no change │
│ QQuery 83 │ 34.81 / 35.71 ±0.77 / 37.09 ms │ 35.74 / 36.12 ±0.34 / 36.73 ms │ no change │
│ QQuery 84 │ 29.73 / 29.98 ±0.19 / 30.28 ms │ 30.16 / 30.95 ±1.35 / 33.65 ms │ no change │
│ QQuery 85 │ 149.07 / 151.07 ±2.05 / 154.43 ms │ 150.21 / 153.96 ±5.22 / 164.20 ms │ no change │
│ QQuery 86 │ 29.46 / 29.84 ±0.28 / 30.32 ms │ 29.72 / 30.18 ±0.25 / 30.48 ms │ no change │
│ QQuery 87 │ 76.62 / 77.38 ±0.48 / 78.07 ms │ 77.95 / 81.28 ±4.04 / 88.82 ms │ 1.05x slower │
│ QQuery 88 │ 67.49 / 70.34 ±3.84 / 77.88 ms │ 67.27 / 70.68 ±3.12 / 75.80 ms │ no change │
│ QQuery 89 │ 42.17 / 43.46 ±1.70 / 46.81 ms │ 42.53 / 42.85 ±0.25 / 43.18 ms │ no change │
│ QQuery 90 │ 17.64 / 17.76 ±0.17 / 18.10 ms │ 18.08 / 19.08 ±1.50 / 22.04 ms │ 1.07x slower │
│ QQuery 91 │ 50.12 / 51.15 ±1.12 / 53.17 ms │ 50.84 / 55.03 ±4.35 / 62.75 ms │ 1.08x slower │
│ QQuery 92 │ 28.98 / 29.54 ±0.43 / 30.00 ms │ 30.19 / 30.81 ±0.43 / 31.24 ms │ no change │
│ QQuery 93 │ 49.34 / 53.11 ±6.37 / 65.80 ms │ 49.20 / 50.03 ±0.90 / 51.77 ms │ +1.06x faster │
│ QQuery 94 │ 35.59 / 37.47 ±2.10 / 41.15 ms │ 35.52 / 36.39 ±0.51 / 37.14 ms │ no change │
│ QQuery 95 │ 107.77 / 108.71 ±0.73 / 109.75 ms │ 109.15 / 112.38 ±3.59 / 119.22 ms │ no change │
│ QQuery 96 │ 25.58 / 27.71 ±2.32 / 31.86 ms │ 25.79 / 26.46 ±0.61 / 27.43 ms │ no change │
│ QQuery 97 │ 48.64 / 49.07 ±0.43 / 49.82 ms │ 48.83 / 49.83 ±0.65 / 50.88 ms │ no change │
│ QQuery 98 │ 37.16 / 37.83 ±0.55 / 38.52 ms │ 38.46 / 39.07 ±0.62 / 40.16 ms │ no change │
│ QQuery 99 │ 60.20 / 60.44 ±0.22 / 60.84 ms │ 60.67 / 62.56 ±2.22 / 66.39 ms │ no change │
└───────────┴───────────────────────────────────┴───────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 8583.19ms │
│ Total Time (parquet-post-scan-filter) │ 8656.13ms │
│ Average Time (HEAD) │ 86.70ms │
│ Average Time (parquet-post-scan-filter) │ 87.44ms │
│ Queries Faster │ 7 │
│ Queries Slower │ 7 │
│ Queries with No Change │ 85 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time45.0s
Peak memory1.5 GiB
Avg memory1.1 GiB
CPU user121.8s
CPU sys5.6s
Peak spill0 B

tpcds — branch

MetricValue
Wall time45.0s
Peak memory1.7 GiB
Avg memory1.1 GiB
CPU user122.1s
CPU sys5.9s
Peak spill0 B

File an issue against this benchmark runner

adriangband others added 3 commits August 10, 2026 10:56
…ltering
`PostScanFilter::filter` ran `filter_record_batch` over the whole decoded
batch and only then applied the projector, so every column the decoder
mask was widened for — filter-only columns like TPC-H's `l_shipdate` —
was pushed through the filter kernel just to be discarded immediately
afterwards.
`FilterExec::filter_and_project` does it the other way round: project
first (a cheap `Arc` reslice), then filter only what survives into the
output. Match that here.
`PostScanFilter::evaluate` now returns the selection mask instead of an
already-filtered batch, and `DecoderProjection::narrow` drops the
filter-only columns before the caller applies it. The projector is
rebased onto the narrowed schema at construction time, so the runtime
cost is one `RecordBatch::project` per batch.
Null mask entries are normalized with `prep_null_mask_filter` so the
rows-matched / rows-pruned metrics still count a NULL predicate result
as pruned, matching `filter_record_batch`'s own treatment.
Narrowing is skipped entirely when the projector already reads every
stream column, which is always the case without a post-scan filter — that
path keeps its zero-extra-work guarantee.
Measured on TPC-H SF=1 q3 (lineitem scan, pushdown_filters=false, dynamic
filter pushdown off to isolate this): 141ms -> 126ms of post-scan filter
time, matching main's FilterExec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…tch_size
The in-scan post-scan filter emitted one batch per decoded batch. With a
selective predicate that means slivers: TPC-H SF=1 q3's lineitem scan
produced 30.52K rows spread over 742 batches — about 41 rows each — and
every operator above the scan paid per-batch overhead on all 742.
`FilterExec` runs its output through a coalescer for exactly this reason.
Do the same here: survivors are pushed into an `arrow` `BatchCoalescer`
built with the scan's `batch_size`, and the stream hands out batches only
once the coalescer has assembled a full one, flushing the remainder at
end of input.
The coalescer buffers *narrowed, pre-projection* batches, so the
projection expressions are also evaluated once per full-size batch
instead of once per sliver.
The coalescer is installed only when the file has a post-scan filter.
Without one the decoder's batches are already the right shape and
routing them through a coalescer would add a copy for nothing.
The stream-level LIMIT moves to the coalescer's output, where it still
counts rows actually emitted. When the limit is exhausted any buffered
remainder is dropped rather than flushed.
One `.slt` metric moves: a 10-row result's `output_bytes` goes 80.0 B ->
64.0 KB, because the coalescer allocates at the target batch size. That
is not new behaviour — main's `FilterExec` reports 64.0 KB for a 27-row
result through the same mechanism.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…filter
`PostScanFilter` conjoined its conjuncts into one `BinaryExpr` `AND` and
evaluated it over the whole decoded batch. A fused `AND` never compacts
between conjuncts, so every conjunct ran on ~every decoded row — and with
`pushdown_filters = false` the *whole* predicate lands here, so an
expensive dynamic filter (a `CASE` over per-partition hash-table probes)
was evaluated on all 6.00 M decoded lineitem rows in TPC-H q3 even though
`l_shipdate > '1995-03-15'` had already rejected 46% of them.
Keep the conjuncts split and run them through a compact-once loop
instead: evaluate a conjunct, `AND` its mask into the accumulator, and
physically compact the working batch to the survivors once a conjunct
proves selective enough. This is the post-scan equivalent of what
arrow-rs already does for the `RowFilter` path, where each conjunct is
its own `ArrowPredicate` applied against an accumulating `RowSelection`.
`DecoderProjection::narrow` used to run before the filter, which is no
longer safe: with several conjuncts, a later one may need a column the
projector does not read. `evaluate` now takes the batch by value and
returns the working batch plus a residual mask, so the caller narrows
after the loop and before applying that mask — the filter kernel still
never touches a column that is about to be dropped, and the last
conjunct never compacts (its mask goes to the caller instead).
Metrics and semantics are unchanged: `post_scan_rows_pruned` stays
"rows in minus final survivors", and a NULL predicate result still drops
the row.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5245659781-1526-wxtrr 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (bd6ee28) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5245659781-1527-7kbtr 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (bd6ee28) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpch

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5245659781-1525-fwqnj 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (bd6ee28) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitioned

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (bd6ee28) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.81 ms │ 39.58 ms │ no change │
│ QQuery 2 │ 19.14 ms │ 19.53 ms │ no change │
│ QQuery 3 │ 30.45 ms │ 30.31 ms │ no change │
│ QQuery 4 │ 17.10 ms │ 17.44 ms │ no change │
│ QQuery 5 │ 37.29 ms │ 37.54 ms │ no change │
│ QQuery 6 │ 16.11 ms │ 14.77 ms │ +1.09x faster │
│ QQuery 7 │ 44.81 ms │ 44.65 ms │ no change │
│ QQuery 8 │ 42.01 ms │ 41.71 ms │ no change │
│ QQuery 9 │ 49.55 ms │ 49.97 ms │ no change │
│ QQuery 10 │ 41.63 ms │ 41.75 ms │ no change │
│ QQuery 11 │ 13.55 ms │ 13.54 ms │ no change │
│ QQuery 12 │ 23.85 ms │ 21.59 ms │ +1.10x faster │
│ QQuery 13 │ 32.50 ms │ 32.64 ms │ no change │
│ QQuery 14 │ 23.13 ms │ 23.52 ms │ no change │
│ QQuery 15 │ 30.43 ms │ 31.51 ms │ no change │
│ QQuery 16 │ 13.51 ms │ 13.10 ms │ no change │
│ QQuery 17 │ 68.64 ms │ 69.45 ms │ no change │
│ QQuery 18 │ 59.12 ms │ 57.36 ms │ no change │
│ QQuery 19 │ 32.49 ms │ 30.03 ms │ +1.08x faster │
│ QQuery 20 │ 31.08 ms │ 32.33 ms │ no change │
│ QQuery 21 │ 54.30 ms │ 55.32 ms │ no change │
│ QQuery 22 │ 14.31 ms │ 13.99 ms │ no change │
└───────────┴──────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 733.79ms │
│ Total Time (parquet-post-scan-filter) │ 731.62ms │
│ Average Time (HEAD) │ 33.35ms │
│ Average Time (parquet-post-scan-filter) │ 33.26ms │
│ Queries Faster │ 3 │
│ Queries Slower │ 0 │
│ Queries with No Change │ 19 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.81 / 39.63 ±0.77 / 41.03 ms │ 39.58 / 40.33 ±0.98 / 42.25 ms │ no change │
│ QQuery 2 │ 19.14 / 19.69 ±0.36 / 20.16 ms │ 19.53 / 19.76 ±0.21 / 20.07 ms │ no change │
│ QQuery 3 │ 30.45 / 32.77 ±1.17 / 33.56 ms │ 30.31 / 31.54 ±1.38 / 33.97 ms │ no change │
│ QQuery 4 │ 17.10 / 17.33 ±0.15 / 17.55 ms │ 17.44 / 17.59 ±0.17 / 17.87 ms │ no change │
│ QQuery 5 │ 37.29 / 37.96 ±0.92 / 39.74 ms │ 37.54 / 40.57 ±1.90 / 43.46 ms │ 1.07x slower │
│ QQuery 6 │ 16.11 / 16.82 ±0.94 / 18.66 ms │ 14.77 / 15.26 ±0.80 / 16.85 ms │ +1.10x faster │
│ QQuery 7 │ 44.81 / 46.88 ±2.04 / 50.16 ms │ 44.65 / 46.11 ±1.10 / 47.45 ms │ no change │
│ QQuery 8 │ 42.01 / 42.60 ±0.46 / 43.35 ms │ 41.71 / 42.01 ±0.23 / 42.32 ms │ no change │
│ QQuery 9 │ 49.55 / 51.16 ±2.17 / 55.45 ms │ 49.97 / 50.77 ±1.08 / 52.84 ms │ no change │
│ QQuery 10 │ 41.63 / 41.84 ±0.15 / 42.04 ms │ 41.75 / 41.99 ±0.17 / 42.24 ms │ no change │
│ QQuery 11 │ 13.55 / 14.10 ±0.64 / 15.05 ms │ 13.54 / 13.68 ±0.10 / 13.81 ms │ no change │
│ QQuery 12 │ 23.85 / 24.24 ±0.25 / 24.56 ms │ 21.59 / 21.75 ±0.10 / 21.87 ms │ +1.11x faster │
│ QQuery 13 │ 32.50 / 35.18 ±2.19 / 37.78 ms │ 32.64 / 34.89 ±1.80 / 37.98 ms │ no change │
│ QQuery 14 │ 23.13 / 23.77 ±0.45 / 24.48 ms │ 23.52 / 23.80 ±0.15 / 23.97 ms │ no change │
│ QQuery 15 │ 30.43 / 31.16 ±1.19 / 33.53 ms │ 31.51 / 31.73 ±0.15 / 31.95 ms │ no change │
│ QQuery 16 │ 13.51 / 13.89 ±0.20 / 14.07 ms │ 13.10 / 13.38 ±0.19 / 13.64 ms │ no change │
│ QQuery 17 │ 68.64 / 69.57 ±0.69 / 70.69 ms │ 69.45 / 71.02 ±0.88 / 71.95 ms │ no change │
│ QQuery 18 │ 59.12 / 60.06 ±1.04 / 62.07 ms │ 57.36 / 59.32 ±1.39 / 61.43 ms │ no change │
│ QQuery 19 │ 32.49 / 32.82 ±0.27 / 33.32 ms │ 30.03 / 30.98 ±1.42 / 33.78 ms │ +1.06x faster │
│ QQuery 20 │ 31.08 / 31.58 ±0.32 / 31.96 ms │ 32.33 / 32.61 ±0.35 / 33.23 ms │ no change │
│ QQuery 21 │ 54.30 / 56.68 ±1.50 / 58.12 ms │ 55.32 / 56.64 ±1.24 / 58.20 ms │ no change │
│ QQuery 22 │ 14.31 / 14.41 ±0.13 / 14.67 ms │ 13.99 / 14.12 ±0.10 / 14.27 ms │ no change │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 754.13ms │
│ Total Time (parquet-post-scan-filter) │ 749.85ms │
│ Average Time (HEAD) │ 34.28ms │
│ Average Time (parquet-post-scan-filter) │ 34.08ms │
│ Queries Faster │ 3 │
│ Queries Slower │ 1 │
│ Queries with No Change │ 18 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory1.2 GiB
Avg memory516.3 MiB
CPU user21.6s
CPU sys1.6s
Peak spill0 B

tpch — branch

MetricValue
Wall time5.0s
Peak memory1.2 GiB
Avg memory522.1 MiB
CPU user21.4s
CPU sys1.6s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (bd6ee28) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.55 ms │ 5.10 ms │ +1.09x faster │
│ QQuery 2 │ 80.68 ms │ 80.13 ms │ no change │
│ QQuery 3 │ 28.34 ms │ 29.53 ms │ no change │
│ QQuery 4 │ 465.61 ms │ 479.02 ms │ no change │
│ QQuery 5 │ 51.53 ms │ 53.00 ms │ no change │
│ QQuery 6 │ 35.62 ms │ 35.55 ms │ no change │
│ QQuery 7 │ 93.11 ms │ 93.43 ms │ no change │
│ QQuery 8 │ 36.40 ms │ 37.71 ms │ no change │
│ QQuery 9 │ 51.58 ms │ 53.93 ms │ no change │
│ QQuery 10 │ 62.37 ms │ 64.26 ms │ no change │
│ QQuery 11 │ 292.44 ms │ 295.40 ms │ no change │
│ QQuery 12 │ 28.13 ms │ 30.25 ms │ 1.08x slower │
│ QQuery 13 │ 117.15 ms │ 116.73 ms │ no change │
│ QQuery 14 │ 416.77 ms │ 421.07 ms │ no change │
│ QQuery 15 │ 56.63 ms │ 56.80 ms │ no change │
│ QQuery 16 │ 6.73 ms │ 6.10 ms │ +1.10x faster │
│ QQuery 17 │ 78.89 ms │ 83.03 ms │ 1.05x slower │
│ QQuery 18 │ 121.69 ms │ 123.09 ms │ no change │
│ QQuery 19 │ 40.72 ms │ 41.80 ms │ no change │
│ QQuery 20 │ 34.92 ms │ 36.94 ms │ 1.06x slower │
│ QQuery 21 │ 16.99 ms │ 17.90 ms │ 1.05x slower │
│ QQuery 22 │ 62.85 ms │ 63.56 ms │ no change │
│ QQuery 23 │ 337.48 ms │ 342.47 ms │ no change │
│ QQuery 24 │ 220.21 ms │ 225.88 ms │ no change │
│ QQuery 25 │ 108.85 ms │ 110.52 ms │ no change │
│ QQuery 26 │ 56.82 ms │ 56.50 ms │ no change │
│ QQuery 27 │ 6.24 ms │ 5.92 ms │ +1.06x faster │
│ QQuery 28 │ 60.49 ms │ 56.31 ms │ +1.07x faster │
│ QQuery 29 │ 95.91 ms │ 99.88 ms │ no change │
│ QQuery 30 │ 31.90 ms │ 31.95 ms │ no change │
│ QQuery 31 │ 109.98 ms │ 112.84 ms │ no change │
│ QQuery 32 │ 19.80 ms │ 21.80 ms │ 1.10x slower │
│ QQuery 33 │ 37.46 ms │ 38.83 ms │ no change │
│ QQuery 34 │ 9.79 ms │ 10.20 ms │ no change │
│ QQuery 35 │ 71.80 ms │ 74.52 ms │ no change │
│ QQuery 36 │ 5.83 ms │ 5.63 ms │ no change │
│ QQuery 37 │ 6.79 ms │ 8.48 ms │ 1.25x slower │
│ QQuery 38 │ 61.78 ms │ 67.83 ms │ 1.10x slower │
│ QQuery 39 │ 89.22 ms │ 93.15 ms │ no change │
│ QQuery 40 │ 22.75 ms │ 24.15 ms │ 1.06x slower │
│ QQuery 41 │ 11.25 ms │ 12.11 ms │ 1.08x slower │
│ QQuery 42 │ 23.91 ms │ 24.05 ms │ no change │
│ QQuery 43 │ 5.02 ms │ 4.58 ms │ +1.10x faster │
│ QQuery 44 │ 9.24 ms │ 8.98 ms │ no change │
│ QQuery 45 │ 37.18 ms │ 38.80 ms │ no change │
│ QQuery 46 │ 11.72 ms │ 12.06 ms │ no change │
│ QQuery 47 │ 221.28 ms │ 224.98 ms │ no change │
│ QQuery 48 │ 94.50 ms │ 96.22 ms │ no change │
│ QQuery 49 │ 75.88 ms │ 74.69 ms │ no change │
│ QQuery 50 │ 58.46 ms │ 59.01 ms │ no change │
│ QQuery 51 │ 91.51 ms │ 95.19 ms │ no change │
│ QQuery 52 │ 23.67 ms │ 23.99 ms │ no change │
│ QQuery 53 │ 28.66 ms │ 31.17 ms │ 1.09x slower │
│ QQuery 54 │ 53.65 ms │ 54.48 ms │ no change │
│ QQuery 55 │ 23.03 ms │ 24.15 ms │ no change │
│ QQuery 56 │ 38.52 ms │ 38.25 ms │ no change │
│ QQuery 57 │ 173.48 ms │ 177.37 ms │ no change │
│ QQuery 58 │ 111.78 ms │ 115.88 ms │ no change │
│ QQuery 59 │ 117.18 ms │ 116.98 ms │ no change │
│ QQuery 60 │ 38.78 ms │ 38.86 ms │ no change │
│ QQuery 61 │ 12.33 ms │ 11.46 ms │ +1.08x faster │
│ QQuery 62 │ 45.90 ms │ 46.79 ms │ no change │
│ QQuery 63 │ 28.72 ms │ 31.44 ms │ 1.09x slower │
│ QQuery 64 │ 402.58 ms │ 407.80 ms │ no change │
│ QQuery 65 │ 122.80 ms │ 125.17 ms │ no change │
│ QQuery 66 │ 80.44 ms │ 81.78 ms │ no change │
│ QQuery 67 │ 238.05 ms │ 237.68 ms │ no change │
│ QQuery 68 │ 12.00 ms │ 11.97 ms │ no change │
│ QQuery 69 │ 56.63 ms │ 58.82 ms │ no change │
│ QQuery 70 │ 107.46 ms │ 108.95 ms │ no change │
│ QQuery 71 │ 34.92 ms │ 34.47 ms │ no change │
│ QQuery 72 │ 1926.54 ms │ 1978.84 ms │ no change │
│ QQuery 73 │ 9.81 ms │ 9.91 ms │ no change │
│ QQuery 74 │ 166.36 ms │ 170.54 ms │ no change │
│ QQuery 75 │ 147.20 ms │ 150.99 ms │ no change │
│ QQuery 76 │ 34.95 ms │ 34.31 ms │ no change │
│ QQuery 77 │ 60.49 ms │ 62.33 ms │ no change │
│ QQuery 78 │ 193.83 ms │ 198.46 ms │ no change │
│ QQuery 79 │ 66.01 ms │ 68.34 ms │ no change │
│ QQuery 80 │ 98.24 ms │ 100.46 ms │ no change │
│ QQuery 81 │ 25.40 ms │ 25.17 ms │ no change │
│ QQuery 82 │ 16.32 ms │ 18.43 ms │ 1.13x slower │
│ QQuery 83 │ 39.12 ms │ 40.75 ms │ no change │
│ QQuery 84 │ 29.57 ms │ 28.98 ms │ no change │
│ QQuery 85 │ 106.23 ms │ 106.40 ms │ no change │
│ QQuery 86 │ 25.03 ms │ 26.70 ms │ 1.07x slower │
│ QQuery 87 │ 61.20 ms │ 68.30 ms │ 1.12x slower │
│ QQuery 88 │ 62.42 ms │ 60.21 ms │ no change │
│ QQuery 89 │ 35.29 ms │ 37.07 ms │ 1.05x slower │
│ QQuery 90 │ 16.80 ms │ 16.58 ms │ no change │
│ QQuery 91 │ 45.39 ms │ 45.00 ms │ no change │
│ QQuery 92 │ 28.80 ms │ 31.26 ms │ 1.09x slower │
│ QQuery 93 │ 49.16 ms │ 50.14 ms │ no change │
│ QQuery 94 │ 36.74 ms │ 38.80 ms │ 1.06x slower │
│ QQuery 95 │ 79.23 ms │ 81.90 ms │ no change │
│ QQuery 96 │ 23.62 ms │ 23.80 ms │ no change │
│ QQuery 97 │ 46.70 ms │ 47.61 ms │ no change │
│ QQuery 98 │ 42.71 ms │ 43.88 ms │ no change │
│ QQuery 99 │ 70.16 ms │ 70.67 ms │ no change │
└───────────┴────────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9471.62ms │
│ Total Time (parquet-post-scan-filter) │ 9675.15ms │
│ Average Time (HEAD) │ 95.67ms │
│ Average Time (parquet-post-scan-filter) │ 97.73ms │
│ Queries Faster │ 6 │
│ Queries Slower │ 17 │
│ Queries with No Change │ 76 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.55 / 6.04 ±0.92 / 7.87 ms │ 5.10 / 5.56 ±0.87 / 7.30 ms │ +1.09x faster │
│ QQuery 2 │ 80.68 / 80.95 ±0.21 / 81.20 ms │ 80.13 / 80.61 ±0.33 / 81.13 ms │ no change │
│ QQuery 3 │ 28.34 / 28.95 ±0.38 / 29.39 ms │ 29.53 / 29.83 ±0.18 / 30.10 ms │ no change │
│ QQuery 4 │ 465.61 / 476.36 ±12.25 / 500.35 ms │ 479.02 / 481.95 ±2.05 / 485.39 ms │ no change │
│ QQuery 5 │ 51.53 / 54.43 ±3.78 / 61.60 ms │ 53.00 / 55.15 ±3.41 / 61.94 ms │ no change │
│ QQuery 6 │ 35.62 / 36.25 ±0.45 / 36.70 ms │ 35.55 / 35.97 ±0.25 / 36.29 ms │ no change │
│ QQuery 7 │ 93.11 / 94.00 ±0.68 / 95.09 ms │ 93.43 / 94.18 ±0.64 / 95.22 ms │ no change │
│ QQuery 8 │ 36.40 / 37.00 ±0.60 / 37.91 ms │ 37.71 / 39.96 ±3.08 / 45.95 ms │ 1.08x slower │
│ QQuery 9 │ 51.58 / 54.79 ±1.82 / 57.03 ms │ 53.93 / 55.96 ±1.68 / 58.78 ms │ no change │
│ QQuery 10 │ 62.37 / 62.50 ±0.17 / 62.84 ms │ 64.26 / 64.57 ±0.21 / 64.91 ms │ no change │
│ QQuery 11 │ 292.44 / 294.46 ±2.38 / 299.05 ms │ 295.40 / 299.37 ±2.95 / 302.61 ms │ no change │
│ QQuery 12 │ 28.13 / 28.58 ±0.43 / 29.31 ms │ 30.25 / 30.79 ±0.33 / 31.26 ms │ 1.08x slower │
│ QQuery 13 │ 117.15 / 117.86 ±0.63 / 118.93 ms │ 116.73 / 117.14 ±0.42 / 117.88 ms │ no change │
│ QQuery 14 │ 416.77 / 420.26 ±3.69 / 426.83 ms │ 421.07 / 425.46 ±4.61 / 432.26 ms │ no change │
│ QQuery 15 │ 56.63 / 57.39 ±0.64 / 58.24 ms │ 56.80 / 57.82 ±0.71 / 58.75 ms │ no change │
│ QQuery 16 │ 6.73 / 7.06 ±0.32 / 7.61 ms │ 6.10 / 6.31 ±0.28 / 6.85 ms │ +1.12x faster │
│ QQuery 17 │ 78.89 / 79.60 ±0.88 / 81.14 ms │ 83.03 / 84.51 ±1.84 / 88.11 ms │ 1.06x slower │
│ QQuery 18 │ 121.69 / 123.26 ±1.99 / 126.96 ms │ 123.09 / 124.33 ±1.52 / 127.18 ms │ no change │
│ QQuery 19 │ 40.72 / 41.10 ±0.50 / 42.07 ms │ 41.80 / 42.11 ±0.27 / 42.41 ms │ no change │
│ QQuery 20 │ 34.92 / 35.53 ±0.59 / 36.65 ms │ 36.94 / 38.04 ±0.78 / 39.14 ms │ 1.07x slower │
│ QQuery 21 │ 16.99 / 17.88 ±0.97 / 19.76 ms │ 17.90 / 18.44 ±0.47 / 19.26 ms │ no change │
│ QQuery 22 │ 62.85 / 63.72 ±0.81 / 65.21 ms │ 63.56 / 64.31 ±0.55 / 65.24 ms │ no change │
│ QQuery 23 │ 337.48 / 342.29 ±3.84 / 348.23 ms │ 342.47 / 346.61 ±4.03 / 353.39 ms │ no change │
│ QQuery 24 │ 220.21 / 223.53 ±2.63 / 228.03 ms │ 225.88 / 228.17 ±2.50 / 231.78 ms │ no change │
│ QQuery 25 │ 108.85 / 110.26 ±1.11 / 112.00 ms │ 110.52 / 112.33 ±1.24 / 114.40 ms │ no change │
│ QQuery 26 │ 56.82 / 57.00 ±0.22 / 57.42 ms │ 56.50 / 58.01 ±1.84 / 61.57 ms │ no change │
│ QQuery 27 │ 6.24 / 7.98 ±3.12 / 14.21 ms │ 5.92 / 6.05 ±0.19 / 6.42 ms │ +1.32x faster │
│ QQuery 28 │ 60.49 / 61.29 ±1.00 / 63.21 ms │ 56.31 / 58.28 ±1.66 / 60.29 ms │ no change │
│ QQuery 29 │ 95.91 / 97.90 ±2.73 / 103.22 ms │ 99.88 / 100.68 ±1.01 / 102.63 ms │ no change │
│ QQuery 30 │ 31.90 / 32.23 ±0.29 / 32.75 ms │ 31.95 / 33.02 ±1.82 / 36.65 ms │ no change │
│ QQuery 31 │ 109.98 / 111.67 ±1.31 / 113.46 ms │ 112.84 / 113.89 ±0.93 / 115.62 ms │ no change │
│ QQuery 32 │ 19.80 / 20.10 ±0.42 / 20.92 ms │ 21.80 / 22.21 ±0.29 / 22.67 ms │ 1.10x slower │
│ QQuery 33 │ 37.46 / 37.81 ±0.36 / 38.49 ms │ 38.83 / 40.28 ±1.77 / 43.74 ms │ 1.07x slower │
│ QQuery 34 │ 9.79 / 9.94 ±0.17 / 10.17 ms │ 10.20 / 10.57 ±0.37 / 11.21 ms │ 1.06x slower │
│ QQuery 35 │ 71.80 / 73.06 ±1.26 / 75.39 ms │ 74.52 / 75.85 ±1.67 / 78.93 ms │ no change │
│ QQuery 36 │ 5.83 / 5.95 ±0.21 / 6.37 ms │ 5.63 / 5.84 ±0.24 / 6.31 ms │ no change │
│ QQuery 37 │ 6.79 / 6.95 ±0.08 / 7.03 ms │ 8.48 / 8.53 ±0.07 / 8.67 ms │ 1.23x slower │
│ QQuery 38 │ 61.78 / 62.43 ±0.78 / 63.91 ms │ 67.83 / 68.12 ±0.42 / 68.93 ms │ 1.09x slower │
│ QQuery 39 │ 89.22 / 91.05 ±3.05 / 97.09 ms │ 93.15 / 95.49 ±2.33 / 99.65 ms │ no change │
│ QQuery 40 │ 22.75 / 23.29 ±0.43 / 23.96 ms │ 24.15 / 24.55 ±0.35 / 25.07 ms │ 1.05x slower │
│ QQuery 41 │ 11.25 / 11.47 ±0.18 / 11.74 ms │ 12.11 / 12.23 ±0.14 / 12.50 ms │ 1.07x slower │
│ QQuery 42 │ 23.91 / 24.39 ±0.46 / 25.20 ms │ 24.05 / 24.46 ±0.52 / 25.45 ms │ no change │
│ QQuery 43 │ 5.02 / 5.12 ±0.15 / 5.43 ms │ 4.58 / 4.66 ±0.11 / 4.88 ms │ +1.10x faster │
│ QQuery 44 │ 9.24 / 9.38 ±0.17 / 9.62 ms │ 8.98 / 9.09 ±0.11 / 9.30 ms │ no change │
│ QQuery 45 │ 37.18 / 37.58 ±0.28 / 38.01 ms │ 38.80 / 39.48 ±0.47 / 39.97 ms │ 1.05x slower │
│ QQuery 46 │ 11.72 / 11.90 ±0.18 / 12.21 ms │ 12.06 / 12.36 ±0.21 / 12.68 ms │ no change │
│ QQuery 47 │ 221.28 / 224.84 ±2.22 / 228.20 ms │ 224.98 / 230.10 ±3.10 / 233.75 ms │ no change │
│ QQuery 48 │ 94.50 / 96.97 ±3.54 / 104.01 ms │ 96.22 / 97.10 ±0.93 / 98.80 ms │ no change │
│ QQuery 49 │ 75.88 / 76.46 ±0.32 / 76.79 ms │ 74.69 / 75.63 ±0.78 / 76.93 ms │ no change │
│ QQuery 50 │ 58.46 / 58.78 ±0.28 / 59.30 ms │ 59.01 / 61.57 ±2.69 / 65.48 ms │ no change │
│ QQuery 51 │ 91.51 / 92.46 ±0.62 / 93.41 ms │ 95.19 / 96.29 ±0.98 / 97.55 ms │ no change │
│ QQuery 52 │ 23.67 / 24.13 ±0.27 / 24.45 ms │ 23.99 / 24.46 ±0.29 / 24.76 ms │ no change │
│ QQuery 53 │ 28.66 / 29.24 ±0.37 / 29.81 ms │ 31.17 / 32.65 ±2.71 / 38.07 ms │ 1.12x slower │
│ QQuery 54 │ 53.65 / 54.24 ±0.41 / 54.62 ms │ 54.48 / 55.47 ±0.79 / 56.36 ms │ no change │
│ QQuery 55 │ 23.03 / 24.72 ±1.79 / 28.07 ms │ 24.15 / 24.56 ±0.34 / 25.05 ms │ no change │
│ QQuery 56 │ 38.52 / 38.75 ±0.21 / 39.07 ms │ 38.25 / 39.08 ±0.52 / 39.82 ms │ no change │
│ QQuery 57 │ 173.48 / 175.62 ±2.48 / 179.08 ms │ 177.37 / 180.39 ±3.31 / 186.31 ms │ no change │
│ QQuery 58 │ 111.78 / 113.23 ±0.89 / 114.30 ms │ 115.88 / 117.27 ±1.38 / 119.85 ms │ no change │
│ QQuery 59 │ 117.18 / 118.15 ±0.84 / 119.68 ms │ 116.98 / 117.78 ±0.94 / 119.58 ms │ no change │
│ QQuery 60 │ 38.78 / 39.51 ±0.68 / 40.42 ms │ 38.86 / 39.42 ±0.53 / 40.42 ms │ no change │
│ QQuery 61 │ 12.33 / 12.45 ±0.13 / 12.69 ms │ 11.46 / 11.65 ±0.20 / 11.95 ms │ +1.07x faster │
│ QQuery 62 │ 45.90 / 46.61 ±0.64 / 47.78 ms │ 46.79 / 48.24 ±1.73 / 50.84 ms │ no change │
│ QQuery 63 │ 28.72 / 29.18 ±0.34 / 29.65 ms │ 31.44 / 32.23 ±0.64 / 33.26 ms │ 1.10x slower │
│ QQuery 64 │ 402.58 / 407.88 ±5.40 / 415.27 ms │ 407.80 / 416.72 ±5.98 / 426.53 ms │ no change │
│ QQuery 65 │ 122.80 / 125.26 ±2.51 / 129.67 ms │ 125.17 / 126.92 ±1.31 / 128.63 ms │ no change │
│ QQuery 66 │ 80.44 / 80.72 ±0.34 / 81.35 ms │ 81.78 / 83.30 ±2.22 / 87.69 ms │ no change │
│ QQuery 67 │ 238.05 / 242.05 ±3.85 / 248.86 ms │ 237.68 / 241.16 ±2.34 / 244.99 ms │ no change │
│ QQuery 68 │ 12.00 / 12.11 ±0.14 / 12.38 ms │ 11.97 / 12.24 ±0.28 / 12.76 ms │ no change │
│ QQuery 69 │ 56.63 / 57.22 ±0.39 / 57.66 ms │ 58.82 / 59.13 ±0.36 / 59.83 ms │ no change │
│ QQuery 70 │ 107.46 / 110.41 ±4.01 / 118.16 ms │ 108.95 / 113.37 ±5.81 / 124.59 ms │ no change │
│ QQuery 71 │ 34.92 / 35.38 ±0.37 / 36.04 ms │ 34.47 / 34.79 ±0.28 / 35.15 ms │ no change │
│ QQuery 72 │ 1926.54 / 1995.17 ±60.74 / 2080.00 ms │ 1978.84 / 2031.95 ±52.86 / 2130.59 ms │ no change │
│ QQuery 73 │ 9.81 / 10.00 ±0.24 / 10.48 ms │ 9.91 / 10.15 ±0.26 / 10.61 ms │ no change │
│ QQuery 74 │ 166.36 / 169.27 ±2.35 / 172.81 ms │ 170.54 / 173.02 ±2.10 / 176.30 ms │ no change │
│ QQuery 75 │ 147.20 / 150.92 ±3.31 / 155.15 ms │ 150.99 / 155.86 ±5.92 / 166.56 ms │ no change │
│ QQuery 76 │ 34.95 / 35.31 ±0.42 / 36.09 ms │ 34.31 / 34.67 ±0.34 / 35.23 ms │ no change │
│ QQuery 77 │ 60.49 / 62.04 ±1.69 / 65.04 ms │ 62.33 / 63.07 ±0.58 / 63.89 ms │ no change │
│ QQuery 78 │ 193.83 / 197.48 ±3.55 / 203.51 ms │ 198.46 / 202.44 ±4.96 / 212.20 ms │ no change │
│ QQuery 79 │ 66.01 / 66.97 ±1.32 / 69.56 ms │ 68.34 / 69.41 ±1.43 / 72.17 ms │ no change │
│ QQuery 80 │ 98.24 / 100.44 ±3.00 / 106.37 ms │ 100.46 / 101.45 ±0.68 / 102.46 ms │ no change │
│ QQuery 81 │ 25.40 / 26.68 ±2.00 / 30.67 ms │ 25.17 / 27.98 ±5.09 / 38.15 ms │ no change │
│ QQuery 82 │ 16.32 / 16.65 ±0.34 / 17.27 ms │ 18.43 / 19.55 ±1.97 / 23.47 ms │ 1.17x slower │
│ QQuery 83 │ 39.12 / 39.45 ±0.28 / 39.93 ms │ 40.75 / 41.76 ±0.95 / 42.91 ms │ 1.06x slower │
│ QQuery 84 │ 29.57 / 29.96 ±0.32 / 30.54 ms │ 28.98 / 29.65 ±0.43 / 30.22 ms │ no change │
│ QQuery 85 │ 106.23 / 107.46 ±1.09 / 109.49 ms │ 106.40 / 108.42 ±3.81 / 116.04 ms │ no change │
│ QQuery 86 │ 25.03 / 26.45 ±1.55 / 29.34 ms │ 26.70 / 27.49 ±0.73 / 28.77 ms │ no change │
│ QQuery 87 │ 61.20 / 63.57 ±2.81 / 69.09 ms │ 68.30 / 69.86 ±0.91 / 70.91 ms │ 1.10x slower │
│ QQuery 88 │ 62.42 / 63.07 ±0.53 / 63.94 ms │ 60.21 / 60.45 ±0.28 / 60.94 ms │ no change │
│ QQuery 89 │ 35.29 / 35.83 ±0.50 / 36.55 ms │ 37.07 / 38.70 ±2.78 / 44.24 ms │ 1.08x slower │
│ QQuery 90 │ 16.80 / 17.65 ±1.30 / 20.21 ms │ 16.58 / 16.71 ±0.16 / 17.02 ms │ +1.06x faster │
│ QQuery 91 │ 45.39 / 46.12 ±0.54 / 46.92 ms │ 45.00 / 46.22 ±0.80 / 47.12 ms │ no change │
│ QQuery 92 │ 28.80 / 29.51 ±0.57 / 30.24 ms │ 31.26 / 31.89 ±0.66 / 32.90 ms │ 1.08x slower │
│ QQuery 93 │ 49.16 / 49.87 ±0.63 / 50.78 ms │ 50.14 / 50.86 ±0.44 / 51.30 ms │ no change │
│ QQuery 94 │ 36.74 / 39.32 ±2.00 / 42.72 ms │ 38.80 / 39.45 ±0.44 / 39.91 ms │ no change │
│ QQuery 95 │ 79.23 / 80.52 ±0.93 / 81.86 ms │ 81.90 / 83.26 ±1.20 / 85.00 ms │ no change │
│ QQuery 96 │ 23.62 / 23.89 ±0.23 / 24.17 ms │ 23.80 / 24.16 ±0.28 / 24.60 ms │ no change │
│ QQuery 97 │ 46.70 / 47.10 ±0.36 / 47.76 ms │ 47.61 / 48.14 ±0.36 / 48.64 ms │ no change │
│ QQuery 98 │ 42.71 / 43.76 ±0.89 / 45.26 ms │ 43.88 / 45.17 ±0.75 / 45.93 ms │ no change │
│ QQuery 99 │ 70.16 / 70.85 ±0.97 / 72.77 ms │ 70.67 / 72.69 ±2.41 / 76.90 ms │ no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9664.26ms │
│ Total Time (parquet-post-scan-filter) │ 9859.13ms │
│ Average Time (HEAD) │ 97.62ms │
│ Average Time (parquet-post-scan-filter) │ 99.59ms │
│ Queries Faster │ 6 │
│ Queries Slower │ 19 │
│ Queries with No Change │ 74 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time50.0s
Peak memory2.3 GiB
Avg memory1.7 GiB
CPU user211.0s
CPU sys6.0s
Peak spill0 B

tpcds — branch

MetricValue
Wall time50.0s
Peak memory1.9 GiB
Avg memory1.4 GiB
CPU user218.2s
CPU sys5.9s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (bd6ee28) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitioned
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.24 ms │ 1.22 ms │ no change │
│ QQuery 1 │ 12.40 ms │ 11.87 ms │ no change │
│ QQuery 2 │ 36.38 ms │ 36.25 ms │ no change │
│ QQuery 3 │ 31.09 ms │ 30.79 ms │ no change │
│ QQuery 4 │ 226.46 ms │ 222.07 ms │ no change │
│ QQuery 5 │ 276.73 ms │ 273.13 ms │ no change │
│ QQuery 6 │ 1.27 ms │ 1.29 ms │ no change │
│ QQuery 7 │ 13.95 ms │ 13.39 ms │ no change │
│ QQuery 8 │ 327.66 ms │ 324.75 ms │ no change │
│ QQuery 9 │ 458.71 ms │ 457.25 ms │ no change │
│ QQuery 10 │ 70.03 ms │ 68.31 ms │ no change │
│ QQuery 11 │ 81.41 ms │ 78.54 ms │ no change │
│ QQuery 12 │ 271.31 ms │ 270.77 ms │ no change │
│ QQuery 13 │ 367.67 ms │ 370.25 ms │ no change │
│ QQuery 14 │ 284.21 ms │ 281.61 ms │ no change │
│ QQuery 15 │ 267.48 ms │ 270.49 ms │ no change │
│ QQuery 16 │ 619.05 ms │ 615.07 ms │ no change │
│ QQuery 17 │ 636.26 ms │ 619.43 ms │ no change │
│ QQuery 18 │ 1298.01 ms │ 1255.51 ms │ no change │
│ QQuery 19 │ 28.45 ms │ 27.15 ms │ no change │
│ QQuery 20 │ 522.37 ms │ 517.84 ms │ no change │
│ QQuery 21 │ 526.54 ms │ 508.20 ms │ no change │
│ QQuery 22 │ 989.12 ms │ 974.32 ms │ no change │
│ QQuery 23 │ 3061.74 ms │ 757.96 ms │ +4.04x faster │
│ QQuery 24 │ 41.51 ms │ 43.30 ms │ no change │
│ QQuery 25 │ 112.41 ms │ 114.32 ms │ no change │
│ QQuery 26 │ 42.03 ms │ 44.22 ms │ 1.05x slower │
│ QQuery 27 │ 513.80 ms │ 556.74 ms │ 1.08x slower │
│ QQuery 28 │ 2910.72 ms │ 2989.85 ms │ no change │
│ QQuery 29 │ 41.29 ms │ 41.50 ms │ no change │
│ QQuery 30 │ 306.17 ms │ 297.87 ms │ no change │
│ QQuery 31 │ 284.22 ms │ 272.82 ms │ no change │
│ QQuery 32 │ 948.93 ms │ 943.63 ms │ no change │
│ QQuery 33 │ 1479.96 ms │ 1481.97 ms │ no change │
│ QQuery 34 │ 1488.37 ms │ 1519.68 ms │ no change │
│ QQuery 35 │ 280.87 ms │ 280.02 ms │ no change │
│ QQuery 36 │ 68.46 ms │ 68.67 ms │ no change │
│ QQuery 37 │ 35.81 ms │ 37.53 ms │ no change │
│ QQuery 38 │ 41.65 ms │ 41.50 ms │ no change │
│ QQuery 39 │ 150.08 ms │ 146.29 ms │ no change │
│ QQuery 40 │ 14.36 ms │ 14.52 ms │ no change │
│ QQuery 41 │ 14.14 ms │ 13.30 ms │ +1.06x faster │
│ QQuery 42 │ 13.59 ms │ 13.00 ms │ no change │
└───────────┴────────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 19197.94ms │
│ Total Time (parquet-post-scan-filter) │ 16908.17ms │
│ Average Time (HEAD) │ 446.46ms │
│ Average Time (parquet-post-scan-filter) │ 393.21ms │
│ Queries Faster │ 2 │
│ Queries Slower │ 2 │
│ Queries with No Change │ 39 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.24 / 4.01 ±5.42 / 14.86 ms │ 1.22 / 3.96 ±5.38 / 14.72 ms │ no change │
│ QQuery 1 │ 12.40 / 12.89 ±0.31 / 13.36 ms │ 11.87 / 12.22 ±0.18 / 12.36 ms │ +1.06x faster │
│ QQuery 2 │ 36.38 / 36.78 ±0.31 / 37.19 ms │ 36.25 / 36.58 ±0.24 / 36.97 ms │ no change │
│ QQuery 3 │ 31.09 / 31.58 ±0.41 / 32.31 ms │ 30.79 / 31.47 ±0.37 / 31.87 ms │ no change │
│ QQuery 4 │ 226.46 / 229.48 ±1.83 / 232.10 ms │ 222.07 / 227.30 ±4.01 / 233.10 ms │ no change │
│ QQuery 5 │ 276.73 / 279.95 ±2.41 / 283.43 ms │ 273.13 / 276.18 ±2.59 / 280.18 ms │ no change │
│ QQuery 6 │ 1.27 / 1.41 ±0.21 / 1.81 ms │ 1.29 / 1.43 ±0.22 / 1.86 ms │ no change │
│ QQuery 7 │ 13.95 / 14.07 ±0.10 / 14.24 ms │ 13.39 / 13.52 ±0.07 / 13.60 ms │ no change │
│ QQuery 8 │ 327.66 / 331.52 ±3.28 / 336.44 ms │ 324.75 / 328.84 ±3.52 / 333.32 ms │ no change │
│ QQuery 9 │ 458.71 / 465.91 ±4.56 / 470.86 ms │ 457.25 / 472.40 ±9.85 / 485.99 ms │ no change │
│ QQuery 10 │ 70.03 / 73.92 ±6.89 / 87.68 ms │ 68.31 / 69.23 ±0.63 / 70.17 ms │ +1.07x faster │
│ QQuery 11 │ 81.41 / 84.93 ±5.73 / 96.35 ms │ 78.54 / 81.99 ±4.97 / 91.84 ms │ no change │
│ QQuery 12 │ 271.31 / 277.79 ±4.33 / 283.40 ms │ 270.77 / 275.99 ±3.04 / 279.54 ms │ no change │
│ QQuery 13 │ 367.67 / 371.84 ±2.82 / 376.05 ms │ 370.25 / 383.93 ±14.52 / 407.50 ms │ no change │
│ QQuery 14 │ 284.21 / 290.14 ±4.55 / 296.25 ms │ 281.61 / 287.12 ±5.99 / 297.88 ms │ no change │
│ QQuery 15 │ 267.48 / 275.63 ±5.67 / 283.03 ms │ 270.49 / 284.18 ±10.36 / 299.81 ms │ no change │
│ QQuery 16 │ 619.05 / 628.90 ±8.26 / 641.73 ms │ 615.07 / 625.39 ±6.97 / 634.49 ms │ no change │
│ QQuery 17 │ 636.26 / 646.03 ±6.48 / 656.37 ms │ 619.43 / 634.41 ±10.27 / 646.93 ms │ no change │
│ QQuery 18 │ 1298.01 / 1329.28 ±17.49 / 1350.28 ms │ 1255.51 / 1281.73 ±15.62 / 1304.52 ms │ no change │
│ QQuery 19 │ 28.45 / 28.62 ±0.20 / 28.97 ms │ 27.15 / 36.73 ±17.91 / 72.53 ms │ 1.28x slower │
│ QQuery 20 │ 522.37 / 540.14 ±20.43 / 577.51 ms │ 517.84 / 522.83 ±4.30 / 529.53 ms │ no change │
│ QQuery 21 │ 526.54 / 532.06 ±6.25 / 543.45 ms │ 508.20 / 515.93 ±5.97 / 523.08 ms │ no change │
│ QQuery 22 │ 989.12 / 998.28 ±8.81 / 1015.12 ms │ 974.32 / 986.51 ±8.53 / 998.43 ms │ no change │
│ QQuery 23 │ 3061.74 / 3103.40 ±24.60 / 3136.09 ms │ 757.96 / 778.00 ±16.38 / 807.45 ms │ +3.99x faster │
│ QQuery 24 │ 41.51 / 42.90 ±1.29 / 44.72 ms │ 43.30 / 43.95 ±0.89 / 45.69 ms │ no change │
│ QQuery 25 │ 112.41 / 121.44 ±11.77 / 144.36 ms │ 114.32 / 121.55 ±11.47 / 144.42 ms │ no change │
│ QQuery 26 │ 42.03 / 46.52 ±6.17 / 57.93 ms │ 44.22 / 46.96 ±5.23 / 57.42 ms │ no change │
│ QQuery 27 │ 513.80 / 517.29 ±2.16 / 520.54 ms │ 556.74 / 565.04 ±5.80 / 573.36 ms │ 1.09x slower │
│ QQuery 28 │ 2910.72 / 2943.59 ±21.77 / 2972.61 ms │ 2989.85 / 2998.81 ±9.99 / 3017.91 ms │ no change │
│ QQuery 29 │ 41.29 / 48.93 ±14.20 / 77.29 ms │ 41.50 / 54.78 ±16.78 / 83.33 ms │ 1.12x slower │
│ QQuery 30 │ 306.17 / 310.52 ±3.00 / 313.51 ms │ 297.87 / 307.42 ±8.43 / 320.47 ms │ no change │
│ QQuery 31 │ 284.22 / 306.38 ±27.27 / 358.86 ms │ 272.82 / 287.02 ±8.36 / 296.99 ms │ +1.07x faster │
│ QQuery 32 │ 948.93 / 981.87 ±40.78 / 1062.18 ms │ 943.63 / 998.87 ±35.36 / 1045.85 ms │ no change │
│ QQuery 33 │ 1479.96 / 1519.49 ±32.49 / 1569.09 ms │ 1481.97 / 1500.65 ±16.83 / 1529.89 ms │ no change │
│ QQuery 34 │ 1488.37 / 1541.16 ±53.22 / 1633.43 ms │ 1519.68 / 1591.56 ±88.87 / 1761.87 ms │ no change │
│ QQuery 35 │ 280.87 / 336.69 ±69.10 / 463.71 ms │ 280.02 / 301.16 ±28.82 / 357.90 ms │ +1.12x faster │
│ QQuery 36 │ 68.46 / 73.32 ±6.20 / 85.09 ms │ 68.67 / 75.14 ±5.65 / 84.67 ms │ no change │
│ QQuery 37 │ 35.81 / 42.89 ±7.29 / 56.38 ms │ 37.53 / 43.96 ±5.22 / 51.98 ms │ no change │
│ QQuery 38 │ 41.65 / 45.31 ±4.09 / 53.08 ms │ 41.50 / 43.20 ±1.59 / 45.74 ms │ no change │
│ QQuery 39 │ 150.08 / 159.59 ±8.26 / 174.54 ms │ 146.29 / 152.42 ±4.95 / 159.84 ms │ no change │
│ QQuery 40 │ 14.36 / 14.53 ±0.12 / 14.65 ms │ 14.52 / 14.98 ±0.30 / 15.31 ms │ no change │
│ QQuery 41 │ 14.14 / 14.24 ±0.08 / 14.34 ms │ 13.30 / 13.45 ±0.21 / 13.87 ms │ +1.06x faster │
│ QQuery 42 │ 13.59 / 14.51 ±1.69 / 17.88 ms │ 13.00 / 13.16 ±0.25 / 13.65 ms │ +1.10x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 19669.71ms │
│ Total Time (parquet-post-scan-filter) │ 17341.97ms │
│ Average Time (HEAD) │ 457.44ms │
│ Average Time (parquet-post-scan-filter) │ 403.30ms │
│ Queries Faster │ 7 │
│ Queries Slower │ 3 │
│ Queries with No Change │ 33 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time100.0s
Peak memory9.5 GiB
Avg memory4.1 GiB
CPU user1001.0s
CPU sys72.5s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time90.0s
Peak memory12.5 GiB
Avg memory4.6 GiB
CPU user866.8s
CPU sys61.1s
Peak spill0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
ContributorAuthor

run benchmarks

@adriangb
adriangbforce-pushed the parquet-post-scan-filter branch from bd6ee28 to c1b6ad4CompareAugust 11, 2026 23:45
@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5260182562-1553-q2jz4 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (c1b6ad4) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitioned

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5260182562-1554-gwgb2 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (c1b6ad4) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcds

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance:c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5260182562-1555-sxtbh 6.12.85+ #1 SMP Wed Jun 17 20:31:55 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected

Comparing parquet-post-scan-filter (c1b6ad4) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpch

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (c1b6ad4) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpch
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.12 ms │ 39.43 ms │ no change │
│ QQuery 2 │ 18.99 ms │ 18.54 ms │ no change │
│ QQuery 3 │ 30.48 ms │ 38.53 ms │ 1.26x slower │
│ QQuery 4 │ 17.37 ms │ 18.21 ms │ no change │
│ QQuery 5 │ 36.68 ms │ 55.22 ms │ 1.51x slower │
│ QQuery 6 │ 15.94 ms │ 14.33 ms │ +1.11x faster │
│ QQuery 7 │ 43.45 ms │ 46.42 ms │ 1.07x slower │
│ QQuery 8 │ 41.89 ms │ 47.43 ms │ 1.13x slower │
│ QQuery 9 │ 49.33 ms │ 60.38 ms │ 1.22x slower │
│ QQuery 10 │ 41.56 ms │ 41.63 ms │ no change │
│ QQuery 11 │ 13.22 ms │ 13.50 ms │ no change │
│ QQuery 12 │ 23.90 ms │ 29.04 ms │ 1.21x slower │
│ QQuery 13 │ 31.73 ms │ 41.88 ms │ 1.32x slower │
│ QQuery 14 │ 23.00 ms │ 28.56 ms │ 1.24x slower │
│ QQuery 15 │ 30.27 ms │ 31.53 ms │ no change │
│ QQuery 16 │ 13.69 ms │ 13.22 ms │ no change │
│ QQuery 17 │ 68.60 ms │ 71.75 ms │ no change │
│ QQuery 18 │ 58.07 ms │ 73.44 ms │ 1.26x slower │
│ QQuery 19 │ 32.67 ms │ 32.13 ms │ no change │
│ QQuery 20 │ 31.13 ms │ 38.72 ms │ 1.24x slower │
│ QQuery 21 │ 53.44 ms │ 52.42 ms │ no change │
│ QQuery 22 │ 13.62 ms │ 15.51 ms │ 1.14x slower │
└───────────┴──────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 727.16ms │
│ Total Time (parquet-post-scan-filter) │ 821.81ms │
│ Average Time (HEAD) │ 33.05ms │
│ Average Time (parquet-post-scan-filter) │ 37.35ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 11 │
│ Queries with No Change │ 10 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 38.12 / 39.61 ±1.19 / 41.10 ms │ 39.43 / 40.10 ±1.11 / 42.33 ms │ no change │
│ QQuery 2 │ 18.99 / 19.40 ±0.31 / 19.93 ms │ 18.54 / 18.74 ±0.24 / 19.22 ms │ no change │
│ QQuery 3 │ 30.48 / 33.19 ±1.69 / 35.81 ms │ 38.53 / 39.15 ±0.67 / 40.38 ms │ 1.18x slower │
│ QQuery 4 │ 17.37 / 17.52 ±0.13 / 17.70 ms │ 18.21 / 18.42 ±0.23 / 18.87 ms │ 1.05x slower │
│ QQuery 5 │ 36.68 / 39.50 ±1.42 / 40.49 ms │ 55.22 / 55.65 ±0.28 / 56.09 ms │ 1.41x slower │
│ QQuery 6 │ 15.94 / 16.16 ±0.17 / 16.41 ms │ 14.33 / 14.50 ±0.10 / 14.61 ms │ +1.11x faster │
│ QQuery 7 │ 43.45 / 44.83 ±0.98 / 46.05 ms │ 46.42 / 47.10 ±1.07 / 49.21 ms │ 1.05x slower │
│ QQuery 8 │ 41.89 / 42.48 ±0.60 / 43.59 ms │ 47.43 / 48.22 ±0.87 / 49.91 ms │ 1.14x slower │
│ QQuery 9 │ 49.33 / 50.24 ±0.62 / 51.17 ms │ 60.38 / 61.88 ±1.76 / 65.21 ms │ 1.23x slower │
│ QQuery 10 │ 41.56 / 41.92 ±0.37 / 42.50 ms │ 41.63 / 41.77 ±0.16 / 42.03 ms │ no change │
│ QQuery 11 │ 13.22 / 13.63 ±0.62 / 14.83 ms │ 13.50 / 14.16 ±0.99 / 16.13 ms │ no change │
│ QQuery 12 │ 23.90 / 24.83 ±1.11 / 27.00 ms │ 29.04 / 29.30 ±0.29 / 29.84 ms │ 1.18x slower │
│ QQuery 13 │ 31.73 / 33.80 ±1.23 / 35.11 ms │ 41.88 / 45.48 ±2.16 / 47.95 ms │ 1.35x slower │
│ QQuery 14 │ 23.00 / 23.67 ±1.01 / 25.68 ms │ 28.56 / 28.80 ±0.20 / 29.09 ms │ 1.22x slower │
│ QQuery 15 │ 30.27 / 31.47 ±1.71 / 34.83 ms │ 31.53 / 32.22 ±0.87 / 33.87 ms │ no change │
│ QQuery 16 │ 13.69 / 13.87 ±0.15 / 14.12 ms │ 13.22 / 13.54 ±0.29 / 13.96 ms │ no change │
│ QQuery 17 │ 68.60 / 69.95 ±1.27 / 72.11 ms │ 71.75 / 72.50 ±1.06 / 74.58 ms │ no change │
│ QQuery 18 │ 58.07 / 59.78 ±1.45 / 61.96 ms │ 73.44 / 76.56 ±1.85 / 78.21 ms │ 1.28x slower │
│ QQuery 19 │ 32.67 / 33.57 ±1.12 / 35.70 ms │ 32.13 / 33.43 ±1.25 / 35.50 ms │ no change │
│ QQuery 20 │ 31.13 / 31.48 ±0.32 / 32.09 ms │ 38.72 / 39.19 ±0.46 / 40.08 ms │ 1.24x slower │
│ QQuery 21 │ 53.44 / 56.15 ±1.99 / 58.65 ms │ 52.42 / 55.60 ±2.40 / 59.47 ms │ no change │
│ QQuery 22 │ 13.62 / 14.13 ±0.34 / 14.53 ms │ 15.51 / 15.99 ±0.35 / 16.39 ms │ 1.13x slower │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD) │ 751.17ms │
│ Total Time (parquet-post-scan-filter) │ 842.31ms │
│ Average Time (HEAD) │ 34.14ms │
│ Average Time (parquet-post-scan-filter) │ 38.29ms │
│ Queries Faster │ 1 │
│ Queries Slower │ 12 │
│ Queries with No Change │ 9 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

MetricValue
Wall time5.0s
Peak memory1.2 GiB
Avg memory527.9 MiB
CPU user21.4s
CPU sys1.6s
Peak spill0 B

tpch — branch

MetricValue
Wall time5.0s
Peak memory919.9 MiB
Avg memory550.3 MiB
CPU user23.2s
CPU sys1.5s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (c1b6ad4) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark tpcds
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.35 ms │ 5.17 ms │ no change │
│ QQuery 2 │ 80.60 ms │ 46.29 ms │ +1.74x faster │
│ QQuery 3 │ 28.83 ms │ 29.11 ms │ no change │
│ QQuery 4 │ 483.24 ms │ 382.67 ms │ +1.26x faster │
│ QQuery 5 │ 51.14 ms │ 71.16 ms │ 1.39x slower │
│ QQuery 6 │ 36.76 ms │ 30.71 ms │ +1.20x faster │
│ QQuery 7 │ 93.41 ms │ 104.85 ms │ 1.12x slower │
│ QQuery 8 │ 36.96 ms │ 14.32 ms │ +2.58x faster │
│ QQuery 9 │ 49.94 ms │ 53.99 ms │ 1.08x slower │
│ QQuery 10 │ 62.10 ms │ 65.51 ms │ 1.05x slower │
│ QQuery 11 │ 315.00 ms │ 220.44 ms │ +1.43x faster │
│ QQuery 12 │ 28.86 ms │ 22.09 ms │ +1.31x faster │
│ QQuery 13 │ 117.27 ms │ 124.52 ms │ 1.06x slower │
│ QQuery 14 │ 417.11 ms │ 394.80 ms │ +1.06x faster │
│ QQuery 15 │ 59.53 ms │ 25.10 ms │ +2.37x faster │
│ QQuery 16 │ 6.96 ms │ 6.01 ms │ +1.16x faster │
│ QQuery 17 │ 79.78 ms │ 129.05 ms │ 1.62x slower │
│ QQuery 18 │ 121.96 ms │ 186.88 ms │ 1.53x slower │
│ QQuery 19 │ 41.22 ms │ 44.05 ms │ 1.07x slower │
│ QQuery 20 │ 35.41 ms │ 26.60 ms │ +1.33x faster │
│ QQuery 21 │ 17.42 ms │ 15.58 ms │ +1.12x faster │
│ QQuery 22 │ 63.49 ms │ 65.47 ms │ no change │
│ QQuery 23 │ 342.93 ms │ 352.67 ms │ no change │
│ QQuery 24 │ 223.49 ms │ 445.54 ms │ 1.99x slower │
│ QQuery 25 │ 109.00 ms │ 147.04 ms │ 1.35x slower │
│ QQuery 26 │ 57.65 ms │ 61.45 ms │ 1.07x slower │
│ QQuery 27 │ 6.19 ms │ 6.01 ms │ no change │
│ QQuery 28 │ 59.56 ms │ 54.93 ms │ +1.08x faster │
│ QQuery 29 │ 96.64 ms │ 159.78 ms │ 1.65x slower │
│ QQuery 30 │ 32.16 ms │ 32.07 ms │ no change │
│ QQuery 31 │ 110.24 ms │ 127.94 ms │ 1.16x slower │
│ QQuery 32 │ 20.65 ms │ 21.92 ms │ 1.06x slower │
│ QQuery 33 │ 37.82 ms │ 41.52 ms │ 1.10x slower │
│ QQuery 34 │ 10.07 ms │ 10.13 ms │ no change │
│ QQuery 35 │ 73.22 ms │ 75.99 ms │ no change │
│ QQuery 36 │ 5.74 ms │ 5.62 ms │ no change │
│ QQuery 37 │ 6.86 ms │ 8.42 ms │ 1.23x slower │
│ QQuery 38 │ 62.88 ms │ 73.80 ms │ 1.17x slower │
│ QQuery 39 │ 89.47 ms │ 85.80 ms │ no change │
│ QQuery 40 │ 23.25 ms │ 21.61 ms │ +1.08x faster │
│ QQuery 41 │ 11.50 ms │ 12.29 ms │ 1.07x slower │
│ QQuery 42 │ 23.68 ms │ 26.10 ms │ 1.10x slower │
│ QQuery 43 │ 4.95 ms │ 4.66 ms │ +1.06x faster │
│ QQuery 44 │ 9.24 ms │ 9.17 ms │ no change │
│ QQuery 45 │ 39.01 ms │ 26.03 ms │ +1.50x faster │
│ QQuery 46 │ 12.01 ms │ 12.70 ms │ 1.06x slower │
│ QQuery 47 │ 231.37 ms │ 207.40 ms │ +1.12x faster │
│ QQuery 48 │ 94.99 ms │ 106.43 ms │ 1.12x slower │
│ QQuery 49 │ 75.65 ms │ 96.02 ms │ 1.27x slower │
│ QQuery 50 │ 58.19 ms │ 123.48 ms │ 2.12x slower │
│ QQuery 51 │ 90.93 ms │ 96.08 ms │ 1.06x slower │
│ QQuery 52 │ 23.80 ms │ 26.16 ms │ 1.10x slower │
│ QQuery 53 │ 29.15 ms │ 32.16 ms │ 1.10x slower │
│ QQuery 54 │ 54.79 ms │ 28.87 ms │ +1.90x faster │
│ QQuery 55 │ 23.22 ms │ 25.49 ms │ 1.10x slower │
│ QQuery 56 │ 38.59 ms │ 40.46 ms │ no change │
│ QQuery 57 │ 176.84 ms │ 152.80 ms │ +1.16x faster │
│ QQuery 58 │ 112.18 ms │ 74.07 ms │ +1.51x faster │
│ QQuery 59 │ 116.50 ms │ 70.70 ms │ +1.65x faster │
│ QQuery 60 │ 38.82 ms │ 40.84 ms │ 1.05x slower │
│ QQuery 61 │ 12.15 ms │ 11.46 ms │ +1.06x faster │
│ QQuery 62 │ 46.56 ms │ 36.96 ms │ +1.26x faster │
│ QQuery 63 │ 29.37 ms │ 32.15 ms │ 1.09x slower │
│ QQuery 64 │ 406.68 ms │ 718.92 ms │ 1.77x slower │
│ QQuery 65 │ 122.15 ms │ 142.41 ms │ 1.17x slower │
│ QQuery 66 │ 79.66 ms │ 67.31 ms │ +1.18x faster │
│ QQuery 67 │ 246.69 ms │ 249.56 ms │ no change │
│ QQuery 68 │ 11.96 ms │ 12.60 ms │ 1.05x slower │
│ QQuery 69 │ 56.73 ms │ 60.89 ms │ 1.07x slower │
│ QQuery 70 │ 107.27 ms │ 110.69 ms │ no change │
│ QQuery 71 │ 34.69 ms │ 36.57 ms │ 1.05x slower │
│ QQuery 72 │ 2001.82 ms │ 180.72 ms │ +11.08x faster │
│ QQuery 73 │ 9.68 ms │ 9.95 ms │ no change │
│ QQuery 74 │ 172.19 ms │ 141.61 ms │ +1.22x faster │
│ QQuery 75 │ 146.75 ms │ 178.21 ms │ 1.21x slower │
│ QQuery 76 │ 34.90 ms │ 36.05 ms │ no change │
│ QQuery 77 │ 59.30 ms │ 64.57 ms │ 1.09x slower │
│ QQuery 78 │ 196.77 ms │ 161.88 ms │ +1.22x faster │
│ QQuery 79 │ 66.67 ms │ 70.40 ms │ 1.06x slower │
│ QQuery 80 │ 97.02 ms │ 81.06 ms │ +1.20x faster │
│ QQuery 81 │ 25.63 ms │ 26.18 ms │ no change │
│ QQuery 82 │ 16.44 ms │ 17.53 ms │ 1.07x slower │
│ QQuery 83 │ 39.84 ms │ 35.55 ms │ +1.12x faster │
│ QQuery 84 │ 30.29 ms │ 30.73 ms │ no change │
│ QQuery 85 │ 105.80 ms │ 144.60 ms │ 1.37x slower │
│ QQuery 86 │ 25.47 ms │ 27.60 ms │ 1.08x slower │
│ QQuery 87 │ 62.67 ms │ 73.87 ms │ 1.18x slower │
│ QQuery 88 │ 62.63 ms │ 61.72 ms │ no change │
│ QQuery 89 │ 35.34 ms │ 37.70 ms │ 1.07x slower │
│ QQuery 90 │ 16.91 ms │ 16.61 ms │ no change │
│ QQuery 91 │ 46.26 ms │ 49.02 ms │ 1.06x slower │
│ QQuery 92 │ 29.18 ms │ 31.67 ms │ 1.09x slower │
│ QQuery 93 │ 50.00 ms │ 49.86 ms │ no change │
│ QQuery 94 │ 37.86 ms │ 40.20 ms │ 1.06x slower │
│ QQuery 95 │ 79.34 ms │ 109.03 ms │ 1.37x slower │
│ QQuery 96 │ 24.00 ms │ 24.92 ms │ no change │
│ QQuery 97 │ 47.16 ms │ 50.57 ms │ 1.07x slower │
│ QQuery 98 │ 42.73 ms │ 32.17 ms │ +1.33x faster │
│ QQuery 99 │ 70.27 ms │ 52.44 ms │ +1.34x faster │
└───────────┴────────────┴──────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9652.39ms │
│ Total Time (parquet-post-scan-filter) │ 8324.49ms │
│ Average Time (HEAD) │ 97.50ms │
│ Average Time (parquet-post-scan-filter) │ 84.09ms │
│ Queries Faster │ 30 │
│ Queries Slower │ 47 │
│ Queries with No Change │ 22 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ QQuery 1 │ 5.35 / 5.94 ±0.91 / 7.76 ms │ 5.17 / 5.64 ±0.89 / 7.42 ms │ +1.05x faster │
│ QQuery 2 │ 80.60 / 80.83 ±0.21 / 81.21 ms │ 46.29 / 46.59 ±0.29 / 47.10 ms │ +1.73x faster │
│ QQuery 3 │ 28.83 / 29.12 ±0.21 / 29.45 ms │ 29.11 / 29.44 ±0.31 / 30.04 ms │ no change │
│ QQuery 4 │ 483.24 / 488.77 ±3.79 / 494.12 ms │ 382.67 / 384.29 ±1.73 / 387.62 ms │ +1.27x faster │
│ QQuery 5 │ 51.14 / 51.87 ±0.54 / 52.77 ms │ 71.16 / 71.82 ±0.47 / 72.52 ms │ 1.38x slower │
│ QQuery 6 │ 36.76 / 36.94 ±0.17 / 37.27 ms │ 30.71 / 30.93 ±0.15 / 31.10 ms │ +1.19x faster │
│ QQuery 7 │ 93.41 / 93.76 ±0.36 / 94.37 ms │ 104.85 / 107.27 ±2.09 / 111.13 ms │ 1.14x slower │
│ QQuery 8 │ 36.96 / 38.59 ±2.01 / 42.42 ms │ 14.32 / 14.45 ±0.16 / 14.75 ms │ +2.67x faster │
│ QQuery 9 │ 49.94 / 52.62 ±2.18 / 56.57 ms │ 53.99 / 54.81 ±0.66 / 55.63 ms │ no change │
│ QQuery 10 │ 62.10 / 62.71 ±0.37 / 63.10 ms │ 65.51 / 66.94 ±2.49 / 71.90 ms │ 1.07x slower │
│ QQuery 11 │ 315.00 / 318.19 ±3.30 / 322.48 ms │ 220.44 / 223.64 ±3.37 / 230.09 ms │ +1.42x faster │
│ QQuery 12 │ 28.86 / 29.43 ±0.48 / 30.00 ms │ 22.09 / 22.77 ±0.46 / 23.32 ms │ +1.29x faster │
│ QQuery 13 │ 117.27 / 118.65 ±1.62 / 121.82 ms │ 124.52 / 124.87 ±0.27 / 125.32 ms │ 1.05x slower │
│ QQuery 14 │ 417.11 / 419.19 ±1.75 / 421.11 ms │ 394.80 / 399.06 ±3.05 / 403.64 ms │ no change │
│ QQuery 15 │ 59.53 / 60.03 ±0.66 / 61.32 ms │ 25.10 / 26.41 ±2.07 / 30.52 ms │ +2.27x faster │
│ QQuery 16 │ 6.96 / 7.13 ±0.15 / 7.39 ms │ 6.01 / 6.28 ±0.26 / 6.65 ms │ +1.14x faster │
│ QQuery 17 │ 79.78 / 81.07 ±1.25 / 83.40 ms │ 129.05 / 129.72 ±0.45 / 130.28 ms │ 1.60x slower │
│ QQuery 18 │ 121.96 / 124.10 ±2.44 / 128.58 ms │ 186.88 / 187.27 ±0.47 / 188.18 ms │ 1.51x slower │
│ QQuery 19 │ 41.22 / 41.76 ±0.38 / 42.24 ms │ 44.05 / 44.69 ±0.55 / 45.50 ms │ 1.07x slower │
│ QQuery 20 │ 35.41 / 36.59 ±0.72 / 37.62 ms │ 26.60 / 27.12 ±0.31 / 27.51 ms │ +1.35x faster │
│ QQuery 21 │ 17.42 / 17.67 ±0.17 / 17.91 ms │ 15.58 / 16.48 ±1.50 / 19.47 ms │ +1.07x faster │
│ QQuery 22 │ 63.49 / 64.14 ±0.44 / 64.85 ms │ 65.47 / 67.03 ±1.61 / 70.06 ms │ no change │
│ QQuery 23 │ 342.93 / 349.67 ±5.67 / 359.26 ms │ 352.67 / 358.00 ±4.26 / 363.18 ms │ no change │
│ QQuery 24 │ 223.49 / 225.38 ±2.98 / 231.31 ms │ 445.54 / 447.81 ±2.79 / 453.20 ms │ 1.99x slower │
│ QQuery 25 │ 109.00 / 109.87 ±0.98 / 111.67 ms │ 147.04 / 148.34 ±1.30 / 150.78 ms │ 1.35x slower │
│ QQuery 26 │ 57.65 / 58.34 ±0.83 / 59.90 ms │ 61.45 / 62.41 ±0.73 / 63.71 ms │ 1.07x slower │
│ QQuery 27 │ 6.19 / 7.25 ±1.42 / 10.02 ms │ 6.01 / 6.17 ±0.12 / 6.37 ms │ +1.18x faster │
│ QQuery 28 │ 59.56 / 60.72 ±1.03 / 62.65 ms │ 54.93 / 58.75 ±2.01 / 60.76 ms │ no change │
│ QQuery 29 │ 96.64 / 99.53 ±3.42 / 106.01 ms │ 159.78 / 161.59 ±2.53 / 166.57 ms │ 1.62x slower │
│ QQuery 30 │ 32.16 / 32.44 ±0.24 / 32.76 ms │ 32.07 / 32.36 ±0.23 / 32.62 ms │ no change │
│ QQuery 31 │ 110.24 / 110.86 ±0.36 / 111.29 ms │ 127.94 / 131.26 ±2.51 / 135.09 ms │ 1.18x slower │
│ QQuery 32 │ 20.65 / 20.77 ±0.12 / 20.96 ms │ 21.92 / 22.22 ±0.33 / 22.71 ms │ 1.07x slower │
│ QQuery 33 │ 37.82 / 39.26 ±1.56 / 42.18 ms │ 41.52 / 41.91 ±0.26 / 42.29 ms │ 1.07x slower │
│ QQuery 34 │ 10.07 / 10.70 ±0.38 / 11.04 ms │ 10.13 / 10.56 ±0.33 / 11.05 ms │ no change │
│ QQuery 35 │ 73.22 / 73.62 ±0.34 / 74.06 ms │ 75.99 / 77.29 ±1.02 / 78.97 ms │ no change │
│ QQuery 36 │ 5.74 / 5.96 ±0.22 / 6.37 ms │ 5.62 / 5.75 ±0.17 / 6.07 ms │ no change │
│ QQuery 37 │ 6.86 / 7.02 ±0.12 / 7.20 ms │ 8.42 / 8.51 ±0.07 / 8.61 ms │ 1.21x slower │
│ QQuery 38 │ 62.88 / 63.38 ±0.38 / 64.01 ms │ 73.80 / 75.67 ±2.05 / 79.66 ms │ 1.19x slower │
│ QQuery 39 │ 89.47 / 91.53 ±2.09 / 94.95 ms │ 85.80 / 86.79 ±0.85 / 87.98 ms │ +1.05x faster │
│ QQuery 40 │ 23.25 / 23.83 ±0.48 / 24.59 ms │ 21.61 / 22.09 ±0.27 / 22.35 ms │ +1.08x faster │
│ QQuery 41 │ 11.50 / 11.76 ±0.17 / 12.01 ms │ 12.29 / 12.40 ±0.12 / 12.63 ms │ 1.05x slower │
│ QQuery 42 │ 23.68 / 23.98 ±0.29 / 24.38 ms │ 26.10 / 26.94 ±0.70 / 27.81 ms │ 1.12x slower │
│ QQuery 43 │ 4.95 / 5.06 ±0.18 / 5.42 ms │ 4.66 / 4.83 ±0.19 / 5.21 ms │ no change │
│ QQuery 44 │ 9.24 / 9.45 ±0.16 / 9.73 ms │ 9.17 / 9.27 ±0.12 / 9.50 ms │ no change │
│ QQuery 45 │ 39.01 / 39.65 ±0.74 / 40.86 ms │ 26.03 / 26.29 ±0.21 / 26.66 ms │ +1.51x faster │
│ QQuery 46 │ 12.01 / 12.05 ±0.03 / 12.10 ms │ 12.70 / 12.97 ±0.27 / 13.42 ms │ 1.08x slower │
│ QQuery 47 │ 231.37 / 234.51 ±2.35 / 237.53 ms │ 207.40 / 210.74 ±5.00 / 220.32 ms │ +1.11x faster │
│ QQuery 48 │ 94.99 / 95.74 ±0.73 / 97.04 ms │ 106.43 / 107.67 ±1.21 / 109.87 ms │ 1.12x slower │
│ QQuery 49 │ 75.65 / 76.56 ±0.98 / 78.41 ms │ 96.02 / 97.09 ±1.11 / 98.98 ms │ 1.27x slower │
│ QQuery 50 │ 58.19 / 61.12 ±3.23 / 66.74 ms │ 123.48 / 124.70 ±0.97 / 125.91 ms │ 2.04x slower │
│ QQuery 51 │ 90.93 / 93.03 ±1.16 / 94.13 ms │ 96.08 / 98.09 ±1.96 / 101.76 ms │ 1.05x slower │
│ QQuery 52 │ 23.80 / 24.12 ±0.23 / 24.46 ms │ 26.16 / 26.62 ±0.41 / 27.18 ms │ 1.10x slower │
│ QQuery 53 │ 29.15 / 30.61 ±2.71 / 36.04 ms │ 32.16 / 32.38 ±0.18 / 32.68 ms │ 1.06x slower │
│ QQuery 54 │ 54.79 / 55.97 ±1.16 / 58.13 ms │ 28.87 / 31.21 ±1.90 / 33.36 ms │ +1.79x faster │
│ QQuery 55 │ 23.22 / 23.58 ±0.33 / 24.04 ms │ 25.49 / 26.43 ±1.63 / 29.67 ms │ 1.12x slower │
│ QQuery 56 │ 38.59 / 38.95 ±0.43 / 39.80 ms │ 40.46 / 41.17 ±0.58 / 42.12 ms │ 1.06x slower │
│ QQuery 57 │ 176.84 / 178.27 ±1.68 / 181.51 ms │ 152.80 / 154.68 ±1.01 / 155.68 ms │ +1.15x faster │
│ QQuery 58 │ 112.18 / 113.28 ±0.67 / 114.22 ms │ 74.07 / 75.01 ±0.89 / 76.65 ms │ +1.51x faster │
│ QQuery 59 │ 116.50 / 117.76 ±0.98 / 119.39 ms │ 70.70 / 71.42 ±0.70 / 72.43 ms │ +1.65x faster │
│ QQuery 60 │ 38.82 / 38.92 ±0.12 / 39.15 ms │ 40.84 / 41.45 ±0.44 / 41.98 ms │ 1.07x slower │
│ QQuery 61 │ 12.15 / 12.36 ±0.16 / 12.62 ms │ 11.46 / 12.23 ±1.42 / 15.07 ms │ no change │
│ QQuery 62 │ 46.56 / 47.34 ±1.02 / 49.33 ms │ 36.96 / 37.51 ±0.43 / 38.24 ms │ +1.26x faster │
│ QQuery 63 │ 29.37 / 30.59 ±1.28 / 33.05 ms │ 32.15 / 32.53 ±0.22 / 32.74 ms │ 1.06x slower │
│ QQuery 64 │ 406.68 / 408.87 ±1.95 / 411.66 ms │ 718.92 / 721.02 ±1.78 / 723.60 ms │ 1.76x slower │
│ QQuery 65 │ 122.15 / 124.16 ±1.38 / 125.88 ms │ 142.41 / 144.56 ±2.21 / 147.32 ms │ 1.16x slower │
│ QQuery 66 │ 79.66 / 82.18 ±3.13 / 88.13 ms │ 67.31 / 68.16 ±0.90 / 69.86 ms │ +1.21x faster │
│ QQuery 67 │ 246.69 / 251.50 ±3.69 / 256.39 ms │ 249.56 / 252.97 ±4.10 / 260.15 ms │ no change │
│ QQuery 68 │ 11.96 / 12.20 ±0.20 / 12.55 ms │ 12.60 / 12.90 ±0.21 / 13.15 ms │ 1.06x slower │
│ QQuery 69 │ 56.73 / 57.12 ±0.24 / 57.37 ms │ 60.89 / 61.55 ±0.53 / 62.20 ms │ 1.08x slower │
│ QQuery 70 │ 107.27 / 111.37 ±4.14 / 117.28 ms │ 110.69 / 116.10 ±8.65 / 133.14 ms │ no change │
│ QQuery 71 │ 34.69 / 34.87 ±0.16 / 35.15 ms │ 36.57 / 37.45 ±0.64 / 38.27 ms │ 1.07x slower │
│ QQuery 72 │ 2001.82 / 2050.90 ±32.35 / 2098.51 ms │ 180.72 / 189.13 ±6.95 / 200.93 ms │ +10.84x faster │
│ QQuery 73 │ 9.68 / 9.89 ±0.21 / 10.21 ms │ 9.95 / 10.17 ±0.22 / 10.58 ms │ no change │
│ QQuery 74 │ 172.19 / 174.81 ±2.86 / 180.15 ms │ 141.61 / 144.01 ±1.85 / 147.21 ms │ +1.21x faster │
│ QQuery 75 │ 146.75 / 150.27 ±5.72 / 161.63 ms │ 178.21 / 178.84 ±0.61 / 179.64 ms │ 1.19x slower │
│ QQuery 76 │ 34.90 / 35.17 ±0.34 / 35.81 ms │ 36.05 / 38.45 ±4.26 / 46.95 ms │ 1.09x slower │
│ QQuery 77 │ 59.30 / 61.88 ±2.88 / 67.50 ms │ 64.57 / 65.09 ±0.42 / 65.67 ms │ 1.05x slower │
│ QQuery 78 │ 196.77 / 199.61 ±3.99 / 207.53 ms │ 161.88 / 166.26 ±3.28 / 170.64 ms │ +1.20x faster │
│ QQuery 79 │ 66.67 / 66.91 ±0.30 / 67.48 ms │ 70.40 / 70.87 ±0.40 / 71.37 ms │ 1.06x slower │
│ QQuery 80 │ 97.02 / 98.48 ±1.14 / 99.86 ms │ 81.06 / 85.78 ±3.61 / 90.62 ms │ +1.15x faster │
│ QQuery 81 │ 25.63 / 25.76 ±0.15 / 26.05 ms │ 26.18 / 26.44 ±0.21 / 26.81 ms │ no change │
│ QQuery 82 │ 16.44 / 16.73 ±0.27 / 17.24 ms │ 17.53 / 17.76 ±0.19 / 18.10 ms │ 1.06x slower │
│ QQuery 83 │ 39.84 / 41.21 ±2.06 / 45.20 ms │ 35.55 / 35.98 ±0.33 / 36.50 ms │ +1.15x faster │
│ QQuery 84 │ 30.29 / 30.54 ±0.21 / 30.80 ms │ 30.73 / 30.95 ±0.32 / 31.58 ms │ no change │
│ QQuery 85 │ 105.80 / 106.93 ±0.80 / 108.17 ms │ 144.60 / 146.01 ±1.35 / 148.51 ms │ 1.37x slower │
│ QQuery 86 │ 25.47 / 27.40 ±3.35 / 34.09 ms │ 27.60 / 28.15 ±0.44 / 28.90 ms │ no change │
│ QQuery 87 │ 62.67 / 63.84 ±0.94 / 65.46 ms │ 73.87 / 75.05 ±0.95 / 76.41 ms │ 1.18x slower │
│ QQuery 88 │ 62.63 / 63.35 ±0.43 / 63.81 ms │ 61.72 / 63.58 ±1.64 / 66.55 ms │ no change │
│ QQuery 89 │ 35.34 / 35.60 ±0.20 / 35.94 ms │ 37.70 / 37.87 ±0.17 / 38.08 ms │ 1.06x slower │
│ QQuery 90 │ 16.91 / 17.13 ±0.18 / 17.43 ms │ 16.61 / 16.93 ±0.22 / 17.28 ms │ no change │
│ QQuery 91 │ 46.26 / 48.14 ±2.10 / 51.53 ms │ 49.02 / 50.10 ±0.94 / 51.63 ms │ no change │
│ QQuery 92 │ 29.18 / 30.10 ±0.69 / 30.85 ms │ 31.67 / 32.36 ±0.49 / 33.11 ms │ 1.07x slower │
│ QQuery 93 │ 50.00 / 50.56 ±0.64 / 51.78 ms │ 49.86 / 51.03 ±0.74 / 52.08 ms │ no change │
│ QQuery 94 │ 37.86 / 38.27 ±0.47 / 38.99 ms │ 40.20 / 40.50 ±0.33 / 41.11 ms │ 1.06x slower │
│ QQuery 95 │ 79.34 / 81.21 ±1.73 / 84.48 ms │ 109.03 / 110.80 ±1.30 / 112.69 ms │ 1.36x slower │
│ QQuery 96 │ 24.00 / 24.28 ±0.27 / 24.76 ms │ 24.92 / 26.06 ±1.90 / 29.84 ms │ 1.07x slower │
│ QQuery 97 │ 47.16 / 47.61 ±0.46 / 48.42 ms │ 50.57 / 51.39 ±0.85 / 52.96 ms │ 1.08x slower │
│ QQuery 98 │ 42.73 / 42.87 ±0.08 / 42.98 ms │ 32.17 / 32.56 ±0.47 / 33.19 ms │ +1.32x faster │
│ QQuery 99 │ 70.27 / 70.66 ±0.29 / 71.10 ms │ 52.44 / 53.16 ±0.71 / 54.51 ms │ +1.33x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────┴────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD) │ 9816.31ms │
│ Total Time (parquet-post-scan-filter) │ 8448.65ms │
│ Average Time (HEAD) │ 99.15ms │
│ Average Time (parquet-post-scan-filter) │ 85.34ms │
│ Queries Faster │ 29 │
│ Queries Slower │ 47 │
│ Queries with No Change │ 23 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴───────────┘

Resource Usage

tpcds — base (merge-base)

MetricValue
Wall time50.0s
Peak memory2.1 GiB
Avg memory1.5 GiB
CPU user220.8s
CPU sys5.6s
Peak spill0 B

tpcds — branch

MetricValue
Wall time45.0s
Peak memory2.0 GiB
Avg memory1.3 GiB
CPU user116.0s
CPU sys4.8s
Peak spill0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

Instance:c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing parquet-post-scan-filter (c1b6ad4) to 2bfdd4a (merge-base) diff

Run configuration
run benchmark clickbench_partitioned
CPU Details (lscpu)
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: ARM
Model name: Neoverse-V2
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 16
Socket(s): -
Cluster(s): 1
Stepping: r0p1
BogoMIPS: 2000.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache: 1 MiB (16 instances)
L1i cache: 1 MiB (16 instances)
L2 cache: 32 MiB (16 instances)
L3 cache: 80 MiB (1 instance)
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerability Gather data sampling: Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec rstack overflow: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsa: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Not affected
Details

Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.33 ms │ 1.33 ms │ no change │
│ QQuery 1 │ 12.92 ms │ 12.53 ms │ no change │
│ QQuery 2 │ 37.27 ms │ 36.96 ms │ no change │
│ QQuery 3 │ 31.85 ms │ 32.16 ms │ no change │
│ QQuery 4 │ 240.52 ms │ 241.27 ms │ no change │
│ QQuery 5 │ 289.96 ms │ 288.92 ms │ no change │
│ QQuery 6 │ 1.34 ms │ 1.35 ms │ no change │
│ QQuery 7 │ 14.76 ms │ 14.02 ms │ no change │
│ QQuery 8 │ 356.29 ms │ 352.14 ms │ no change │
│ QQuery 9 │ 481.00 ms │ 479.18 ms │ no change │
│ QQuery 10 │ 72.11 ms │ 70.75 ms │ no change │
│ QQuery 11 │ 83.85 ms │ 80.93 ms │ no change │
│ QQuery 12 │ 278.37 ms │ 284.36 ms │ no change │
│ QQuery 13 │ 373.27 ms │ 389.83 ms │ no change │
│ QQuery 14 │ 302.72 ms │ 301.86 ms │ no change │
│ QQuery 15 │ 293.97 ms │ 294.09 ms │ no change │
│ QQuery 16 │ 658.44 ms │ 651.66 ms │ no change │
│ QQuery 17 │ 641.17 ms │ 651.72 ms │ no change │
│ QQuery 18 │ 1328.22 ms │ 1298.26 ms │ no change │
│ QQuery 19 │ 29.44 ms │ 28.43 ms │ no change │
│ QQuery 20 │ 521.03 ms │ 522.45 ms │ no change │
│ QQuery 21 │ 528.14 ms │ 514.00 ms │ no change │
│ QQuery 22 │ 1030.10 ms │ 978.83 ms │ no change │
│ QQuery 23 │ 3150.59 ms │ 740.66 ms │ +4.25x faster │
│ QQuery 24 │ 42.29 ms │ 40.52 ms │ no change │
│ QQuery 25 │ 113.97 ms │ 104.62 ms │ +1.09x faster │
│ QQuery 26 │ 42.55 ms │ 40.86 ms │ no change │
│ QQuery 27 │ 527.87 ms │ 563.17 ms │ 1.07x slower │
│ QQuery 28 │ 2995.75 ms │ 3013.19 ms │ no change │
│ QQuery 29 │ 42.49 ms │ 42.08 ms │ no change │
│ QQuery 30 │ 323.88 ms │ 318.98 ms │ no change │
│ QQuery 31 │ 303.78 ms │ 287.10 ms │ +1.06x faster │
│ QQuery 32 │ 976.03 ms │ 971.07 ms │ no change │
│ QQuery 33 │ 1504.63 ms │ 1532.31 ms │ no change │
│ QQuery 34 │ 1529.26 ms │ 1516.67 ms │ no change │
│ QQuery 35 │ 296.44 ms │ 309.87 ms │ no change │
│ QQuery 36 │ 67.46 ms │ 76.05 ms │ 1.13x slower │
│ QQuery 37 │ 36.15 ms │ 40.08 ms │ 1.11x slower │
│ QQuery 38 │ 42.84 ms │ 42.66 ms │ no change │
│ QQuery 39 │ 148.57 ms │ 150.66 ms │ no change │
│ QQuery 40 │ 14.98 ms │ 15.50 ms │ no change │
│ QQuery 41 │ 14.90 ms │ 13.86 ms │ +1.07x faster │
│ QQuery 42 │ 13.77 ms │ 14.09 ms │ no change │
└───────────┴────────────┴──────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 19796.25ms │
│ Total Time (parquet-post-scan-filter) │ 17361.04ms │
│ Average Time (HEAD) │ 460.38ms │
│ Average Time (parquet-post-scan-filter) │ 403.75ms │
│ Queries Faster │ 4 │
│ Queries Slower │ 3 │
│ Queries with No Change │ 36 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘
Distribution per query (min / mean ±stddev / max):
Comparing HEAD and parquet-post-scan-filter
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query ┃ HEAD ┃ parquet-post-scan-filter ┃ Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0 │ 1.33 / 4.24 ±5.67 / 15.58 ms │ 1.33 / 4.23 ±5.64 / 15.50 ms │ no change │
│ QQuery 1 │ 12.92 / 13.28 ±0.25 / 13.62 ms │ 12.53 / 12.79 ±0.14 / 12.93 ms │ no change │
│ QQuery 2 │ 37.27 / 37.57 ±0.18 / 37.85 ms │ 36.96 / 37.77 ±0.65 / 38.70 ms │ no change │
│ QQuery 3 │ 31.85 / 33.04 ±1.00 / 34.67 ms │ 32.16 / 32.42 ±0.21 / 32.79 ms │ no change │
│ QQuery 4 │ 240.52 / 246.98 ±3.95 / 252.19 ms │ 241.27 / 245.54 ±3.06 / 250.18 ms │ no change │
│ QQuery 5 │ 289.96 / 292.12 ±2.32 / 296.17 ms │ 288.92 / 291.49 ±1.95 / 294.53 ms │ no change │
│ QQuery 6 │ 1.34 / 3.05 ±3.26 / 9.56 ms │ 1.35 / 1.49 ±0.21 / 1.89 ms │ +2.05x faster │
│ QQuery 7 │ 14.76 / 15.05 ±0.17 / 15.29 ms │ 14.02 / 17.96 ±7.38 / 32.71 ms │ 1.19x slower │
│ QQuery 8 │ 356.29 / 359.04 ±2.43 / 362.28 ms │ 352.14 / 358.54 ±4.92 / 367.24 ms │ no change │
│ QQuery 9 │ 481.00 / 489.01 ±6.66 / 497.03 ms │ 479.18 / 489.64 ±8.13 / 503.36 ms │ no change │
│ QQuery 10 │ 72.11 / 73.83 ±2.24 / 78.22 ms │ 70.75 / 74.92 ±7.75 / 90.42 ms │ no change │
│ QQuery 11 │ 83.85 / 85.05 ±1.18 / 87.26 ms │ 80.93 / 88.42 ±9.04 / 104.54 ms │ no change │
│ QQuery 12 │ 278.37 / 286.05 ±6.48 / 294.94 ms │ 284.36 / 293.36 ±9.23 / 309.86 ms │ no change │
│ QQuery 13 │ 373.27 / 391.85 ±15.33 / 419.66 ms │ 389.83 / 407.16 ±10.20 / 417.59 ms │ no change │
│ QQuery 14 │ 302.72 / 310.27 ±6.40 / 319.59 ms │ 301.86 / 308.92 ±4.28 / 312.86 ms │ no change │
│ QQuery 15 │ 293.97 / 305.71 ±6.84 / 314.69 ms │ 294.09 / 305.79 ±7.52 / 314.49 ms │ no change │
│ QQuery 16 │ 658.44 / 666.68 ±5.04 / 672.93 ms │ 651.66 / 680.47 ±18.19 / 705.09 ms │ no change │
│ QQuery 17 │ 641.17 / 665.84 ±12.44 / 674.53 ms │ 651.72 / 667.10 ±15.85 / 689.06 ms │ no change │
│ QQuery 18 │ 1328.22 / 1343.01 ±16.21 / 1364.83 ms │ 1298.26 / 1330.33 ±26.09 / 1362.23 ms │ no change │
│ QQuery 19 │ 29.44 / 39.53 ±15.52 / 69.74 ms │ 28.43 / 43.20 ±29.08 / 101.37 ms │ 1.09x slower │
│ QQuery 20 │ 521.03 / 530.76 ±7.41 / 538.95 ms │ 522.45 / 524.47 ±2.26 / 528.62 ms │ no change │
│ QQuery 21 │ 528.14 / 533.73 ±5.09 / 539.90 ms │ 514.00 / 522.25 ±5.93 / 532.41 ms │ no change │
│ QQuery 22 │ 1030.10 / 1036.28 ±6.49 / 1047.59 ms │ 978.83 / 990.83 ±8.88 / 999.72 ms │ no change │
│ QQuery 23 │ 3150.59 / 3176.84 ±20.56 / 3212.27 ms │ 740.66 / 774.71 ±26.38 / 808.36 ms │ +4.10x faster │
│ QQuery 24 │ 42.29 / 45.40 ±4.30 / 53.84 ms │ 40.52 / 45.48 ±8.76 / 62.96 ms │ no change │
│ QQuery 25 │ 113.97 / 115.41 ±1.08 / 117.24 ms │ 104.62 / 105.84 ±0.81 / 106.93 ms │ +1.09x faster │
│ QQuery 26 │ 42.55 / 43.10 ±0.45 / 43.70 ms │ 40.86 / 43.93 ±5.59 / 55.10 ms │ no change │
│ QQuery 27 │ 527.87 / 533.15 ±7.64 / 548.17 ms │ 563.17 / 571.66 ±7.33 / 580.04 ms │ 1.07x slower │
│ QQuery 28 │ 2995.75 / 3014.20 ±25.40 / 3063.02 ms │ 3013.19 / 3056.68 ±32.52 / 3106.63 ms │ no change │
│ QQuery 29 │ 42.49 / 49.98 ±8.87 / 61.37 ms │ 42.08 / 50.02 ±10.06 / 66.79 ms │ no change │
│ QQuery 30 │ 323.88 / 331.99 ±4.76 / 337.18 ms │ 318.98 / 333.18 ±8.67 / 340.97 ms │ no change │
│ QQuery 31 │ 303.78 / 325.38 ±14.82 / 346.78 ms │ 287.10 / 297.52 ±8.66 / 308.84 ms │ +1.09x faster │
│ QQuery 32 │ 976.03 / 1019.75 ±34.48 / 1080.18 ms │ 971.07 / 1005.48 ±17.62 / 1021.05 ms │ no change │
│ QQuery 33 │ 1504.63 / 1556.25 ±43.90 / 1622.39 ms │ 1532.31 / 1567.93 ±22.31 / 1589.14 ms │ no change │
│ QQuery 34 │ 1529.26 / 1579.69 ±39.32 / 1647.97 ms │ 1516.67 / 1572.30 ±39.15 / 1622.43 ms │ no change │
│ QQuery 35 │ 296.44 / 312.42 ±16.39 / 340.05 ms │ 309.87 / 338.09 ±45.36 / 428.36 ms │ 1.08x slower │
│ QQuery 36 │ 67.46 / 74.46 ±5.81 / 83.10 ms │ 76.05 / 79.88 ±4.19 / 87.05 ms │ 1.07x slower │
│ QQuery 37 │ 36.15 / 39.45 ±4.12 / 47.53 ms │ 40.08 / 43.47 ±4.48 / 51.89 ms │ 1.10x slower │
│ QQuery 38 │ 42.84 / 47.40 ±5.31 / 57.71 ms │ 42.66 / 46.17 ±3.97 / 53.64 ms │ no change │
│ QQuery 39 │ 148.57 / 153.18 ±5.26 / 163.21 ms │ 150.66 / 160.58 ±6.76 / 169.96 ms │ no change │
│ QQuery 40 │ 14.98 / 17.76 ±4.82 / 27.38 ms │ 15.50 / 15.69 ±0.21 / 16.04 ms │ +1.13x faster │
│ QQuery 41 │ 14.90 / 16.29 ±1.59 / 18.49 ms │ 13.86 / 19.74 ±6.92 / 29.09 ms │ 1.21x slower │
│ QQuery 42 │ 13.77 / 15.68 ±3.03 / 21.72 ms │ 14.09 / 14.26 ±0.17 / 14.56 ms │ +1.10x faster │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary ┃ ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD) │ 20229.74ms │
│ Total Time (parquet-post-scan-filter) │ 17871.68ms │
│ Average Time (HEAD) │ 470.46ms │
│ Average Time (parquet-post-scan-filter) │ 415.62ms │
│ Queries Faster │ 6 │
│ Queries Slower │ 7 │
│ Queries with No Change │ 30 │
│ Queries with Failure │ 0 │
└─────────────────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

MetricValue
Wall time105.0s
Peak memory12.3 GiB
Avg memory4.5 GiB
CPU user1038.8s
CPU sys71.0s
Peak spill0 B

clickbench_partitioned — branch

MetricValue
Wall time90.0s
Peak memory12.3 GiB
Avg memory4.6 GiB
CPU user896.7s
CPU sys62.5s
Peak spill0 B

File an issue against this benchmark runner

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api changeAuto detected API changecoreCore DataFusion cratedatasourceChanges to the datasource cratesqllogictestSQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@adriangb@adriangbot@codecov-commenter