Skip to content

Super fast extended tests and improved planning speed linux#21084

Merged
blaginin merged 4 commits intomainfrom
db/cache-cores
Mar 22, 2026
Merged

Super fast extended tests and improved planning speed linux#21084
blaginin merged 4 commits intomainfrom
db/cache-cores

Conversation

@blaginin
Copy link
Member

@blaginin blaginin commented Mar 20, 2026

This makes sqlite extended finish in 5 minutes: https://github.com/apache/datafusion/actions/runs/23362665318/job/67969547959

Currently on main it takes 20 minutes (and a month ago it would take two hours 🤯)

@blaginin blaginin self-assigned this Mar 20, 2026
@github-actions github-actions bot added development-process Related to development process of DataFusion common Related to common crate labels Mar 20, 2026
submodules: true
fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
Copy link
Member Author

@blaginin blaginin Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sets RUST_BACKTRACE=1 and we have a lot of expected failures in sqlogictests - getting backtrace for those is pointless and expensive

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend adding a comment here explaining the rationale for not calling setup-builder -- otherwise someone in the future could very reasonably undo this optimization by accident I think

available_parallelism()
.unwrap_or(NonZero::new(1).expect("literal value `1` shouldn't be zero"))
.get()
static PARALLELISM: LazyLock<usize> = LazyLock::new(|| {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

telegram-cloud-photo-size-2-5328039229025621418-w

when running on linux, this function is constantly running

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this obviously affects not only tests, happy to apply to only tests, but feels like a good change overall? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm great find!

Perhaps there also seems to go something wrong with rewrite_with_subqueries + SimplifyExpressions that make it call so often / create it so often.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think part of it is that SimplifyContext doesn't have a builder, we end up allocating its internal fields (which includes ConfigOptions, which is what ends up calling get_available_parallelism like @blaginin pointed out here), then immediately overriding the config and schema.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree -- it would be great if we could solve that and thread the correct context down. Maybe as a follow on PR?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe something like this will also help #21092

Cargo.toml Outdated

[profile.ci-optimized]
inherits = "release"
debug-assertions = true
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @AdamGS for the catch 🙏

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually, will move it to a separate PR #21085

@Dandandan
Copy link
Contributor

Run benchmark sql_planner

@adriangbot
Copy link

🤖 Criterion benchmark running (GKE) | trigger
Linux bench-c4103519431-482-h8n4t 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing db/cache-cores (34d3034) to 1cb4de4 (merge-base) diff
BENCH_NAME=sql_planner
BENCH_COMMAND=cargo bench --features=parquet --bench sql_planner
BENCH_FILTER=
Results will be posted here when complete

@adriangbot
Copy link

Benchmark for this request failed.

Last 20 lines of output:

Click to expand
Cloning into '/workspace/datafusion-branch'...
db/cache-cores
From https://github.com/apache/datafusion
 * [new ref]         refs/pull/21084/head -> db/cache-cores
 * branch            main                 -> FETCH_HEAD
Switched to branch 'db/cache-cores'
1cb4de41c1e0d0a48438c3b1790509973f7acad8
Cloning into '/workspace/datafusion-base'...
HEAD is now at 1cb4de4 perf: Optimize `approx_distinct` for inline Utf8View (#21064)
rustc 1.94.0 (4a4ef493e 2026-03-02)
34d3034148b9703457c3c88896c5d1afafbb023a
1cb4de41c1e0d0a48438c3b1790509973f7acad8
    Finished `bench` profile [optimized] target(s) in 0.28s
     Running benches/sql_planner.rs (target/release/deps/sql_planner-47c960ddd0fb1441)
Gnuplot not found, using plotters backend

thread 'main' (41897) panicked at datafusion/core/benches/sql_planner.rs:264:9:
benchmarks/data/hits_partitioned/ could not be loaded. Please run 'benchmarks/bench.sh data clickbench_partitioned' prior to running this benchmark
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: bench failed, to rerun pass `-p datafusion --bench sql_planner`

Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me

@alamb alamb changed the title Super fast extended tests Super fast extended tests and improved planning speed linux Mar 21, 2026
@alamb alamb added the performance Make DataFusion faster label Mar 21, 2026
@alamb
Copy link
Contributor

alamb commented Mar 21, 2026

BTW @AdamGS and I are exploring other improvements based on this insight:

@alamb
Copy link
Contributor

alamb commented Mar 21, 2026

I have queued up a sql_planner run for this PR

@alamb-ghbot
Copy link

🤖 ./gh_compare_branch_bench.sh compare_branch_bench.sh Running
Linux aal-dev 6.17.0-1008-gcp #8~24.04.1-Ubuntu SMP Fri Jan 30 23:44:29 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Comparing db/cache-cores (34d3034) to 1cb4de4 diff
BENCH_NAME=sql_planner
BENCH_COMMAND=cargo bench --features=parquet --bench sql_planner
BENCH_FILTER=
BENCH_BRANCH_NAME=db_cache-cores
Results will be posted here when complete

@alamb-ghbot
Copy link

🤖: Benchmark completed

Details

group                                                 db_cache-cores                         main
-----                                                 --------------                         ----
logical_aggregate_with_join                           1.00    637.2±3.15µs        ? ?/sec    1.05    667.4±1.52µs        ? ?/sec
logical_plan_struct_join_agg_sort                     1.00    286.2±2.79µs        ? ?/sec    1.00    285.4±2.78µs        ? ?/sec
logical_select_all_from_1000                          1.00     11.3±0.05ms        ? ?/sec    1.01     11.4±0.05ms        ? ?/sec
logical_select_one_from_700                           1.00    420.1±1.57µs        ? ?/sec    1.05    439.7±3.12µs        ? ?/sec
logical_trivial_join_high_numbered_columns            1.00    375.2±1.43µs        ? ?/sec    1.05    395.5±0.94µs        ? ?/sec
logical_trivial_join_low_numbered_columns             1.00    360.4±3.16µs        ? ?/sec    1.06    381.7±3.05µs        ? ?/sec
physical_intersection                                 1.00    850.6±4.51µs        ? ?/sec    1.89  1607.2±16.49µs        ? ?/sec
physical_join_consider_sort                           1.00   1427.4±3.27µs        ? ?/sec    1.59      2.3±0.01ms        ? ?/sec
physical_join_distinct                                1.00    352.0±2.58µs        ? ?/sec    1.05    370.8±3.47µs        ? ?/sec
physical_many_self_joins                              1.00     10.1±0.05ms        ? ?/sec    1.32     13.3±0.06ms        ? ?/sec
physical_plan_clickbench_all                          1.00    150.7±0.83ms        ? ?/sec    1.34    202.7±0.68ms        ? ?/sec
physical_plan_clickbench_q1                           1.00  1680.7±12.30µs        ? ?/sec    1.27      2.1±0.01ms        ? ?/sec
physical_plan_clickbench_q10                          1.00      2.6±0.01ms        ? ?/sec    1.39      3.6±0.04ms        ? ?/sec
physical_plan_clickbench_q11                          1.00      2.7±0.01ms        ? ?/sec    1.50      4.1±0.04ms        ? ?/sec
physical_plan_clickbench_q12                          1.00      2.8±0.01ms        ? ?/sec    1.48      4.2±0.02ms        ? ?/sec
physical_plan_clickbench_q13                          1.00      2.5±0.05ms        ? ?/sec    1.48      3.7±0.04ms        ? ?/sec
physical_plan_clickbench_q14                          1.00      2.7±0.02ms        ? ?/sec    1.52      4.1±0.03ms        ? ?/sec
physical_plan_clickbench_q15                          1.00      2.6±0.02ms        ? ?/sec    1.50      3.8±0.04ms        ? ?/sec
physical_plan_clickbench_q16                          1.00      2.2±0.02ms        ? ?/sec    1.46      3.2±0.06ms        ? ?/sec
physical_plan_clickbench_q17                          1.00      2.3±0.01ms        ? ?/sec    1.46      3.3±0.04ms        ? ?/sec
physical_plan_clickbench_q18                          1.00      2.1±0.02ms        ? ?/sec    1.29      2.6±0.02ms        ? ?/sec
physical_plan_clickbench_q19                          1.00      2.6±0.01ms        ? ?/sec    1.40      3.6±0.02ms        ? ?/sec
physical_plan_clickbench_q2                           1.00      2.1±0.01ms        ? ?/sec    1.33      2.8±0.02ms        ? ?/sec
physical_plan_clickbench_q20                          1.00  1752.5±13.82µs        ? ?/sec    1.21      2.1±0.02ms        ? ?/sec
physical_plan_clickbench_q21                          1.00      2.1±0.02ms        ? ?/sec    1.31      2.8±0.04ms        ? ?/sec
physical_plan_clickbench_q22                          1.00      2.7±0.02ms        ? ?/sec    1.46      3.9±0.05ms        ? ?/sec
physical_plan_clickbench_q23                          1.00      2.9±0.03ms        ? ?/sec    1.43      4.2±0.04ms        ? ?/sec
physical_plan_clickbench_q24                          1.00      3.9±0.02ms        ? ?/sec    1.23      4.8±0.03ms        ? ?/sec
physical_plan_clickbench_q25                          1.00      2.2±0.01ms        ? ?/sec    1.54      3.4±0.04ms        ? ?/sec
physical_plan_clickbench_q26                          1.00      2.0±0.02ms        ? ?/sec    1.42      2.9±0.02ms        ? ?/sec
physical_plan_clickbench_q27                          1.00      2.3±0.02ms        ? ?/sec    1.53      3.4±0.03ms        ? ?/sec
physical_plan_clickbench_q28                          1.00      2.9±0.02ms        ? ?/sec    1.50      4.4±0.04ms        ? ?/sec
physical_plan_clickbench_q29                          1.00      3.2±0.02ms        ? ?/sec    1.48      4.7±0.10ms        ? ?/sec
physical_plan_clickbench_q3                           1.00      2.1±0.01ms        ? ?/sec    1.23      2.5±0.02ms        ? ?/sec
physical_plan_clickbench_q30                          1.00     19.4±0.16ms        ? ?/sec    1.05     20.4±0.12ms        ? ?/sec
physical_plan_clickbench_q31                          1.00      3.0±0.03ms        ? ?/sec    1.47      4.4±0.06ms        ? ?/sec
physical_plan_clickbench_q32                          1.00      3.0±0.03ms        ? ?/sec    1.46      4.4±0.06ms        ? ?/sec
physical_plan_clickbench_q33                          1.00      2.6±0.01ms        ? ?/sec    1.41      3.6±0.09ms        ? ?/sec
physical_plan_clickbench_q34                          1.00      2.2±0.01ms        ? ?/sec    1.46      3.2±0.03ms        ? ?/sec
physical_plan_clickbench_q35                          1.00      2.3±0.01ms        ? ?/sec    1.45      3.3±0.02ms        ? ?/sec
physical_plan_clickbench_q36                          1.00      2.7±0.02ms        ? ?/sec    1.43      3.9±0.03ms        ? ?/sec
physical_plan_clickbench_q37                          1.00      3.3±0.03ms        ? ?/sec    1.44      4.7±0.04ms        ? ?/sec
physical_plan_clickbench_q38                          1.00      3.3±0.03ms        ? ?/sec    1.42      4.6±0.07ms        ? ?/sec
physical_plan_clickbench_q39                          1.00      3.1±0.03ms        ? ?/sec    1.31      4.0±0.04ms        ? ?/sec
physical_plan_clickbench_q4                           1.00  1811.8±13.30µs        ? ?/sec    1.21      2.2±0.03ms        ? ?/sec
physical_plan_clickbench_q40                          1.00      3.8±0.04ms        ? ?/sec    1.26      4.8±0.04ms        ? ?/sec
physical_plan_clickbench_q41                          1.00      3.3±0.03ms        ? ?/sec    1.28      4.2±0.03ms        ? ?/sec
physical_plan_clickbench_q42                          1.00      3.2±0.01ms        ? ?/sec    1.32      4.2±0.04ms        ? ?/sec
physical_plan_clickbench_q43                          1.00      3.4±0.02ms        ? ?/sec    1.28      4.4±0.04ms        ? ?/sec
physical_plan_clickbench_q44                          1.00  1903.4±11.15µs        ? ?/sec    1.20      2.3±0.02ms        ? ?/sec
physical_plan_clickbench_q45                          1.00  1914.5±10.93µs        ? ?/sec    1.21      2.3±0.01ms        ? ?/sec
physical_plan_clickbench_q46                          1.00      2.3±0.01ms        ? ?/sec    1.38      3.2±0.03ms        ? ?/sec
physical_plan_clickbench_q47                          1.00      3.3±0.04ms        ? ?/sec    1.43      4.7±0.09ms        ? ?/sec
physical_plan_clickbench_q48                          1.00      3.4±0.03ms        ? ?/sec    1.47      5.0±0.05ms        ? ?/sec
physical_plan_clickbench_q49                          1.00      3.7±0.06ms        ? ?/sec    1.43      5.3±0.06ms        ? ?/sec
physical_plan_clickbench_q5                           1.00   1999.4±8.29µs        ? ?/sec    1.25      2.5±0.02ms        ? ?/sec
physical_plan_clickbench_q50                          1.00      3.5±0.02ms        ? ?/sec    1.20      4.2±0.05ms        ? ?/sec
physical_plan_clickbench_q51                          1.00      2.5±0.02ms        ? ?/sec    1.42      3.5±0.04ms        ? ?/sec
physical_plan_clickbench_q6                           1.00  1986.0±10.31µs        ? ?/sec    1.27      2.5±0.01ms        ? ?/sec
physical_plan_clickbench_q7                           1.00   1703.4±8.22µs        ? ?/sec    1.23      2.1±0.02ms        ? ?/sec
physical_plan_clickbench_q8                           1.00      2.3±0.02ms        ? ?/sec    1.33      3.0±0.03ms        ? ?/sec
physical_plan_clickbench_q9                           1.00      2.4±0.01ms        ? ?/sec    1.48      3.6±0.02ms        ? ?/sec
physical_plan_struct_join_agg_sort                    1.00  1823.7±21.71µs        ? ?/sec    1.69      3.1±0.01ms        ? ?/sec
physical_plan_tpcds_all                               1.00   1022.6±2.72ms        ? ?/sec    1.83  1874.5±14.15ms        ? ?/sec
physical_plan_tpch_all                                1.00     62.7±0.49ms        ? ?/sec    1.97    123.6±0.74ms        ? ?/sec
physical_plan_tpch_q1                                 1.00      2.0±0.02ms        ? ?/sec    1.40      2.8±0.03ms        ? ?/sec
physical_plan_tpch_q10                                1.00      3.8±0.02ms        ? ?/sec    1.87      7.1±0.09ms        ? ?/sec
physical_plan_tpch_q11                                1.00      3.4±0.01ms        ? ?/sec    2.42      8.3±0.18ms        ? ?/sec
physical_plan_tpch_q12                                1.00  1802.7±13.22µs        ? ?/sec    1.64      2.9±0.03ms        ? ?/sec
physical_plan_tpch_q13                                1.00  1402.4±10.88µs        ? ?/sec    2.11      3.0±0.03ms        ? ?/sec
physical_plan_tpch_q14                                1.00   1818.5±8.84µs        ? ?/sec    1.57      2.9±0.01ms        ? ?/sec
physical_plan_tpch_q16                                1.00      2.3±0.02ms        ? ?/sec    2.20      5.1±0.04ms        ? ?/sec
physical_plan_tpch_q17                                1.00      2.6±0.02ms        ? ?/sec    2.13      5.5±0.04ms        ? ?/sec
physical_plan_tpch_q18                                1.00      2.7±0.01ms        ? ?/sec    2.21      5.9±0.04ms        ? ?/sec
physical_plan_tpch_q19                                1.00      3.3±0.01ms        ? ?/sec    1.53      5.1±0.04ms        ? ?/sec
physical_plan_tpch_q2                                 1.00      5.6±0.05ms        ? ?/sec    2.17     12.2±0.22ms        ? ?/sec
physical_plan_tpch_q20                                1.00      3.1±0.04ms        ? ?/sec    2.54      7.9±0.14ms        ? ?/sec
physical_plan_tpch_q21                                1.00      4.1±0.02ms        ? ?/sec    2.44      9.9±0.15ms        ? ?/sec
physical_plan_tpch_q22                                1.00      2.9±0.02ms        ? ?/sec    2.24      6.4±0.10ms        ? ?/sec
physical_plan_tpch_q3                                 1.00      2.6±0.03ms        ? ?/sec    2.10      5.5±0.05ms        ? ?/sec
physical_plan_tpch_q4                                 1.00  1436.4±18.49µs        ? ?/sec    2.06      3.0±0.07ms        ? ?/sec
physical_plan_tpch_q5                                 1.00      3.3±0.01ms        ? ?/sec    1.80      5.9±0.03ms        ? ?/sec
physical_plan_tpch_q6                                 1.00    899.5±4.97µs        ? ?/sec    1.72   1545.2±7.19µs        ? ?/sec
physical_plan_tpch_q7                                 1.00      4.0±0.03ms        ? ?/sec    1.76      7.1±0.02ms        ? ?/sec
physical_plan_tpch_q8                                 1.00      5.3±0.02ms        ? ?/sec    1.73      9.2±0.11ms        ? ?/sec
physical_plan_tpch_q9                                 1.00      3.9±0.02ms        ? ?/sec    1.70      6.6±0.10ms        ? ?/sec
physical_select_aggregates_from_200                   1.00     17.3±0.06ms        ? ?/sec    1.03     17.8±0.17ms        ? ?/sec
physical_select_all_from_1000                         1.00     24.6±0.25ms        ? ?/sec    1.03     25.3±0.11ms        ? ?/sec
physical_select_one_from_700                          1.00   1079.8±5.57µs        ? ?/sec    1.29   1397.7±9.72µs        ? ?/sec
physical_sorted_union_order_by_10_int64               1.00      5.4±0.04ms        ? ?/sec    1.81      9.7±0.04ms        ? ?/sec
physical_sorted_union_order_by_10_uint64              1.00     14.0±0.09ms        ? ?/sec    1.96     27.6±0.21ms        ? ?/sec
physical_sorted_union_order_by_50_int64               1.00    135.1±0.92ms        ? ?/sec    1.15    155.8±1.13ms        ? ?/sec
physical_sorted_union_order_by_50_uint64              1.00    789.5±4.42ms        ? ?/sec    1.24    975.8±3.91ms        ? ?/sec
physical_theta_join_consider_sort                     1.00   1794.3±9.51µs        ? ?/sec    1.48      2.7±0.02ms        ? ?/sec
physical_unnest_to_join                               1.00   1850.2±7.69µs        ? ?/sec    1.69      3.1±0.05ms        ? ?/sec
physical_window_function_partition_by_12_on_values    1.00    941.6±6.86µs        ? ?/sec    1.33   1250.1±5.76µs        ? ?/sec
physical_window_function_partition_by_30_on_values    1.00  1760.0±11.89µs        ? ?/sec    1.18      2.1±0.01ms        ? ?/sec
physical_window_function_partition_by_4_on_values     1.00    610.2±7.82µs        ? ?/sec    1.50   917.8±13.68µs        ? ?/sec
physical_window_function_partition_by_7_on_values     1.00    728.2±6.49µs        ? ?/sec    1.42  1032.6±12.22µs        ? ?/sec
physical_window_function_partition_by_8_on_values     1.00    775.5±6.06µs        ? ?/sec    1.39   1074.7±5.29µs        ? ?/sec
with_param_values_many_columns                        1.01    598.2±5.04µs        ? ?/sec    1.00    593.6±4.39µs        ? ?/sec

Copy link
Contributor

@comphead comphead left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @blaginin and @AdamGS
interesting how many calls it was doing in call tree. I have some feeling we do lots of unnecessary work in config/sessioncontext, etc

@Dandandan
Copy link
Contributor

run benchmarks

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4105676668-493-cchbn 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing db/cache-cores (34d3034) to 1cb4de4 (merge-base) diff using: clickbench_partitioned
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4105676668-494-ck5tc 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing db/cache-cores (34d3034) to 1cb4de4 (merge-base) diff using: tpcds
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark running (GKE) | trigger
Linux bench-c4105676668-495-7z29t 6.12.55+ #1 SMP Sun Feb 1 08:59:41 UTC 2026 aarch64 GNU/Linux
Comparing db/cache-cores (34d3034) to 1cb4de4 (merge-base) diff using: tpch
Results will be posted here when complete

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and db_cache-cores
--------------------
Benchmark tpch_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                           HEAD ┃                 db_cache-cores ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │ 45.99 / 46.51 ±0.63 / 47.70 ms │ 45.53 / 47.29 ±1.41 / 49.48 ms │     no change │
│ QQuery 2  │ 24.60 / 25.52 ±0.87 / 27.16 ms │ 20.97 / 21.18 ±0.20 / 21.52 ms │ +1.21x faster │
│ QQuery 3  │ 33.57 / 33.83 ±0.22 / 34.11 ms │ 31.57 / 31.86 ±0.23 / 32.16 ms │ +1.06x faster │
│ QQuery 4  │ 21.11 / 22.57 ±1.10 / 24.21 ms │ 20.39 / 21.66 ±1.32 / 24.14 ms │     no change │
│ QQuery 5  │ 50.65 / 51.89 ±1.00 / 52.87 ms │ 48.70 / 50.05 ±1.05 / 51.32 ms │     no change │
│ QQuery 6  │ 17.62 / 17.89 ±0.23 / 18.31 ms │ 17.13 / 17.43 ±0.23 / 17.74 ms │     no change │
│ QQuery 7  │ 56.60 / 58.50 ±1.97 / 62.25 ms │ 53.24 / 55.36 ±1.36 / 57.42 ms │ +1.06x faster │
│ QQuery 8  │ 50.22 / 50.99 ±0.70 / 52.24 ms │ 48.04 / 48.38 ±0.20 / 48.66 ms │ +1.05x faster │
│ QQuery 9  │ 55.83 / 56.71 ±0.63 / 57.54 ms │ 53.90 / 54.36 ±0.47 / 55.13 ms │     no change │
│ QQuery 10 │ 73.52 / 74.50 ±1.01 / 76.41 ms │ 71.03 / 72.07 ±1.00 / 73.90 ms │     no change │
│ QQuery 11 │ 16.71 / 16.93 ±0.31 / 17.53 ms │ 13.72 / 13.95 ±0.23 / 14.38 ms │ +1.21x faster │
│ QQuery 12 │ 28.47 / 29.27 ±0.90 / 31.02 ms │ 27.44 / 27.90 ±0.26 / 28.23 ms │     no change │
│ QQuery 13 │ 40.68 / 40.86 ±0.16 / 41.14 ms │ 38.44 / 39.23 ±0.93 / 40.85 ms │     no change │
│ QQuery 14 │ 29.21 / 29.75 ±0.37 / 30.24 ms │ 28.56 / 28.91 ±0.32 / 29.36 ms │     no change │
│ QQuery 15 │ 36.06 / 36.26 ±0.24 / 36.71 ms │ 33.49 / 33.95 ±0.51 / 34.92 ms │ +1.07x faster │
│ QQuery 16 │ 17.46 / 17.86 ±0.21 / 18.09 ms │ 16.19 / 16.48 ±0.28 / 16.99 ms │ +1.08x faster │
│ QQuery 17 │ 74.09 / 75.47 ±0.77 / 76.11 ms │ 72.11 / 72.95 ±0.76 / 74.21 ms │     no change │
│ QQuery 18 │ 79.24 / 80.26 ±0.80 / 81.48 ms │ 77.48 / 78.80 ±0.98 / 80.44 ms │     no change │
│ QQuery 19 │ 38.69 / 39.48 ±0.68 / 40.52 ms │ 37.46 / 38.00 ±0.44 / 38.71 ms │     no change │
│ QQuery 20 │ 43.36 / 44.37 ±1.04 / 46.20 ms │ 39.68 / 40.30 ±0.64 / 41.49 ms │ +1.10x faster │
│ QQuery 21 │ 69.09 / 69.89 ±0.67 / 71.02 ms │ 64.12 / 65.25 ±0.99 / 66.99 ms │ +1.07x faster │
│ QQuery 22 │ 20.10 / 20.58 ±0.41 / 21.11 ms │ 17.80 / 17.90 ±0.08 / 18.03 ms │ +1.15x faster │
└───────────┴────────────────────────────────┴────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Benchmark Summary             ┃          ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Total Time (HEAD)             │ 939.89ms │
│ Total Time (db_cache-cores)   │ 893.25ms │
│ Average Time (HEAD)           │  42.72ms │
│ Average Time (db_cache-cores) │  40.60ms │
│ Queries Faster                │       10 │
│ Queries Slower                │        0 │
│ Queries with No Change        │       12 │
│ Queries with Failure          │        0 │
└───────────────────────────────┴──────────┘

Resource Usage

tpch — base (merge-base)

Metric Value
Wall time 5.0s
Peak memory 4.1 GiB
Avg memory 3.6 GiB
CPU user 33.3s
CPU sys 3.1s
Disk read 0 B
Disk write 144.0 KiB

tpch — branch

Metric Value
Wall time 4.7s
Peak memory 4.0 GiB
Avg memory 3.5 GiB
CPU user 33.3s
CPU sys 2.9s
Disk read 0 B
Disk write 56.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and db_cache-cores
--------------------
Benchmark tpcds_sf1.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                     HEAD ┃                           db_cache-cores ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1  │           48.59 / 49.36 ±0.60 / 50.38 ms │           44.48 / 45.53 ±0.67 / 46.52 ms │ +1.08x faster │
│ QQuery 2  │        152.06 / 153.58 ±0.92 / 154.64 ms │        146.10 / 147.56 ±1.04 / 148.76 ms │     no change │
│ QQuery 3  │        116.84 / 117.87 ±0.77 / 119.12 ms │        114.60 / 115.99 ±0.92 / 117.30 ms │     no change │
│ QQuery 4  │    1318.71 / 1357.01 ±49.48 / 1450.87 ms │    1417.34 / 1445.73 ±23.25 / 1485.57 ms │  1.07x slower │
│ QQuery 5  │        184.68 / 185.95 ±0.95 / 187.63 ms │        172.85 / 173.49 ±0.91 / 175.24 ms │ +1.07x faster │
│ QQuery 6  │    1010.88 / 1060.25 ±26.61 / 1079.62 ms │    1013.93 / 1045.47 ±26.35 / 1088.93 ms │     no change │
│ QQuery 7  │        354.54 / 358.58 ±4.34 / 366.93 ms │        359.81 / 364.20 ±2.57 / 367.60 ms │     no change │
│ QQuery 8  │        117.51 / 120.17 ±1.62 / 122.50 ms │        114.45 / 116.60 ±1.19 / 117.66 ms │     no change │
│ QQuery 9  │        111.57 / 115.47 ±2.44 / 117.44 ms │        101.14 / 106.31 ±2.59 / 107.82 ms │ +1.09x faster │
│ QQuery 10 │        111.14 / 112.40 ±1.02 / 114.23 ms │        107.77 / 110.52 ±1.62 / 112.75 ms │     no change │
│ QQuery 11 │      868.69 / 921.14 ±67.23 / 1053.70 ms │      978.00 / 997.15 ±19.09 / 1020.57 ms │  1.08x slower │
│ QQuery 12 │           48.55 / 50.20 ±1.37 / 51.80 ms │           46.19 / 46.93 ±0.71 / 48.26 ms │ +1.07x faster │
│ QQuery 13 │        415.12 / 419.17 ±3.27 / 423.60 ms │        397.99 / 401.35 ±1.90 / 403.86 ms │     no change │
│ QQuery 14 │     1064.78 / 1070.26 ±7.56 / 1085.03 ms │    1014.39 / 1027.18 ±11.33 / 1048.17 ms │     no change │
│ QQuery 15 │           18.14 / 18.44 ±0.25 / 18.79 ms │           16.51 / 17.63 ±0.97 / 19.43 ms │     no change │
│ QQuery 16 │           44.36 / 45.09 ±0.64 / 46.24 ms │           41.22 / 41.58 ±0.35 / 42.16 ms │ +1.08x faster │
│ QQuery 17 │        237.93 / 241.49 ±3.06 / 246.31 ms │        242.51 / 247.24 ±2.82 / 250.39 ms │     no change │
│ QQuery 18 │        132.02 / 132.84 ±0.85 / 134.34 ms │        127.61 / 129.44 ±1.10 / 130.74 ms │     no change │
│ QQuery 19 │        156.39 / 158.81 ±1.88 / 161.40 ms │        155.89 / 156.85 ±0.55 / 157.44 ms │     no change │
│ QQuery 20 │           15.53 / 15.96 ±0.35 / 16.43 ms │           13.35 / 14.16 ±0.50 / 14.81 ms │ +1.13x faster │
│ QQuery 21 │           23.36 / 23.80 ±0.53 / 24.53 ms │           19.39 / 20.02 ±0.53 / 20.97 ms │ +1.19x faster │
│ QQuery 22 │        481.49 / 485.15 ±1.89 / 486.63 ms │        486.11 / 488.18 ±2.09 / 492.11 ms │     no change │
│ QQuery 23 │       921.43 / 952.97 ±28.54 / 999.09 ms │        912.32 / 921.49 ±9.84 / 940.58 ms │     no change │
│ QQuery 24 │        441.91 / 444.40 ±1.92 / 447.79 ms │        418.11 / 421.12 ±2.52 / 425.72 ms │ +1.06x faster │
│ QQuery 25 │        355.63 / 363.86 ±5.73 / 372.18 ms │        352.90 / 355.85 ±2.27 / 359.29 ms │     no change │
│ QQuery 26 │           83.82 / 85.49 ±1.65 / 87.89 ms │           84.05 / 85.89 ±1.76 / 89.21 ms │     no change │
│ QQuery 27 │        352.70 / 355.10 ±1.69 / 357.89 ms │        353.77 / 357.43 ±3.32 / 362.59 ms │     no change │
│ QQuery 28 │        153.80 / 155.74 ±1.12 / 157.02 ms │        151.08 / 152.87 ±1.47 / 154.50 ms │     no change │
│ QQuery 29 │       297.62 / 314.12 ±24.54 / 362.93 ms │        304.56 / 309.44 ±3.83 / 314.46 ms │     no change │
│ QQuery 30 │           46.79 / 50.13 ±1.96 / 52.69 ms │           44.03 / 45.66 ±1.23 / 47.10 ms │ +1.10x faster │
│ QQuery 31 │        175.61 / 178.07 ±2.01 / 181.42 ms │        169.00 / 170.45 ±1.37 / 172.77 ms │     no change │
│ QQuery 32 │           60.59 / 61.94 ±1.33 / 64.38 ms │           56.93 / 57.87 ±0.63 / 58.83 ms │ +1.07x faster │
│ QQuery 33 │        147.34 / 149.26 ±1.14 / 150.91 ms │        139.43 / 141.53 ±1.42 / 143.15 ms │ +1.05x faster │
│ QQuery 34 │        108.34 / 109.45 ±0.79 / 110.42 ms │        105.26 / 106.87 ±1.15 / 108.25 ms │     no change │
│ QQuery 35 │       113.50 / 132.07 ±25.48 / 182.28 ms │        108.38 / 109.05 ±0.94 / 110.84 ms │ +1.21x faster │
│ QQuery 36 │        223.19 / 228.32 ±3.10 / 231.91 ms │        219.03 / 220.91 ±1.58 / 223.02 ms │     no change │
│ QQuery 37 │        185.84 / 187.08 ±0.91 / 188.10 ms │        176.42 / 179.67 ±2.55 / 183.72 ms │     no change │
│ QQuery 38 │           90.99 / 95.01 ±2.15 / 97.03 ms │           83.77 / 89.98 ±4.63 / 95.56 ms │ +1.06x faster │
│ QQuery 39 │        144.64 / 147.57 ±2.05 / 150.96 ms │        124.25 / 126.57 ±1.63 / 128.93 ms │ +1.17x faster │
│ QQuery 40 │        119.33 / 126.06 ±8.31 / 141.90 ms │        111.93 / 116.52 ±4.72 / 125.10 ms │ +1.08x faster │
│ QQuery 41 │           18.21 / 19.80 ±1.31 / 21.77 ms │           14.07 / 16.14 ±1.14 / 17.25 ms │ +1.23x faster │
│ QQuery 42 │        111.23 / 112.23 ±0.57 / 112.81 ms │        106.48 / 107.83 ±1.75 / 111.07 ms │     no change │
│ QQuery 43 │           87.80 / 88.18 ±0.27 / 88.61 ms │           83.73 / 84.20 ±0.36 / 84.83 ms │     no change │
│ QQuery 44 │           17.69 / 18.28 ±0.33 / 18.67 ms │           11.68 / 12.13 ±0.51 / 13.12 ms │ +1.51x faster │
│ QQuery 45 │           58.28 / 59.63 ±1.20 / 61.74 ms │           52.48 / 54.16 ±2.01 / 57.16 ms │ +1.10x faster │
│ QQuery 46 │        245.93 / 247.90 ±2.63 / 252.98 ms │        243.65 / 247.28 ±3.77 / 254.29 ms │     no change │
│ QQuery 47 │       696.11 / 723.86 ±23.57 / 758.89 ms │        810.67 / 823.83 ±9.10 / 834.77 ms │  1.14x slower │
│ QQuery 48 │        286.82 / 291.74 ±3.17 / 296.08 ms │        287.35 / 297.68 ±5.63 / 303.40 ms │     no change │
│ QQuery 49 │        262.87 / 264.85 ±1.45 / 266.68 ms │        254.16 / 256.34 ±2.64 / 261.38 ms │     no change │
│ QQuery 50 │        227.41 / 238.10 ±6.17 / 245.35 ms │        232.50 / 237.53 ±3.30 / 241.31 ms │     no change │
│ QQuery 51 │        189.62 / 190.57 ±0.72 / 191.50 ms │        182.31 / 185.27 ±2.22 / 188.98 ms │     no change │
│ QQuery 52 │        109.37 / 111.23 ±2.39 / 115.72 ms │        107.59 / 108.42 ±0.73 / 109.76 ms │     no change │
│ QQuery 53 │        105.56 / 106.94 ±0.93 / 108.09 ms │        102.72 / 104.23 ±1.10 / 106.08 ms │     no change │
│ QQuery 54 │        154.95 / 157.07 ±1.24 / 158.27 ms │        146.55 / 148.64 ±1.64 / 150.57 ms │ +1.06x faster │
│ QQuery 55 │        110.03 / 112.09 ±1.81 / 114.69 ms │        106.21 / 107.44 ±1.71 / 110.79 ms │     no change │
│ QQuery 56 │        150.89 / 151.36 ±0.44 / 151.94 ms │        140.45 / 141.27 ±0.58 / 141.82 ms │ +1.07x faster │
│ QQuery 57 │        189.12 / 190.07 ±1.00 / 191.46 ms │        171.58 / 174.20 ±2.19 / 177.97 ms │ +1.09x faster │
│ QQuery 58 │        303.50 / 313.65 ±7.72 / 322.69 ms │        296.60 / 300.07 ±3.38 / 306.34 ms │     no change │
│ QQuery 59 │        200.75 / 203.30 ±1.93 / 205.87 ms │        199.05 / 200.61 ±0.93 / 201.57 ms │     no change │
│ QQuery 60 │        151.45 / 153.13 ±1.31 / 154.37 ms │        145.77 / 146.15 ±0.30 / 146.51 ms │     no change │
│ QQuery 61 │        175.54 / 177.49 ±1.42 / 179.83 ms │        174.41 / 176.63 ±1.37 / 178.01 ms │     no change │
│ QQuery 62 │      890.29 / 950.81 ±46.54 / 1016.31 ms │      928.11 / 977.55 ±67.64 / 1110.75 ms │     no change │
│ QQuery 63 │        106.35 / 108.92 ±1.87 / 111.10 ms │        102.16 / 104.71 ±1.51 / 106.33 ms │     no change │
│ QQuery 64 │        731.58 / 737.56 ±5.63 / 748.22 ms │        692.62 / 700.32 ±3.91 / 703.48 ms │ +1.05x faster │
│ QQuery 65 │        254.41 / 264.44 ±5.07 / 268.32 ms │        249.90 / 253.32 ±1.75 / 254.66 ms │     no change │
│ QQuery 66 │       243.40 / 259.80 ±10.95 / 274.78 ms │        248.25 / 253.78 ±6.52 / 266.23 ms │     no change │
│ QQuery 67 │       309.26 / 319.92 ±11.41 / 341.77 ms │        314.98 / 327.06 ±7.84 / 336.39 ms │     no change │
│ QQuery 68 │        282.67 / 285.50 ±2.34 / 289.00 ms │        294.33 / 297.24 ±3.32 / 303.69 ms │     no change │
│ QQuery 69 │        106.98 / 109.05 ±1.72 / 112.18 ms │        104.93 / 105.83 ±0.78 / 107.24 ms │     no change │
│ QQuery 70 │        334.49 / 345.86 ±6.05 / 352.28 ms │        334.47 / 345.73 ±7.74 / 358.31 ms │     no change │
│ QQuery 71 │        136.61 / 140.12 ±2.90 / 145.45 ms │        133.25 / 135.28 ±2.14 / 139.36 ms │     no change │
│ QQuery 72 │       697.34 / 715.34 ±11.88 / 728.61 ms │       696.03 / 717.09 ±10.75 / 726.58 ms │     no change │
│ QQuery 73 │        105.19 / 107.08 ±1.66 / 109.47 ms │        101.36 / 104.52 ±3.72 / 111.80 ms │     no change │
│ QQuery 74 │       667.27 / 687.78 ±17.29 / 714.84 ms │        581.57 / 589.13 ±6.99 / 600.57 ms │ +1.17x faster │
│ QQuery 75 │        295.06 / 296.80 ±1.29 / 298.42 ms │        275.11 / 277.82 ±1.62 / 279.59 ms │ +1.07x faster │
│ QQuery 76 │        141.97 / 144.16 ±2.24 / 148.35 ms │        133.69 / 134.67 ±0.71 / 135.58 ms │ +1.07x faster │
│ QQuery 77 │        200.49 / 204.20 ±2.09 / 206.24 ms │        189.18 / 190.87 ±1.28 / 192.25 ms │ +1.07x faster │
│ QQuery 78 │        368.66 / 371.80 ±2.38 / 375.54 ms │        351.40 / 357.23 ±3.63 / 362.32 ms │     no change │
│ QQuery 79 │        246.44 / 253.26 ±4.81 / 259.98 ms │        245.08 / 254.05 ±4.94 / 259.87 ms │     no change │
│ QQuery 80 │        345.60 / 348.33 ±2.66 / 353.13 ms │        333.69 / 334.72 ±1.13 / 336.86 ms │     no change │
│ QQuery 81 │           32.92 / 34.01 ±0.66 / 34.75 ms │           27.45 / 29.52 ±1.41 / 31.62 ms │ +1.15x faster │
│ QQuery 82 │        205.55 / 207.92 ±1.54 / 209.80 ms │        203.51 / 206.98 ±2.03 / 209.62 ms │     no change │
│ QQuery 83 │           47.94 / 49.23 ±0.74 / 50.03 ms │           41.33 / 41.65 ±0.28 / 42.14 ms │ +1.18x faster │
│ QQuery 84 │           51.89 / 54.12 ±1.33 / 55.75 ms │           48.88 / 50.17 ±1.23 / 52.48 ms │ +1.08x faster │
│ QQuery 85 │        154.42 / 156.34 ±1.98 / 159.32 ms │        148.41 / 151.80 ±2.06 / 154.28 ms │     no change │
│ QQuery 86 │           43.19 / 44.11 ±0.98 / 45.60 ms │           38.56 / 39.52 ±0.76 / 40.74 ms │ +1.12x faster │
│ QQuery 87 │         97.42 / 100.39 ±2.39 / 104.65 ms │           86.19 / 88.79 ±2.55 / 93.41 ms │ +1.13x faster │
│ QQuery 88 │        114.21 / 116.17 ±1.67 / 118.30 ms │          98.35 / 99.05 ±0.79 / 100.59 ms │ +1.17x faster │
│ QQuery 89 │        123.95 / 126.25 ±1.72 / 129.09 ms │        117.22 / 119.74 ±1.50 / 121.06 ms │ +1.05x faster │
│ QQuery 90 │           29.34 / 29.91 ±0.47 / 30.56 ms │           23.20 / 23.78 ±0.41 / 24.43 ms │ +1.26x faster │
│ QQuery 91 │           68.51 / 70.66 ±1.32 / 72.24 ms │           63.52 / 64.97 ±1.34 / 67.51 ms │ +1.09x faster │
│ QQuery 92 │           63.86 / 64.62 ±0.45 / 65.13 ms │           57.14 / 57.98 ±0.56 / 58.63 ms │ +1.11x faster │
│ QQuery 93 │        209.51 / 210.66 ±0.64 / 211.46 ms │        191.75 / 194.57 ±3.29 / 200.93 ms │ +1.08x faster │
│ QQuery 94 │           68.35 / 69.64 ±1.15 / 71.72 ms │           61.59 / 62.73 ±1.77 / 66.25 ms │ +1.11x faster │
│ QQuery 95 │        143.98 / 145.24 ±1.11 / 146.66 ms │        132.73 / 134.80 ±1.72 / 136.79 ms │ +1.08x faster │
│ QQuery 96 │           78.16 / 79.19 ±0.57 / 79.80 ms │           70.84 / 74.16 ±2.27 / 77.87 ms │ +1.07x faster │
│ QQuery 97 │        138.30 / 142.59 ±2.74 / 146.06 ms │        130.09 / 131.66 ±1.08 / 133.07 ms │ +1.08x faster │
│ QQuery 98 │        161.00 / 165.13 ±2.09 / 166.77 ms │        149.84 / 153.57 ±2.09 / 156.19 ms │ +1.08x faster │
│ QQuery 99 │ 10781.70 / 10826.48 ±23.90 / 10852.00 ms │ 10776.91 / 10823.22 ±35.74 / 10869.20 ms │     no change │
└───────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary             ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)             │ 34624.50ms │
│ Total Time (db_cache-cores)   │ 34167.93ms │
│ Average Time (HEAD)           │   349.74ms │
│ Average Time (db_cache-cores) │   345.13ms │
│ Queries Faster                │         42 │
│ Queries Slower                │          3 │
│ Queries with No Change        │         54 │
│ Queries with Failure          │          0 │
└───────────────────────────────┴────────────┘

Resource Usage

tpcds — base (merge-base)

Metric Value
Wall time 173.5s
Peak memory 5.8 GiB
Avg memory 4.7 GiB
CPU user 274.0s
CPU sys 21.3s
Disk read 0 B
Disk write 640.7 MiB

tpcds — branch

Metric Value
Wall time 171.1s
Peak memory 5.5 GiB
Avg memory 4.6 GiB
CPU user 273.5s
CPU sys 18.5s
Disk read 0 B
Disk write 844.0 KiB

@adriangbot
Copy link

🤖 Benchmark completed (GKE) | trigger

Details

Comparing HEAD and db_cache-cores
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query     ┃                                  HEAD ┃                        db_cache-cores ┃        Change ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0  │          1.67 / 5.03 ±6.53 / 18.10 ms │          1.31 / 4.50 ±6.32 / 17.14 ms │ +1.12x faster │
│ QQuery 1  │        15.21 / 15.42 ±0.19 / 15.67 ms │        14.62 / 14.80 ±0.19 / 15.16 ms │     no change │
│ QQuery 2  │        56.95 / 57.06 ±0.10 / 57.24 ms │        56.57 / 57.02 ±0.35 / 57.44 ms │     no change │
│ QQuery 3  │        49.52 / 51.58 ±2.14 / 55.15 ms │        47.97 / 48.80 ±0.76 / 50.06 ms │ +1.06x faster │
│ QQuery 4  │    292.01 / 307.63 ±14.68 / 334.34 ms │    289.14 / 303.93 ±14.35 / 330.10 ms │     no change │
│ QQuery 5  │     354.48 / 365.77 ±7.62 / 376.28 ms │     349.37 / 364.06 ±9.19 / 376.14 ms │     no change │
│ QQuery 6  │           5.44 / 6.87 ±1.69 / 9.92 ms │           4.76 / 6.25 ±1.21 / 7.89 ms │ +1.10x faster │
│ QQuery 7  │        17.36 / 17.73 ±0.23 / 18.06 ms │        16.51 / 19.89 ±5.58 / 30.94 ms │  1.12x slower │
│ QQuery 8  │    435.97 / 449.57 ±12.36 / 471.87 ms │    432.91 / 455.94 ±15.83 / 477.80 ms │     no change │
│ QQuery 9  │    644.54 / 671.31 ±21.38 / 693.64 ms │    653.88 / 674.41 ±14.57 / 688.36 ms │     no change │
│ QQuery 10 │        92.69 / 95.96 ±2.61 / 99.24 ms │        91.84 / 94.57 ±2.53 / 97.64 ms │     no change │
│ QQuery 11 │     103.20 / 103.66 ±0.32 / 104.04 ms │     103.72 / 108.42 ±4.56 / 114.86 ms │     no change │
│ QQuery 12 │    344.76 / 357.41 ±13.89 / 375.29 ms │    342.59 / 360.51 ±12.64 / 373.58 ms │     no change │
│ QQuery 13 │    459.20 / 483.03 ±18.53 / 509.36 ms │     472.82 / 477.40 ±4.67 / 485.11 ms │     no change │
│ QQuery 14 │    346.50 / 365.46 ±11.47 / 379.17 ms │    350.42 / 366.53 ±12.73 / 386.65 ms │     no change │
│ QQuery 15 │    373.55 / 393.20 ±15.41 / 411.28 ms │    362.34 / 396.94 ±32.50 / 457.23 ms │     no change │
│ QQuery 16 │    728.68 / 763.20 ±25.53 / 806.53 ms │    730.12 / 761.42 ±16.99 / 777.08 ms │     no change │
│ QQuery 17 │    728.96 / 744.78 ±13.15 / 763.53 ms │     730.86 / 741.00 ±7.68 / 747.99 ms │     no change │
│ QQuery 18 │ 1409.50 / 1451.23 ±38.72 / 1519.41 ms │ 1439.54 / 1480.86 ±49.91 / 1578.64 ms │     no change │
│ QQuery 19 │        36.13 / 38.97 ±1.94 / 41.83 ms │        38.03 / 39.45 ±0.80 / 40.17 ms │     no change │
│ QQuery 20 │    700.71 / 714.03 ±12.55 / 735.79 ms │    713.15 / 721.85 ±11.35 / 743.21 ms │     no change │
│ QQuery 21 │     751.76 / 756.62 ±3.14 / 759.24 ms │     762.56 / 766.24 ±3.59 / 772.55 ms │     no change │
│ QQuery 22 │  1131.39 / 1138.80 ±6.43 / 1149.66 ms │  1136.79 / 1143.91 ±6.02 / 1154.33 ms │     no change │
│ QQuery 23 │ 3090.52 / 3168.56 ±47.56 / 3237.44 ms │ 3140.32 / 3151.49 ±10.77 / 3171.55 ms │     no change │
│ QQuery 24 │      98.03 / 101.92 ±2.33 / 104.83 ms │      97.91 / 102.58 ±3.08 / 106.88 ms │     no change │
│ QQuery 25 │     136.63 / 141.03 ±2.52 / 144.50 ms │     141.68 / 143.53 ±1.29 / 145.62 ms │     no change │
│ QQuery 26 │      99.32 / 103.07 ±2.26 / 106.05 ms │      98.81 / 101.47 ±1.70 / 103.42 ms │     no change │
│ QQuery 27 │     839.28 / 846.88 ±5.01 / 854.50 ms │     839.45 / 853.12 ±9.56 / 865.02 ms │     no change │
│ QQuery 28 │ 7692.28 / 7774.31 ±60.76 / 7872.18 ms │ 7764.04 / 7800.10 ±28.81 / 7831.23 ms │     no change │
│ QQuery 29 │        55.80 / 59.31 ±3.91 / 66.84 ms │        56.38 / 60.82 ±2.76 / 63.90 ms │     no change │
│ QQuery 30 │    355.93 / 370.79 ±11.20 / 385.19 ms │     360.71 / 372.91 ±7.66 / 383.74 ms │     no change │
│ QQuery 31 │    368.25 / 382.92 ±17.05 / 415.32 ms │    364.93 / 383.42 ±11.22 / 396.79 ms │     no change │
│ QQuery 32 │ 1110.92 / 1145.38 ±29.54 / 1197.39 ms │ 1072.94 / 1103.66 ±32.76 / 1162.71 ms │     no change │
│ QQuery 33 │ 1513.12 / 1554.30 ±29.25 / 1596.97 ms │ 1485.60 / 1516.34 ±21.01 / 1545.38 ms │     no change │
│ QQuery 34 │ 1492.11 / 1527.21 ±20.13 / 1552.09 ms │ 1484.22 / 1519.53 ±27.64 / 1553.16 ms │     no change │
│ QQuery 35 │    378.29 / 409.44 ±17.20 / 428.57 ms │    380.46 / 404.19 ±23.02 / 445.58 ms │     no change │
│ QQuery 36 │     119.73 / 123.56 ±5.62 / 134.55 ms │     111.90 / 120.34 ±4.43 / 124.87 ms │     no change │
│ QQuery 37 │        50.72 / 52.75 ±1.53 / 54.78 ms │        50.95 / 53.31 ±1.62 / 56.03 ms │     no change │
│ QQuery 38 │        77.41 / 79.21 ±1.75 / 82.55 ms │        74.43 / 76.21 ±1.91 / 78.97 ms │     no change │
│ QQuery 39 │    208.74 / 218.35 ±10.25 / 237.21 ms │    200.63 / 224.18 ±16.13 / 240.08 ms │     no change │
│ QQuery 40 │        25.33 / 27.85 ±2.27 / 31.68 ms │        22.60 / 25.02 ±1.47 / 26.60 ms │ +1.11x faster │
│ QQuery 41 │        20.99 / 22.37 ±1.12 / 23.41 ms │        19.52 / 21.75 ±1.79 / 24.44 ms │     no change │
│ QQuery 42 │        20.91 / 21.90 ±0.70 / 22.63 ms │        20.26 / 21.39 ±0.73 / 22.51 ms │     no change │
└───────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary             ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)             │ 27485.44ms │
│ Total Time (db_cache-cores)   │ 27464.09ms │
│ Average Time (HEAD)           │   639.20ms │
│ Average Time (db_cache-cores) │   638.70ms │
│ Queries Faster                │          4 │
│ Queries Slower                │          1 │
│ Queries with No Change        │         38 │
│ Queries with Failure          │          0 │
└───────────────────────────────┴────────────┘

Resource Usage

clickbench_partitioned — base (merge-base)

Metric Value
Wall time 138.7s
Peak memory 41.4 GiB
Avg memory 34.1 GiB
CPU user 1308.3s
CPU sys 90.0s
Disk read 0 B
Disk write 4.2 GiB

clickbench_partitioned — branch

Metric Value
Wall time 138.5s
Peak memory 41.5 GiB
Avg memory 33.7 GiB
CPU user 1308.7s
CPU sys 90.1s
Disk read 0 B
Disk write 848.0 KiB


sqllogictest-sqlite:
name: "Run sqllogictests with the sqlite test suite"
runs-on: ${{ github.repository_owner == 'apache' && format('runs-on={0},family=m8a+m7a+c8a,cpu=48,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion,spot=false', github.run_id) || 'ubuntu-latest' }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not directly related, but I’m curious what this is. It looks like sponsored compute resources—perhaps we could add a reference link for maintainability.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like sponsored compute resources

yes!

We use [Runs-On](https://runs-on.com/) for some actions in the main repository, which run in the ASF AWS account to speed up CI. In forks, these actions run on the default GitHub runners since forks do not have access to ASF infrastructure.

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
@blaginin blaginin added this pull request to the merge queue Mar 22, 2026
Merged via the queue into main with commit 448a395 Mar 22, 2026
56 checks passed
@blaginin blaginin deleted the db/cache-cores branch March 22, 2026 08:14
@alamb
Copy link
Contributor

alamb commented Mar 22, 2026

🤖: Benchmark completed

Wow this is a significantly planning speed improvement. 🤯

@Dandandan
Copy link
Contributor

Yeah even e2e improvements on tpc-ds / tpch (probably clickbench as well but it is noisier)

github-merge-queue bot pushed a commit that referenced this pull request Mar 23, 2026
…#21092)

## Which issue does this PR close?

- Closes #.

## Rationale for this change

This is a follow up to #21084, where @blaginin realized that allocating
`ConfigOptions` has this surprising side effect. Reading through how its
used I realized that on mode "real" code paths (and in many tests),
DataFusion ends up allocating the default values of `SimplifyContext`
just to immediately drop them and override them with pre-existing
clone-able data.

## What changes are included in this PR?

Adds a new type `SimplifyContextBuilder` and `SimplifyContext::builder`

## Are these changes tested?

Includes a couple of tests to make sure the builder makes sense, in
addition to many existing tests.

## Are there any user-facing changes?

As noted above, new type and a new function on an existing type.

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->

---------

Signed-off-by: Adam Gutglick <adamgsal@gmail.com>
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
@alamb
Copy link
Contributor

alamb commented Mar 23, 2026

I think we should consider backporting this to 53 maybe even.

blaginin added a commit to blaginin/datafusion that referenced this pull request Mar 24, 2026
…1084)

This makes sqlite extended finish in 5 minutes:
https://github.com/apache/datafusion/actions/runs/23362665318/job/67969547959

Currently on main it takes 20 minutes (and a month ago it would take two
hours 🤯)

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
(cherry picked from commit 448a395)
@blaginin
Copy link
Member Author

sure! #21137

de-bgunter pushed a commit to de-bgunter/datafusion that referenced this pull request Mar 24, 2026
…1084)

This makes sqlite extended finish in 5 minutes:
https://github.com/apache/datafusion/actions/runs/23362665318/job/67969547959

Currently on main it takes 20 minutes (and a month ago it would take two
hours 🤯)

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
de-bgunter pushed a commit to de-bgunter/datafusion that referenced this pull request Mar 24, 2026
…apache#21092)

## Which issue does this PR close?

- Closes #.

## Rationale for this change

This is a follow up to apache#21084, where @blaginin realized that allocating
`ConfigOptions` has this surprising side effect. Reading through how its
used I realized that on mode "real" code paths (and in many tests),
DataFusion ends up allocating the default values of `SimplifyContext`
just to immediately drop them and override them with pre-existing
clone-able data.

## What changes are included in this PR?

Adds a new type `SimplifyContextBuilder` and `SimplifyContext::builder`

## Are these changes tested?

Includes a couple of tests to make sure the builder makes sense, in
addition to many existing tests.

## Are there any user-facing changes?

As noted above, new type and a new function on an existing type.

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->

---------

Signed-off-by: Adam Gutglick <adamgsal@gmail.com>
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
alamb added a commit that referenced this pull request Mar 25, 2026
- Port of #21084 to 53

- Related to #21079

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

common Related to common crate development-process Related to development process of DataFusion performance Make DataFusion faster

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants