Skip to content

Conversation

@rluvaton
Copy link
Member

@rluvaton rluvaton commented Oct 8, 2025

Which issue does this PR close?

N/A

Rationale for this change

NaN are not considered equal in the scalar equal_to

What changes are included in this PR?

Update instead of using == to is_eq and update the tests to tests f32 instead of int64 with NaN

Are these changes tested?

Yes

Are there any user-facing changes?

Just bug fix

@github-actions github-actions bot added the physical-plan Changes to the physical-plan crate label Oct 8, 2025
@rluvaton rluvaton force-pushed the fix-bugs-in-primitive-group branch from 9076457 to 7dc8b9f Compare October 8, 2025 18:57
@alamb
Copy link
Contributor

alamb commented Oct 9, 2025

🤖 ./gh_compare_branch.sh Benchmark Script Running
Linux aal-dev 6.14.0-1016-gcp #17~24.04.1-Ubuntu SMP Wed Sep 3 01:55:36 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing fix-bugs-in-primitive-group (7dc8b9f) to 07a7eb2 diff using: tpch_mem clickbench_partitioned clickbench_extended
Results will be posted here when complete

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.

Thanks @rluvaton

I think this makes sense to me. I kicked off some benchmarks just to make sure but I don't expect any changes in performance

#[test]
fn test_nullable_primitive_equal_to() {
let append = |builder: &mut PrimitiveGroupValueBuilder<Int64Type, true>,
let append = |builder: &mut PrimitiveGroupValueBuilder<Float32Type, true>,
Copy link
Contributor

Choose a reason for hiding this comment

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

why is this test changed?

Copy link
Member Author

Choose a reason for hiding this comment

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

I changed the helper method type to use float32 instead of int64 so all tests in the future that uses the helper will test that as well

#[test]
fn test_nullable_primitive_vectorized_equal_to() {
let append = |builder: &mut PrimitiveGroupValueBuilder<Int64Type, true>,
let append = |builder: &mut PrimitiveGroupValueBuilder<Float32Type, true>,
Copy link
Contributor

Choose a reason for hiding this comment

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

likewise it seems unecessary to change this test

Copy link
Member Author

Choose a reason for hiding this comment

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

I changed the helper method type to use float32 instead of int64 so all tests in the future that uses the helper will test that as well

fn test_nullable_primitive_equal_to_internal<A, E>(mut append: A, mut equal_to: E)
where
A: FnMut(&mut PrimitiveGroupValueBuilder<Int64Type, true>, &ArrayRef, &[usize]),
A: FnMut(&mut PrimitiveGroupValueBuilder<Float32Type, true>, &ArrayRef, &[usize]),
Copy link
Contributor

Choose a reason for hiding this comment

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

I verified this test fails without the code change in this PR

assertion failed: equal_to_results[5]
thread 'aggregates::group_values::multi_group_by::primitive::tests::test_nullable_primitive_equal_to' panicked at datafusion/physical-plan/src/aggregates/group_values/multi_group_by/primitive.rs:346:9:
assertion failed: equal_to_results[5]
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:697:5
   1: core::panicking::panic_fmt
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panicking.rs:75:14
   2: core::panicking::panic
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panicking.rs:145:5
   3: datafusion_physical_plan::aggregates::group_values::multi_group_by::primitive::tests::test_nullable_primitive_equal_to_internal
             at ./src/aggregates/group_values/multi_group_by/primitive.rs:346:9
   4: datafusion_physical_plan::aggregates::group_values::multi_group_by::primitive::tests::test_nullable_primitive_equal_to
             at ./src/aggregates/group_values/multi_group_by/primitive.rs:246:9
   5: datafusion_physical_plan::aggregates::group_values::multi_group_by::primitive::tests::test_nullable_primitive_equal_to::{{closure}}
             at ./src/aggregates/group_values/multi_group_by/primitive.rs:226:42
   6: core::ops::function::FnOnce::call_once
             at /Users/andrewlamb/.rustup/toolchains/1.90.0-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:253:5
   7: core::ops::function::FnOnce::call_once
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/ops/function.rs:253:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

@alamb
Copy link
Contributor

alamb commented Oct 9, 2025

🤖: Benchmark completed

Details

Comparing HEAD and fix-bugs-in-primitive-group
--------------------
Benchmark clickbench_extended.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Query        ┃        HEAD ┃ fix-bugs-in-primitive-group ┃    Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ QQuery 0     │  2713.75 ms │                  2653.38 ms │ no change │
│ QQuery 1     │  1256.70 ms │                  1314.57 ms │ no change │
│ QQuery 2     │  2496.18 ms │                  2448.11 ms │ no change │
│ QQuery 3     │  1181.63 ms │                  1174.53 ms │ no change │
│ QQuery 4     │  2273.67 ms │                  2273.46 ms │ no change │
│ QQuery 5     │ 27702.53 ms │                 27716.33 ms │ no change │
│ QQuery 6     │  4163.27 ms │                  4181.94 ms │ no change │
│ QQuery 7     │  3695.34 ms │                  3715.75 ms │ no change │
└──────────────┴─────────────┴─────────────────────────────┴───────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                          ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                          │ 45483.06ms │
│ Total Time (fix-bugs-in-primitive-group)   │ 45478.07ms │
│ Average Time (HEAD)                        │  5685.38ms │
│ Average Time (fix-bugs-in-primitive-group) │  5684.76ms │
│ Queries Faster                             │          0 │
│ Queries Slower                             │          0 │
│ Queries with No Change                     │          8 │
│ Queries with Failure                       │          0 │
└────────────────────────────────────────────┴────────────┘
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query        ┃        HEAD ┃ fix-bugs-in-primitive-group ┃        Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0     │     2.42 ms │                     2.25 ms │ +1.08x faster │
│ QQuery 1     │    51.21 ms │                    49.97 ms │     no change │
│ QQuery 2     │   137.30 ms │                   138.88 ms │     no change │
│ QQuery 3     │   164.68 ms │                   165.82 ms │     no change │
│ QQuery 4     │  1052.04 ms │                  1079.57 ms │     no change │
│ QQuery 5     │  1544.12 ms │                  1494.54 ms │     no change │
│ QQuery 6     │     2.18 ms │                     2.19 ms │     no change │
│ QQuery 7     │    55.54 ms │                    54.59 ms │     no change │
│ QQuery 8     │  1457.94 ms │                  1476.04 ms │     no change │
│ QQuery 9     │  1855.07 ms │                  1862.38 ms │     no change │
│ QQuery 10    │   375.01 ms │                   381.55 ms │     no change │
│ QQuery 11    │   432.06 ms │                   434.94 ms │     no change │
│ QQuery 12    │  1401.22 ms │                  1415.82 ms │     no change │
│ QQuery 13    │  2145.94 ms │                  2147.43 ms │     no change │
│ QQuery 14    │  1266.38 ms │                  1288.35 ms │     no change │
│ QQuery 15    │  1242.45 ms │                  1258.67 ms │     no change │
│ QQuery 16    │  2664.29 ms │                  2719.73 ms │     no change │
│ QQuery 17    │  2637.18 ms │                  2691.04 ms │     no change │
│ QQuery 18    │  6382.21 ms │                  5039.56 ms │ +1.27x faster │
│ QQuery 19    │   129.65 ms │                   126.10 ms │     no change │
│ QQuery 20    │  2053.72 ms │                  1969.19 ms │     no change │
│ QQuery 21    │  2400.39 ms │                  2306.06 ms │     no change │
│ QQuery 22    │  4999.85 ms │                  3922.44 ms │ +1.27x faster │
│ QQuery 23    │ 23328.59 ms │                 12540.53 ms │ +1.86x faster │
│ QQuery 24    │   215.16 ms │                   217.59 ms │     no change │
│ QQuery 25    │   500.67 ms │                   502.68 ms │     no change │
│ QQuery 26    │   217.32 ms │                   214.20 ms │     no change │
│ QQuery 27    │  2849.49 ms │                  2798.34 ms │     no change │
│ QQuery 28    │ 24265.13 ms │                 23110.20 ms │     no change │
│ QQuery 29    │   968.73 ms │                   999.89 ms │     no change │
│ QQuery 30    │  1371.83 ms │                  1308.06 ms │     no change │
│ QQuery 31    │  1349.20 ms │                  1341.47 ms │     no change │
│ QQuery 32    │  5171.85 ms │                  4850.83 ms │ +1.07x faster │
│ QQuery 33    │  6153.25 ms │                  5785.39 ms │ +1.06x faster │
│ QQuery 34    │  5930.59 ms │                  5982.85 ms │     no change │
│ QQuery 35    │  2142.51 ms │                  2033.78 ms │ +1.05x faster │
│ QQuery 36    │   122.92 ms │                   123.08 ms │     no change │
│ QQuery 37    │    53.61 ms │                    54.15 ms │     no change │
│ QQuery 38    │   120.79 ms │                   121.14 ms │     no change │
│ QQuery 39    │   202.35 ms │                   197.73 ms │     no change │
│ QQuery 40    │    44.27 ms │                    43.74 ms │     no change │
│ QQuery 41    │    41.03 ms │                    39.37 ms │     no change │
│ QQuery 42    │    32.97 ms │                    33.11 ms │     no change │
└──────────────┴─────────────┴─────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Benchmark Summary                          ┃             ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ Total Time (HEAD)                          │ 109535.14ms │
│ Total Time (fix-bugs-in-primitive-group)   │  94325.22ms │
│ Average Time (HEAD)                        │   2547.33ms │
│ Average Time (fix-bugs-in-primitive-group) │   2193.61ms │
│ Queries Faster                             │           7 │
│ Queries Slower                             │           0 │
│ Queries with No Change                     │          36 │
│ Queries with Failure                       │           0 │
└────────────────────────────────────────────┴─────────────┘
--------------------
Benchmark tpch_mem_sf1.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query        ┃      HEAD ┃ fix-bugs-in-primitive-group ┃        Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1     │ 167.93 ms │                   169.76 ms │     no change │
│ QQuery 2     │  25.42 ms │                    24.97 ms │     no change │
│ QQuery 3     │  35.83 ms │                    36.49 ms │     no change │
│ QQuery 4     │  28.76 ms │                    28.23 ms │     no change │
│ QQuery 5     │  75.99 ms │                    78.11 ms │     no change │
│ QQuery 6     │  19.88 ms │                    19.50 ms │     no change │
│ QQuery 7     │ 211.77 ms │                   214.82 ms │     no change │
│ QQuery 8     │  32.28 ms │                    34.25 ms │  1.06x slower │
│ QQuery 9     │ 110.03 ms │                   100.27 ms │ +1.10x faster │
│ QQuery 10    │  59.02 ms │                    58.18 ms │     no change │
│ QQuery 11    │  17.04 ms │                    16.99 ms │     no change │
│ QQuery 12    │  51.59 ms │                    51.36 ms │     no change │
│ QQuery 13    │  47.78 ms │                    46.30 ms │     no change │
│ QQuery 14    │  14.60 ms │                    13.99 ms │     no change │
│ QQuery 15    │  25.62 ms │                    24.18 ms │ +1.06x faster │
│ QQuery 16    │  24.47 ms │                    24.47 ms │     no change │
│ QQuery 17    │ 151.46 ms │                   150.34 ms │     no change │
│ QQuery 18    │ 320.75 ms │                   322.22 ms │     no change │
│ QQuery 19    │  36.77 ms │                    36.19 ms │     no change │
│ QQuery 20    │  48.62 ms │                    48.82 ms │     no change │
│ QQuery 21    │ 338.21 ms │                   336.98 ms │     no change │
│ QQuery 22    │  21.36 ms │                    20.58 ms │     no change │
└──────────────┴───────────┴─────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                          ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                          │ 1865.18ms │
│ Total Time (fix-bugs-in-primitive-group)   │ 1856.98ms │
│ Average Time (HEAD)                        │   84.78ms │
│ Average Time (fix-bugs-in-primitive-group) │   84.41ms │
│ Queries Faster                             │         2 │
│ Queries Slower                             │         1 │
│ Queries with No Change                     │        19 │
│ Queries with Failure                       │         0 │
└────────────────────────────────────────────┴───────────┘

@rluvaton
Copy link
Member Author

rluvaton commented Oct 9, 2025

@alamb
is it consistent?

│ QQuery 23    │ 23328.59 ms │                 12540.53 ms │ +1.86x faster │

@rluvaton rluvaton added this pull request to the merge queue Oct 9, 2025
Merged via the queue into apache:main with commit 590ad29 Oct 9, 2025
28 checks passed
@rluvaton rluvaton deleted the fix-bugs-in-primitive-group branch October 9, 2025 19:24
@rluvaton
Copy link
Member Author

rluvaton commented Oct 9, 2025

Merged as no degradation was found other than this:

│ QQuery 8     │  32.28 ms │                    34.25 ms │  1.06x slower │

@alamb
Copy link
Contributor

alamb commented Oct 9, 2025

Merged as no degradation was found other than this:

│ QQuery 8     │  32.28 ms │                    34.25 ms │  1.06x slower │

yeah, I agree this is likely noise

@alamb
Copy link
Contributor

alamb commented Oct 9, 2025

@alamb is it consistent?

│ QQuery 23    │ 23328.59 ms │                 12540.53 ms │ +1.86x faster │

will rerun to find out

@alamb
Copy link
Contributor

alamb commented Oct 9, 2025

🤖 ./gh_compare_branch.sh Benchmark Script Running
Linux aal-dev 6.14.0-1016-gcp #17~24.04.1-Ubuntu SMP Wed Sep 3 01:55:36 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing fix-bugs-in-primitive-group (7dc8b9f) to 07a7eb2 diff using: tpch_mem clickbench_partitioned clickbench_extended
Results will be posted here when complete

@alamb
Copy link
Contributor

alamb commented Oct 9, 2025

🤖: Benchmark completed

Details

Comparing HEAD and fix-bugs-in-primitive-group
--------------------
Benchmark clickbench_extended.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Query        ┃        HEAD ┃ fix-bugs-in-primitive-group ┃       Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ QQuery 0     │  2683.73 ms │                  2700.24 ms │    no change │
│ QQuery 1     │  1291.65 ms │                  1265.50 ms │    no change │
│ QQuery 2     │  2438.39 ms │                  2421.83 ms │    no change │
│ QQuery 3     │  1154.31 ms │                  1180.73 ms │    no change │
│ QQuery 4     │  2219.31 ms │                  2265.34 ms │    no change │
│ QQuery 5     │ 27745.04 ms │                 27787.89 ms │    no change │
│ QQuery 6     │  4144.58 ms │                  4174.91 ms │    no change │
│ QQuery 7     │  3413.07 ms │                  3733.56 ms │ 1.09x slower │
└──────────────┴─────────────┴─────────────────────────────┴──────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                          ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                          │ 45090.07ms │
│ Total Time (fix-bugs-in-primitive-group)   │ 45530.00ms │
│ Average Time (HEAD)                        │  5636.26ms │
│ Average Time (fix-bugs-in-primitive-group) │  5691.25ms │
│ Queries Faster                             │          0 │
│ Queries Slower                             │          1 │
│ Queries with No Change                     │          7 │
│ Queries with Failure                       │          0 │
└────────────────────────────────────────────┴────────────┘
--------------------
Benchmark clickbench_partitioned.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query        ┃        HEAD ┃ fix-bugs-in-primitive-group ┃        Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 0     │     2.17 ms │                     2.26 ms │     no change │
│ QQuery 1     │    51.03 ms │                    51.36 ms │     no change │
│ QQuery 2     │   137.59 ms │                   135.86 ms │     no change │
│ QQuery 3     │   165.25 ms │                   170.48 ms │     no change │
│ QQuery 4     │  1054.34 ms │                  1070.67 ms │     no change │
│ QQuery 5     │  1483.93 ms │                  1528.24 ms │     no change │
│ QQuery 6     │     2.09 ms │                     2.27 ms │  1.08x slower │
│ QQuery 7     │    53.49 ms │                    56.02 ms │     no change │
│ QQuery 8     │  1430.63 ms │                  1485.56 ms │     no change │
│ QQuery 9     │  1844.96 ms │                  1872.58 ms │     no change │
│ QQuery 10    │   377.43 ms │                   384.73 ms │     no change │
│ QQuery 11    │   427.44 ms │                   445.66 ms │     no change │
│ QQuery 12    │  1353.09 ms │                  1372.09 ms │     no change │
│ QQuery 13    │  2119.83 ms │                  2167.02 ms │     no change │
│ QQuery 14    │  1257.64 ms │                  1296.75 ms │     no change │
│ QQuery 15    │  1180.99 ms │                  1340.71 ms │  1.14x slower │
│ QQuery 16    │  2619.03 ms │                  2649.17 ms │     no change │
│ QQuery 17    │  2588.05 ms │                  2682.25 ms │     no change │
│ QQuery 18    │  5166.29 ms │                  4909.28 ms │     no change │
│ QQuery 19    │   130.27 ms │                   127.03 ms │     no change │
│ QQuery 20    │  2023.64 ms │                  1982.26 ms │     no change │
│ QQuery 21    │  2318.42 ms │                  2299.94 ms │     no change │
│ QQuery 22    │  3990.84 ms │                  3935.94 ms │     no change │
│ QQuery 23    │ 12761.26 ms │                 12505.78 ms │     no change │
│ QQuery 24    │   225.51 ms │                   213.41 ms │ +1.06x faster │
│ QQuery 25    │   506.71 ms │                   504.00 ms │     no change │
│ QQuery 26    │   223.49 ms │                   206.12 ms │ +1.08x faster │
│ QQuery 27    │  2925.05 ms │                  2839.72 ms │     no change │
│ QQuery 28    │ 23395.65 ms │                 23130.91 ms │     no change │
│ QQuery 29    │   960.18 ms │                   956.71 ms │     no change │
│ QQuery 30    │  1321.39 ms │                  1314.39 ms │     no change │
│ QQuery 31    │  1328.72 ms │                  1323.45 ms │     no change │
│ QQuery 32    │  4652.53 ms │                  4672.68 ms │     no change │
│ QQuery 33    │  5827.34 ms │                  5771.87 ms │     no change │
│ QQuery 34    │  5870.22 ms │                  5981.66 ms │     no change │
│ QQuery 35    │  2079.21 ms │                  2002.38 ms │     no change │
│ QQuery 36    │   120.74 ms │                   123.95 ms │     no change │
│ QQuery 37    │    52.10 ms │                    51.51 ms │     no change │
│ QQuery 38    │   123.45 ms │                   121.07 ms │     no change │
│ QQuery 39    │   197.65 ms │                   197.94 ms │     no change │
│ QQuery 40    │    41.94 ms │                    45.83 ms │  1.09x slower │
│ QQuery 41    │    41.06 ms │                    38.88 ms │ +1.06x faster │
│ QQuery 42    │    33.49 ms │                    33.24 ms │     no change │
└──────────────┴─────────────┴─────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Benchmark Summary                          ┃            ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Total Time (HEAD)                          │ 94466.14ms │
│ Total Time (fix-bugs-in-primitive-group)   │ 94003.63ms │
│ Average Time (HEAD)                        │  2196.89ms │
│ Average Time (fix-bugs-in-primitive-group) │  2186.13ms │
│ Queries Faster                             │          3 │
│ Queries Slower                             │          3 │
│ Queries with No Change                     │         37 │
│ Queries with Failure                       │          0 │
└────────────────────────────────────────────┴────────────┘
--------------------
Benchmark tpch_mem_sf1.json
--------------------
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Query        ┃      HEAD ┃ fix-bugs-in-primitive-group ┃        Change ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ QQuery 1     │ 170.26 ms │                   166.54 ms │     no change │
│ QQuery 2     │  27.00 ms │                    27.41 ms │     no change │
│ QQuery 3     │  40.59 ms │                    39.41 ms │     no change │
│ QQuery 4     │  27.72 ms │                    28.08 ms │     no change │
│ QQuery 5     │  76.55 ms │                    76.13 ms │     no change │
│ QQuery 6     │  19.54 ms │                    19.74 ms │     no change │
│ QQuery 7     │ 210.90 ms │                   213.14 ms │     no change │
│ QQuery 8     │  34.15 ms │                    34.97 ms │     no change │
│ QQuery 9     │ 101.44 ms │                   103.36 ms │     no change │
│ QQuery 10    │  59.77 ms │                    59.66 ms │     no change │
│ QQuery 11    │  16.76 ms │                    17.84 ms │  1.06x slower │
│ QQuery 12    │  52.42 ms │                    50.71 ms │     no change │
│ QQuery 13    │  47.42 ms │                    45.48 ms │     no change │
│ QQuery 14    │  14.58 ms │                    13.86 ms │     no change │
│ QQuery 15    │  24.37 ms │                    24.41 ms │     no change │
│ QQuery 16    │  25.20 ms │                    23.90 ms │ +1.05x faster │
│ QQuery 17    │ 149.60 ms │                   142.71 ms │     no change │
│ QQuery 18    │ 321.85 ms │                   320.84 ms │     no change │
│ QQuery 19    │  36.33 ms │                    35.56 ms │     no change │
│ QQuery 20    │  48.80 ms │                    48.89 ms │     no change │
│ QQuery 21    │ 315.41 ms │                   345.10 ms │  1.09x slower │
│ QQuery 22    │  20.67 ms │                    20.36 ms │     no change │
└──────────────┴───────────┴─────────────────────────────┴───────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Benchmark Summary                          ┃           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ Total Time (HEAD)                          │ 1841.33ms │
│ Total Time (fix-bugs-in-primitive-group)   │ 1858.07ms │
│ Average Time (HEAD)                        │   83.70ms │
│ Average Time (fix-bugs-in-primitive-group) │   84.46ms │
│ Queries Faster                             │         1 │
│ Queries Slower                             │         2 │
│ Queries with No Change                     │        19 │
│ Queries with Failure                       │         0 │
└────────────────────────────────────────────┴───────────┘

@rluvaton
Copy link
Member Author

rluvaton commented Oct 9, 2025

There are too much noise, making the benchmark results unreliable, can your script also print the machine you are working on (like a1.metal or c5a.large so it will be easier to understand the properties of the machine that it is running on)

also, is your machine a dedicated bare metal?

@rluvaton
Copy link
Member Author

rluvaton commented Oct 9, 2025

is it possible to get apache to have bare metal machines in cloud for benchmarks? It would be great if we could have like in node.js and just allow to run the specific benchmarks on dedicated machines

and it will make sure that all benchmarks across PR are running on the same machine with the same config making the benchmark result more reliable

Example of how node.js does it:

image

@alamb
Copy link
Contributor

alamb commented Oct 17, 2025

also, is your machine a dedicated bare metal?

It is not, it is a shared google VM

is it possible to get apache to have bare metal machines in cloud for benchmarks? It would be great if we could have like in node.js and just allow to run the specific benchmarks on dedicated machines

That would be sweet. I filed a ticket to track the idea:

I am sorry it took me so long to respond, I wanted to give this a proper writeup

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

Labels

physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants