Skip to content

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

Draft
adriangb wants to merge 5 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 5 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_time Time, 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-actions github-actions Bot 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
Contributor Author

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)

Metric Value
Wall time 5.0s
Peak memory 5.5 GiB
Avg memory 5.0 GiB
CPU user 29.4s
CPU sys 2.2s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 10.0s
Peak memory 5.6 GiB
Avg memory 4.8 GiB
CPU user 40.7s
CPU sys 1.9s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb
adriangb force-pushed the parquet-post-scan-filter branch from 7dd85fc to 2fffad2 Compare May 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)

Metric Value
Wall time 55.0s
Peak memory 7.0 GiB
Avg memory 6.3 GiB
CPU user 237.6s
CPU sys 5.9s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 60.0s
Peak memory 6.5 GiB
Avg memory 6.0 GiB
CPU user 150.4s
CPU sys 4.6s
Peak spill 0 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)

Metric Value
Wall time 100.0s
Peak memory 30.4 GiB
Avg memory 23.3 GiB
CPU user 1024.5s
CPU sys 62.1s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 30.0 GiB
Avg memory 23.3 GiB
CPU user 890.2s
CPU sys 50.9s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

adriangb commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

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-actions Bot 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-actions github-actions Bot 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)

Metric Value
Wall time 5.0s
Peak memory 1.1 GiB
Avg memory 503.0 MiB
CPU user 22.9s
CPU sys 1.9s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 10.0s
Peak memory 986.1 MiB
Avg memory 403.2 MiB
CPU user 32.8s
CPU sys 1.6s
Peak spill 0 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)

Metric Value
Wall time 55.0s
Peak memory 2.4 GiB
Avg memory 1.6 GiB
CPU user 225.9s
CPU sys 5.9s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 60.0s
Peak memory 1.9 GiB
Avg memory 1.2 GiB
CPU user 152.3s
CPU sys 5.3s
Peak spill 0 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)

Metric Value
Wall time 105.0s
Peak memory 11.3 GiB
Avg memory 4.4 GiB
CPU user 1028.7s
CPU sys 71.4s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 13.0 GiB
Avg memory 4.7 GiB
CPU user 890.2s
CPU sys 61.1s
Peak spill 0 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 running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5239899751-1514-clr6x 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_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-c5239899751-1515-ghpc4 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 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-c5239899751-1516-gk9v2 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 tpch

Results will be posted here when complete


File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
Contributor Author

show benchmark queue

@adriangbot

Copy link
Copy Markdown

Hi @adriangb, you asked to view the benchmark queue (#22384 (comment)).

Comment Repo PR User Benchmarks Status
#5239899751 apache/datafusion #22384 adriangb ["clickbench_partitioned"] running
#5239899751 apache/datafusion #22384 adriangb ["tpcds"] running
#5239899751 apache/datafusion #22384 adriangb ["tpch"] running

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
Contributor Author

run benchmarks

env:
DATAFUSION_EXECUTION_PARQUET_PUSHDOWN_FILTERS: "true"

@adriangb

Copy link
Copy Markdown
Contributor Author

show benchmark queue

@adriangbot

Copy link
Copy Markdown

Hi @adriangb, you asked to view the benchmark queue (#22384 (comment)).

Comment Repo PR User Benchmarks Status
#5239899751 apache/datafusion #22384 adriangb ["clickbench_partitioned"] running
#5239899751 apache/datafusion #22384 adriangb ["tpcds"] running
#5239899751 apache/datafusion #22384 adriangb ["tpch"] running
#5240177619 apache/datafusion #22384 adriangb ["clickbench_partitioned"] running
#5240177619 apache/datafusion #22384 adriangb ["tpcds"] running
#5240177619 apache/datafusion #22384 adriangb ["tpch"] running

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 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)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 506.5 MiB
CPU user 21.4s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 998.0 MiB
Avg memory 599.2 MiB
CPU user 23.4s
CPU sys 1.3s
Peak spill 0 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_partitioned
env:
  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)

Metric Value
Wall time 50.0s
Peak memory 2.2 GiB
Avg memory 1.6 GiB
CPU user 218.6s
CPU sys 6.1s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 50.0s
Peak memory 1.9 GiB
Avg memory 1.3 GiB
CPU user 123.6s
CPU sys 5.3s
Peak spill 0 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 tpch
env:
  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 tpcds
env:
  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)

Metric Value
Wall time 105.0s
Peak memory 11.5 GiB
Avg memory 4.3 GiB
CPU user 1024.8s
CPU sys 74.2s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 10.8 GiB
Avg memory 4.7 GiB
CPU user 886.6s
CPU sys 63.4s
Peak spill 0 B

