Skip to content

Conversation

@andygrove
Copy link
Member

@andygrove andygrove commented Sep 14, 2025

Which issue does this PR close?

N/A

Rationale for this change

There no longer seems to be any value in running Comet microbenchmarks in "scan only" or "exec only" mode.

What changes are included in this PR?

Just run Spark vs Comet comparison.

How are these changes tested?

I ran the benchmarks locally against the 100GB dataset.

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
scan_decimal                                       1338           1343           7        215.3           4.6       1.0X
scan_decimal: Comet                                1089           1106          25        264.6           3.8       1.2X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
add_decimals                                       1716           1741          36        167.8           6.0       1.0X
add_decimals: Comet                                1175           1177           3        245.1           4.1       1.5X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
add_many_decimals                                 21108          21141          46         13.6          73.3       1.0X
add_many_decimals: Comet                           7402           7412          14         38.9          25.7       2.9X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
add_many_integers                                  2143           2169          36        134.4           7.4       1.0X
add_many_integers: Comet                           1173           1179           9        245.6           4.1       1.8X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
agg_high_cardinality                               1094           1111          24         65.8          15.2       1.0X
agg_high_cardinality: Comet                         431            446          11        167.0           6.0       2.5X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
agg_low_cardinality                                 259            276          13        278.4           3.6       1.0X
agg_low_cardinality: Comet                          136            142           4        531.4           1.9       1.9X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
agg_sum_decimals_no_grouping                      11180          11213          46         25.8          38.8       1.0X
agg_sum_decimals_no_grouping: Comet                6216           6260          63         46.3          21.6       1.8X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
agg_sum_integers_no_grouping                       2046           2172         178        140.8           7.1       1.0X
agg_sum_integers_no_grouping: Comet                1278           1301          31        225.3           4.4       1.6X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
case_when_column_or_null                            998           1005           9        288.5           3.5       1.0X
case_when_column_or_null: Comet                     901            906           5        319.6           3.1       1.1X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
case_when_scalar                                    200            210           6        359.8           2.8       1.0X
case_when_scalar: Comet                             346            350           4        208.2           4.8       0.6X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
char_type                                            25             28           1         76.4          13.1       1.0X
char_type: Comet                                     27             29           2         71.2          14.1       0.9X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
filter_highly_selective                             196            205           4        366.5           2.7       1.0X
filter_highly_selective: Comet                       79             82           2        907.2           1.1       2.5X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
filter_less_selective                               196            205           4        367.8           2.7       1.0X
filter_less_selective: Comet                        117            121           2        616.7           1.6       1.7X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
if_column_or_null                                   597            608           8        482.4           2.1       1.0X
if_column_or_null: Comet                            521            527           4        552.8           1.8       1.1X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
join_anti                                          3419           3492         103         21.1          47.5       1.0X
join_anti: Comet                                   1798           1806          12         40.1          25.0       1.9X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
join_condition                                     1700           1751          71        319.5           3.1       1.0X
join_condition: Comet                               861            865           4        630.9           1.6       2.0X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
join_exploding_output                              1878           1881           5        289.3           3.5       1.0X
join_exploding_output: Comet                       1035           1038           4        525.1           1.9       1.8X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
join_inner                                          503            509           9        573.1           1.7       1.0X
join_inner: Comet                                   524            528           6        550.1           1.8       1.0X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
join_semi                                          8058           8115          82          8.9         111.9       1.0X
join_semi: Comet                                   4921           4978          80         14.6          68.4       1.6X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
rlike                                                83             87           2          2.5         407.6       1.0X
rlike: Comet                                         50             53           1          4.0         247.0       1.7X

OpenJDK 64-Bit Server VM 17.0.16+8-Ubuntu-0ubuntu122.04.1 on Linux 6.8.0-79-generic
AMD Ryzen 9 7950X3D 16-Core Processor
TPCDS Micro Benchmarks:                   Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
to_json                                             135            140           3          1.5         659.4       1.0X
to_json: Comet                                       94             99           3          2.2         458.4       1.4X

@andygrove andygrove changed the title Microbench minor: Update TPC-DS microbenchmarks to remove "scan only" and "exec only" runs Sep 14, 2025
@codecov-commenter
Copy link

codecov-commenter commented Sep 14, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.52%. Comparing base (f09f8af) to head (6f2420d).
⚠️ Report is 516 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #2396      +/-   ##
============================================
+ Coverage     56.12%   57.52%   +1.39%     
- Complexity      976     1296     +320     
============================================
  Files           119      147      +28     
  Lines         11743    13476    +1733     
  Branches       2251     2354     +103     
============================================
+ Hits           6591     7752    +1161     
- Misses         4012     4459     +447     
- Partials       1140     1265     +125     

☔ View full report in Codecov by Sentry.
📢 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.

nameSuffix: String = ""): Unit = {
queries.foreach { name =>
val source = Source.fromFile(s"spark/src/test/resources/tpcds-micro-benchmarks/$name.sql")
val source = Source.fromFile(s"src/test/resources/tpcds-micro-benchmarks/$name.sql")
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 had to modify the path to get the benchmark working from the command-line

@andygrove andygrove marked this pull request as ready for review September 17, 2025 13:40
Copy link
Contributor

@parthchandra parthchandra left a comment

Choose a reason for hiding this comment

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

lgtm. Some operations appear to be slower in Comet per these results (though that's a different problem).

@mbutrovich mbutrovich merged commit e538db9 into apache:main Sep 20, 2025
94 checks passed
coderfender pushed a commit to coderfender/datafusion-comet that referenced this pull request Dec 13, 2025
…only" runs (apache#2396)

* save

* Minor cleanup of TPC-DS microbenchmarks

* revert

* prep for review

* prep for review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants