What is the problem the feature request solves?
This epic is for tracking progress on improving performance of Comet with our benchmarks derived from TPC-H.
Current status (September 2024)
- Comet is 1.6x faster than Spark
- Comet is not as fast as other DataFusion subprojects yet
- All of these DataFusion subprojects are performing similar native execution, which indicates that there is room to improve on Comet's current performance
Features needed to support all queries natively
We do not run all queries fully natively yet due to these missing features:
Planned features that could help in general
Issues that affect multiple queries
Per-Query Tracking
Most of these queries are already faster with Comet enabled. Here are notes on areas where performance could potentially be improved.
- q1
- q2
- Some scans are slower, partly due to dictionary unpacking cost
- Some exchanges are slower (could this also be due to premature unpacking of dictionaries?)
- q3
- q4
- q5
- q6
- q7
- q8
- q9
- 82% of the time is in SortExec + SortMergeJoinExec. Ballista uses a HashJoinExec.
- q10
- q11
- q12
- q13
- q14
- q15
- q16
- q17
- q18
- q19
- q20
- q21
- q22
What is the problem the feature request solves?
This epic is for tracking progress on improving performance of Comet with our benchmarks derived from TPC-H.
Current status (September 2024)
Features needed to support all queries natively
We do not run all queries fully natively yet due to these missing features:
Planned features that could help in general
Issues that affect multiple queries
Per-Query Tracking
Most of these queries are already faster with Comet enabled. Here are notes on areas where performance could potentially be improved.
lineitemscans take 2x longer in Comet, but this is offset by avoiding an expensive C2R. The time for native decoding in Comet is longer than the entire scan in Spark.