File an issue against this benchmark runner

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.36364% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.99%. Comparing base (2bfdd4a) to head (e743ae8).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
datafusion/datasource-parquet/src/push_decoder.rs 54.16% 10 Missing and 1 partial ⚠️
...usion/datasource-parquet/src/decoder_projection.rs 89.13% 1 Missing and 4 partials ⚠️
datafusion/datasource-parquet/src/row_filter.rs 94.11% 3 Missing and 2 partials ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             main   #22384    +/-   ##
========================================
  Coverage   80.99%   80.99%            
========================================
  Files        1106     1106            
  Lines      383158   383334   +176     
  Branches   383158   383334   +176     
========================================
+ Hits       310331   310475   +144     
- Misses      54513    54531    +18     
- Partials    18314    18328    +14     

☔ 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 tpch
env:
  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)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 739.0 MiB
CPU user 23.2s
CPU sys 1.7s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.3 GiB
Avg memory 752.1 MiB
CPU user 23.2s
CPU sys 1.8s
Peak spill 0 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_partitioned
env:
  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)

Metric Value
Wall time 90.0s
Peak memory 11.0 GiB
Avg memory 4.2 GiB
CPU user 860.4s
CPU sys 62.5s
Peak spill 0 B

clickbench_partitioned — branch

Metric Value
Wall time 90.0s
Peak memory 11.0 GiB
Avg memory 4.6 GiB
CPU user 873.9s
CPU sys 66.2s
Peak spill 0 B

File an issue against this benchmark runner

@adriangb

Copy link
Copy Markdown
Contributor Author

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 tpcds
env:
  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
env:
  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)

Metric Value
Wall time 45.0s
Peak memory 1.5 GiB
Avg memory 1.1 GiB
CPU user 121.8s
CPU sys 5.6s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 45.0s
Peak memory 1.7 GiB
Avg memory 1.1 GiB
CPU user 122.1s
CPU sys 5.9s
Peak spill 0 B

File an issue against this benchmark runner

adriangb and others added 4 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>
…ost-scan predicate

At `pushdown_filters = false` the scan routed the entire predicate into
the post-scan filter, dynamic filters included. That is a bad trade for
the canonical dynamic filter shape — a `CASE` over per-partition
hash-table probes — because the operator that produced it re-checks the
same rows anyway, so evaluating it in the scan is doing the join's work
twice, on more rows. In TPC-H q3 it was 52% of total CPU.

A dynamic filter earns its keep at the row-group / page level, where one
evaluation against statistics can skip millions of rows, so it still
joins the scan's predicate and `dynamic_rg_pruning=eligible` is
unchanged. It is only kept out of the *row-level* filter, and only at
this setting: with `pushdown_filters = true` arrow-rs evaluates it
against an accumulating `RowSelection`, so it sees only rows the cheaper
conjuncts already kept and the rows it rejects need never be decoded.

Dropping a conjunct from the post-scan filter is only sound if nothing
was relying on the scan to enforce it, so `try_pushdown_filters` is the
other half of the change: a dynamic filter is reported as *not* pushed
down at this setting, exactly as on `main`, so a parent that was
enforcing one keeps doing so. This is not a dead path — a join's dynamic
filter reaches the scan as a parent filter when it is pushed through an
intervening operator, and a plain `SortExec` materialises a `FilterExec`
for the conjuncts that come back unsupported. The
`dynamic_filter_pushdown_config.slt` expectation is restored to the plan
`main` produces for exactly that case.

Static conjuncts, and conjuncts the `RowFilter` machinery rejected, still
run post-scan — that is what the in-scan filter is for and it is
unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@adriangb

Copy link
Copy Markdown
Contributor Author

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)

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 516.3 MiB
CPU user 21.6s
CPU sys 1.6s
Peak spill 0 B

tpch — branch

Metric Value
Wall time 5.0s
Peak memory 1.2 GiB
Avg memory 522.1 MiB
CPU user 21.4s
CPU sys 1.6s
Peak spill 0 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)

Metric Value
Wall time 50.0s
Peak memory 2.3 GiB
Avg memory 1.7 GiB
CPU user 211.0s
CPU sys 6.0s
Peak spill 0 B

tpcds — branch

Metric Value
Wall time 50.0s
Peak memory 1.9 GiB
Avg memory 1.4 GiB
CPU user 218.2s
CPU sys 5.9s
Peak spill 0 B

File an issue against this benchmark runner

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

Labels

auto detected api change Auto detected API change core Core DataFusion crate datasource Changes to the datasource crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants