Skip to content

Test aggmetrics - #25096

Draft
kosiew wants to merge 17 commits into
apache:mainfrom
kosiew:test-aggmetrics
Draft

Test aggmetrics#25096
kosiew wants to merge 17 commits into
apache:mainfrom
kosiew:test-aggmetrics

Conversation

@kosiew

@kosiew kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

test aggmetrics benchmark requested in this comment

- Added harness implementation:
- `benchmarks/sql_benchmarks/array_agg_distinct/array_agg_distinct.suite` – defines the benchmark suite, test parameters, and execution configuration for the data‑free SQL harness.
- `benchmarks/sql_benchmarks/array_agg_distinct/benchmarks/q01.benchmark` – contains the specific query benchmark (`q01`) that exercises the `array_agg(DISTINCT …)` workload without requiring any input data.

- Workload characteristics:
- Simulates **2 M range rows** → **1 M groups**.
- Each group contains **2 rows** with **2 distinct values**, providing a realistic yet data‑free test scenario for aggregation performance.
- add bench.sh wrapper for array_agg_distinct
@github-actions github-actions Bot added documentation Improvements or additions to documentation logical-expr Logical plan and expressions physical-expr Changes to the physical-expr crates functions Changes to functions implementation physical-plan Changes to the physical-plan crate labels Sep 9, 2026
@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark array_agg_distinct

baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5595863294-2241-hpxbn 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 372b160 (372b160) to b827774 diff

Run configuration
run benchmark array_agg_distinct
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed before finishing (Kubernetes reason: BackoffLimitExceeded).

Benchmarks requested: array_agg_distinct

Runner log (last 40 lines)
h2o_big_window_sorted:          Window Top-N over a declared-sorted h2o input, large dataset (1e9 rows),  default file format is csv
h2o_small_window_sorted_parquet:  Window Top-N over a declared-sorted h2o input, small dataset (1e7 rows),  source file format is parquet
h2o_medium_window_sorted_parquet: Window Top-N over a declared-sorted h2o input, medium dataset (1e8 rows), source file format is parquet
h2o_big_window_sorted_parquet:    Window Top-N over a declared-sorted h2o input, large dataset (1e9 rows),  source file format is parquet
h2o_small_parquet:              h2oai benchmark with small dataset (1e7 rows) for groupby,  file format is parquet
h2o_medium_parquet:             h2oai benchmark with medium dataset (1e8 rows) for groupby, file format is parquet
h2o_big_parquet:                h2oai benchmark with large dataset (1e9 rows) for groupby,  file format is parquet
h2o_small_join_parquet:         h2oai benchmark with small dataset (1e7 rows) for join,  file format is parquet
h2o_medium_join_parquet:        h2oai benchmark with medium dataset (1e8 rows) for join, file format is parquet
h2o_big_join_parquet:           h2oai benchmark with large dataset (1e9 rows) for join,  file format is parquet
h2o_small_window_parquet:       Extended h2oai benchmark with small dataset (1e7 rows) for window,  file format is parquet
h2o_medium_window_parquet:      Extended h2oai benchmark with medium dataset (1e8 rows) for window, file format is parquet
h2o_big_window_parquet:         Extended h2oai benchmark with large dataset (1e9 rows) for window,  file format is parquet

# Join Order Benchmark (IMDB)
imdb:                   Join Order Benchmark (JOB) using the IMDB dataset converted to parquet

# Micro-Benchmarks (specific operators and features)
cancellation:           How long cancelling a query takes
nlj:                    Benchmark for simple nested loop joins, testing various join scenarios
hj:                     Benchmark for simple hash joins, testing various join scenarios
smj:                    Benchmark for simple sort merge joins, testing various join scenarios
dict:                   Benchmark for dictionary-encoded group-by scenarios
compile_profile:        Compile and execute TPC-H across selected Cargo profiles, reporting timing and binary size


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Supported Configuration (Environment Variables)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DATA_DIR            directory to store datasets
CARGO_COMMAND       command that runs the benchmark binary
DATAFUSION_DIR      directory to use (default /workspace/datafusion-base)
RESULTS_NAME        folder where the benchmark files are stored
PREFER_HASH_JOIN    Prefer hash join algorithm (default true)
SIMULATE_LATENCY    Simulate object store latency to mimic S3 (default false)
DATAFUSION_*        Set the given datafusion configuration


stderr:
Kubernetes message
Job has reached the specified backoff limit

File an issue against this benchmark runner

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.43499% with 32 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.81%. Comparing base (8a92281) to head (372b160).
⚠️ Report is 17 commits behind head on main.

Files with missing lines Patch % Lines
...n/physical-plan/src/aggregates/aggregate_stream.rs 88.15% 6 Missing and 12 partials ⚠️
...hysical-plan/src/aggregates/grouped_hash_stream.rs 83.92% 5 Missing and 4 partials ⚠️
...plan/src/aggregates/aggregate_hash_table/common.rs 83.33% 0 Missing and 2 partials ⚠️
datafusion/functions-aggregate/src/array_agg.rs 95.00% 0 Missing and 1 partial ⚠️
datafusion/physical-expr/src/aggregate.rs 93.75% 0 Missing and 1 partial ⚠️
.../aggregates/aggregate_hash_table/common_ordered.rs 88.88% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #25096      +/-   ##
==========================================
+ Coverage   81.72%   81.81%   +0.08%     
==========================================
  Files        1127     1130       +3     
  Lines      416519   418129    +1610     
  Branches   416519   418129    +1610     
==========================================
+ Hits       340401   342079    +1678     
+ Misses      56115    55900     -215     
- Partials    20003    20150     +147     

☔ 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.

@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

show benchmark queue

@adriangbot

Copy link
Copy Markdown

Hi @kosiew, you asked to view the benchmark queue (#25096 (comment)).

No pending jobs.


File an issue against this benchmark runner

@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark array_agg_distinct

env:
  CARGO_BUILD_JOBS: 1
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5596275200-2244-8fbms 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 372b160 (372b160) to b827774 diff

Run configuration
run benchmark array_agg_distinct
env:
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed before finishing (Kubernetes reason: BackoffLimitExceeded).

Benchmarks requested: array_agg_distinct

Runner log (last 40 lines)
h2o_big_window_sorted:          Window Top-N over a declared-sorted h2o input, large dataset (1e9 rows),  default file format is csv
h2o_small_window_sorted_parquet:  Window Top-N over a declared-sorted h2o input, small dataset (1e7 rows),  source file format is parquet
h2o_medium_window_sorted_parquet: Window Top-N over a declared-sorted h2o input, medium dataset (1e8 rows), source file format is parquet
h2o_big_window_sorted_parquet:    Window Top-N over a declared-sorted h2o input, large dataset (1e9 rows),  source file format is parquet
h2o_small_parquet:              h2oai benchmark with small dataset (1e7 rows) for groupby,  file format is parquet
h2o_medium_parquet:             h2oai benchmark with medium dataset (1e8 rows) for groupby, file format is parquet
h2o_big_parquet:                h2oai benchmark with large dataset (1e9 rows) for groupby,  file format is parquet
h2o_small_join_parquet:         h2oai benchmark with small dataset (1e7 rows) for join,  file format is parquet
h2o_medium_join_parquet:        h2oai benchmark with medium dataset (1e8 rows) for join, file format is parquet
h2o_big_join_parquet:           h2oai benchmark with large dataset (1e9 rows) for join,  file format is parquet
h2o_small_window_parquet:       Extended h2oai benchmark with small dataset (1e7 rows) for window,  file format is parquet
h2o_medium_window_parquet:      Extended h2oai benchmark with medium dataset (1e8 rows) for window, file format is parquet
h2o_big_window_parquet:         Extended h2oai benchmark with large dataset (1e9 rows) for window,  file format is parquet

# Join Order Benchmark (IMDB)
imdb:                   Join Order Benchmark (JOB) using the IMDB dataset converted to parquet

# Micro-Benchmarks (specific operators and features)
cancellation:           How long cancelling a query takes
nlj:                    Benchmark for simple nested loop joins, testing various join scenarios
hj:                     Benchmark for simple hash joins, testing various join scenarios
smj:                    Benchmark for simple sort merge joins, testing various join scenarios
dict:                   Benchmark for dictionary-encoded group-by scenarios
compile_profile:        Compile and execute TPC-H across selected Cargo profiles, reporting timing and binary size


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Supported Configuration (Environment Variables)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DATA_DIR            directory to store datasets
CARGO_COMMAND       command that runs the benchmark binary
DATAFUSION_DIR      directory to use (default /workspace/datafusion-base)
RESULTS_NAME        folder where the benchmark files are stored
PREFER_HASH_JOIN    Prefer hash join algorithm (default true)
SIMULATE_LATENCY    Simulate object store latency to mimic S3 (default false)
DATAFUSION_*        Set the given datafusion configuration


stderr:
Kubernetes message
Job has reached the specified backoff limit

File an issue against this benchmark runner

@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark sql

env:
  CARGO_BUILD_JOBS: 1
  BENCH_NAME: array_agg_distinct
  BENCH_QUERY: 1
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5596498840-2245-xm4ls 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 372b160 (372b160) to b827774 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

Results will be posted here when complete


File an issue against this benchmark runner

@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

show benchmark queue

@adriangbot

Copy link
Copy Markdown

Hi @kosiew, you asked to view the benchmark queue (#25096 (comment)).

Comment Repo PR User Benchmarks Status
#5596498840 apache/datafusion #25096 kosiew ["sql"] running

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request hit the 7200s job deadline before finishing.

Benchmarks requested: sql

Kubernetes message
Job was active longer than specified deadline

File an issue against this benchmark runner

@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark sql

env:
  BENCH_NAME: array_agg_distinct
  BENCH_QUERY: 1
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5598648699-2246-9kkvc 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 372b160 (372b160) to b827774 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
baseline:
  ref: "b827774378aedcb73b921d3b44ccb6491b595fc2"
changed:
  ref: "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

Benchmark for this request failed before finishing (Kubernetes reason: BackoffLimitExceeded).

Benchmarks requested: sql

Runner log (last 40 lines)
2026-09-09T08:20:29.829573Z  INFO runner starting benchmark runner bench_type=Datafusion, pr_url=https://github.com/apache/datafusion/pull/25096, benchmarks=sql
2026-09-09T08:20:29.891579Z  INFO benchmark_controller::runner::bench_datafusion === Cloning PR branch ===
2026-09-09T08:20:29.891688Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["clone", "--depth=200", "https://github.com/apache/datafusion.git", "/workspace/datafusion-branch"], cwd="/"
2026-09-09T08:20:34.903550Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["fetch", "origin", "refs/pull/25096/head:test-aggmetrics", "main"], cwd="/workspace/datafusion-branch"
2026-09-09T08:20:39.905713Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["checkout", "test-aggmetrics"], cwd="/workspace/datafusion-branch"
2026-09-09T08:20:44.907474Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["merge-base", "HEAD", "origin/main"], cwd="/workspace/datafusion-branch"
2026-09-09T08:20:49.909644Z  INFO benchmark_controller::runner::bench_datafusion === Checking out custom changed ref === changed_ref=372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7
2026-09-09T08:20:49.909659Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["fetch", "origin", "refs/pull/25096/head"], cwd="/workspace/datafusion-branch"
2026-09-09T08:20:54.911630Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["fetch", "origin"], cwd="/workspace/datafusion-branch"
2026-09-09T08:20:59.913832Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["-c", "advice.detachedHead=false", "checkout", "372b16099fe83eaa62cd27dcd7435ee3f6dc6fd7"], cwd="/workspace/datafusion-branch"
2026-09-09T08:21:04.916216Z  INFO benchmark_controller::runner::bench_datafusion === Cloning merge-base ===
2026-09-09T08:21:04.916231Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["clone", "--depth=200", "https://github.com/apache/datafusion.git", "/workspace/datafusion-base"], cwd="/"
2026-09-09T08:21:09.918905Z  INFO benchmark_controller::runner::bench_datafusion === Checking out custom baseline ref === baseline_ref=b827774378aedcb73b921d3b44ccb6491b595fc2
2026-09-09T08:21:09.918919Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["fetch", "origin", "refs/pull/25096/head"], cwd="/workspace/datafusion-base"
2026-09-09T08:21:14.920939Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["fetch", "origin"], cwd="/workspace/datafusion-base"
2026-09-09T08:21:19.922379Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["-c", "advice.detachedHead=false", "checkout", "b827774378aedcb73b921d3b44ccb6491b595fc2"], cwd="/workspace/datafusion-base"
2026-09-09T08:21:24.924347Z  INFO benchmark_controller::runner::shell running command cmd=rustc, args=["--version"], cwd="/"
2026-09-09T08:21:29.926608Z  INFO benchmark_controller::runner::shell running command cmd=cargo, args=["metadata", "--no-deps", "--format-version", "1"], cwd="/workspace/datafusion-branch/benchmarks"
2026-09-09T08:21:34.961833Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["rev-parse", "HEAD"], cwd="/workspace/datafusion-branch"
2026-09-09T08:21:39.964051Z  INFO benchmark_controller::runner::shell running command cmd=git, args=["rev-parse", "HEAD"], cwd="/workspace/datafusion-base"
2026-09-09T08:21:44.966480Z  INFO benchmark_controller::runner::controller_client post_comment _repo=apache/datafusion, _pr_number=25096, job_id=2246
2026-09-09T08:21:45.766669Z  INFO benchmark_controller::runner::bench_datafusion ** Setting up data for criterion bench sql **
2026-09-09T08:21:45.766675Z  INFO benchmark_controller::runner::bench_datafusion ** Running sql baseline (criterion) **
2026-09-09T08:21:45.766685Z  INFO benchmark_controller::runner::shell running command (monitored) cmd=cargo, args=["bench", "--features=parquet", "--bench", "sql", "--", "--save-baseline", "HEAD"], cwd="/workspace/datafusion-base"
Kubernetes message
Job has reached the specified backoff limit

File an issue against this benchmark runner

@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark sql

env:
  CARGO_BUILD_JOBS: 1
  BENCH_NAME: array_agg_distinct
  BENCH_QUERY: 1
baseline:
  ref: "09d65873070ed225737ed22bf47744a6712d6715"
changed:
  ref: "908b5ef76cfde9e75dff8733f685246c61984b30"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5599222828-2247-2b7q8 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 908b5ef (908b5ef) to 09d6587 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "09d65873070ed225737ed22bf47744a6712d6715"
changed:
  ref: "908b5ef76cfde9e75dff8733f685246c61984b30"

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 908b5ef (908b5ef) to 09d6587 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "09d65873070ed225737ed22bf47744a6712d6715"
changed:
  ref: "908b5ef76cfde9e75dff8733f685246c61984b30"
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

group                     HEAD                                   test-aggmetrics
-----                     ----                                   ---------------
array_agg_distinct/Q01    1.00      2.3±0.02ms        ? ?/sec    1.00      2.4±0.01ms        ? ?/sec

Resource Usage

sql — base (merge-base)

Metric Value
Wall time 2935.6s
Peak memory 199.8 MiB
Avg memory 662.4 KiB
CPU user 24.5s
CPU sys 2.2s
Peak spill 0 B

sql — branch

Metric Value
Wall time 2925.6s
Peak memory 196.4 MiB
Avg memory 635.4 KiB
CPU user 26.0s
CPU sys 2.1s
Peak spill 0 B

File an issue against this benchmark runner

Reduce the data-free grouped array_agg(DISTINCT) workload while preserving its two-rows-per-group and two-distinct-values-per-group shape.
…comprehensive tests

- Introduce optional `AggregateMetric(s)` API with default no‑op setters for backward compatibility.
- Add lazy‑stable internal metrics: `agg_expr_{i}_internal_{subphase}_time` for fine‑grained phase tracking.
- Wire the metrics across all execution paths: stream, grouped, hash, ordered, and replay.
- Implement `array_agg(DISTINCT)` distinct‑timer to measure distinct‑aggregation latency.
- Extend test coverage:
- Partition merge scenarios.
- Repeated DISTINCT expression handling.
- Update documentation to reflect new API, metric naming, and wiring details.
…ove performance

Cache one adapter per subphase; no repeated wrapper allocation
- Introduce a single reusable adapter instance per subphase, eliminating the need to allocate multiple wrapper objects. This reduces memory churn and improves performance during metric collection.

Skip `Arc` clone/clock read when no metric
- Detect when there is no active metric to record and skip the unnecessary `Arc` clone and system clock reads. This lowers CPU overhead for subphases that don't emit metrics.

Make submetric implementation details private
- Move internal helpers and type-specific logic for submetrics behind `pub(super)` or module‑level privacy boundaries. This hides implementation details from external users, enhancing encapsulation and reducing the risk of misuse.
- Updated the test to verify that both `internal_distinct` timers are positive (`>0`)
- This resolves the blocker where timers could be zero, causing test failures
- Ensures correct initialization and behavior of the timer logic
- Improves the reliability and confidence of timer‑related functionality
… partition display, and empty input behavior

- Clarify identity/cardinality format as **(expr index, subphase, partition)**
- Note that replacement accumulators share a single timer
- Explain how partitions are combined in the normal display
- Document that construction‑time requests can cause metrics to appear on empty input
- Counts the retained metric‑handle field in the accumulator’s size.
- Adds a regression test to verify the size calculation under various inputs.
- Updates the exact distinct‑size expectation to match the corrected behavior.
…stinct identities and timer handling

- Add new 2‑partition execution test for `aggregate_stream.rs`.
- Fix repeated `array_agg(DISTINCT ...)` identities and labels to be consistent.
- Ensure exact partition identity handling: 0/1 per repeated expression.
- Merge timer total calculation into a single metric.
- Assert that normal `sum` operations do not produce any internal metric.
- Implement a lock‑free `OnceLock` fast path for the first/common subphase in `AggregateSubMetrics`, eliminating per‑group `Mutex` and `HashMap` lookups for distinct subphases.
- Keep the locked map only for handling extra / uncommon subphases, reducing contention and improving performance.
- Preserve zero‑duration timers internally, preventing the 1 ns‑per‑call inflation that previously affected fast paths.
- Ensure time‑merging logic respects zero‑duration metrics, avoiding spurious non‑zero contributions.
- Add comprehensive tests covering caching behavior, zero‑duration scenarios, and multi‑subphase usage.
- Restored shared Time::add min‑1ns behavior.
- Removed exact‑duration API/use.
- Added regression test merge‑zero → recorded 1ns.
- Updated submetric zero test.
…per‑batch 1 ns inflation

- Time::add: legacy min‑1 ns merge unchanged.
- Time::add_duration_exact: restored, scoped API.
- Aggregate submetrics use exact adds → no per‑batch 1 ns inflation.
- Tests cover both contracts.
…ile‑time test for DistinctArrayAggAccumulator

- Updated `AggregateMetric` to implement the `RefUnwindSafe` trait, ensuring safe reference semantics during unwind operations.
- Added a compile‑time test (`distinct_array_agg_accumulator_unwindsafe`) that verifies `DistinctArrayAggAccumulator` maintains both `UnwindSafe` and `RefUnwindSafe` guarantees, preventing panics in error‑recovery scenarios.
@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark sql

env:
  CARGO_BUILD_JOBS: 1
  BENCH_NAME: array_agg_distinct
  BENCH_QUERY: 1
baseline:
  ref: "90b6f659b09d73049f92c01e4157e3a249fcce3e"
changed:
  ref: "e3c11e7a266ae9956f9c7c3e007d13301279522a"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5600614517-2249-nz2xr 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 e3c11e7 (e3c11e7) to 90b6f65 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "90b6f659b09d73049f92c01e4157e3a249fcce3e"
changed:
  ref: "e3c11e7a266ae9956f9c7c3e007d13301279522a"

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 e3c11e7 (e3c11e7) to 90b6f65 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "90b6f659b09d73049f92c01e4157e3a249fcce3e"
changed:
  ref: "e3c11e7a266ae9956f9c7c3e007d13301279522a"
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

group                     HEAD                                   test-aggmetrics
-----                     ----                                   ---------------
array_agg_distinct/Q01    1.00      4.8±0.03ms        ? ?/sec    1.08      5.1±0.19ms        ? ?/sec

Resource Usage

sql — base (merge-base)

Metric Value
Wall time 2950.7s
Peak memory 365.0 MiB
Avg memory 1.2 MiB
CPU user 64.7s
CPU sys 2.3s
Peak spill 0 B

sql — branch

Metric Value
Wall time 3190.7s
Peak memory 372.3 MiB
Avg memory 1.2 MiB
CPU user 66.2s
CPU sys 2.4s
Peak spill 0 B

File an issue against this benchmark runner

…mprove per-group metrics

- Skip internal DISTINCT timing for batches <16 to reduce overhead.
- Avoid per-group `Instant::now()`, metric `Arc` clone, and atomic updates for small batches.
- Metrics are still recorded for batches >=16 to retain visibility where needed.
- Added threshold tests to verify the new behavior.
- Direct `GroupedHashAggregateStream` usage.
- Multiple groups → adapter per‑group accumulators.
- Asserts positive `agg_expr_0_internal_distinct_time`.
…mprove per-group metrics

- Skip internal DISTINCT timing for batches <16 to reduce overhead.
- Avoid per-group `Instant::now()`, metric `Arc` clone, and atomic updates for small batches.
- Metrics are still recorded for batches >=16 to retain visibility where needed.
- Added threshold tests to verify the new behavior.
…for accumulators

This change introduces two new methods to the Accumulator trait:
1. `grouped_update_batch_metric`: Returns an optional metric that can be used to time grouped updates once per batch instead of per group.
2. `update_batch_grouped`: Updates state when called by a grouped accumulator adapter, with support for using the grouped update metric.

The GroupsAccumulatorAdapter now uses these new methods to avoid timing every per-group call, recording one interval for the full batch instead. This reduces the overhead of metric collection when there are many groups.

DistinctArrayAggAccumulator is updated to take advantage of the new grouped update functionality, skipping per-group timing for deduplication operations.

This refactor improves performance for grouped aggregations by making metric collection proportional to batch count rather than group cardinality.
@kosiew

kosiew commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

run benchmark sql

env:
  CARGO_BUILD_JOBS: 1
  BENCH_NAME: array_agg_distinct
  BENCH_QUERY: 1
baseline:
  ref: "90b6f659b09d73049f92c01e4157e3a249fcce3e"
changed:
  ref: "fe1ca2432935210f71da16357e74787697e372b4"

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5603858849-2267-65r98 6.12.94+ #1 SMP Fri Jul 17 09:42:57 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 fe1ca24 (fe1ca24) to 90b6f65 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "90b6f659b09d73049f92c01e4157e3a249fcce3e"
changed:
  ref: "fe1ca2432935210f71da16357e74787697e372b4"

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 fe1ca24 (fe1ca24) to 90b6f65 diff

Run configuration
run benchmark sql
env:
  BENCH_NAME: "array_agg_distinct"
  BENCH_QUERY: "1"
  CARGO_BUILD_JOBS: "1"
baseline:
  ref: "90b6f659b09d73049f92c01e4157e3a249fcce3e"
changed:
  ref: "fe1ca2432935210f71da16357e74787697e372b4"
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

group                     HEAD                                   test-aggmetrics
-----                     ----                                   ---------------
array_agg_distinct/Q01    1.00      5.1±0.03ms        ? ?/sec    1.04      5.3±0.06ms        ? ?/sec

Resource Usage

sql — base (merge-base)

Metric Value
Wall time 3110.7s
Peak memory 368.3 MiB
Avg memory 1.1 MiB
CPU user 63.6s
CPU sys 2.1s
Peak spill 0 B

sql — branch

Metric Value
Wall time 3675.8s
Peak memory 346.8 MiB
Avg memory 985.6 KiB
CPU user 63.9s
CPU sys 2.3s
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

documentation Improvements or additions to documentation functions Changes to functions implementation logical-expr Logical plan and expressions physical-expr Changes to the physical-expr crates physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants