You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Update ClickBench benchmarks with DataFusion 40 #11567
It would be great to update ClickBench https://benchmark.clickhouse.com/ with runs from the latest version. It looks like we are still reporting numbers for DataFusion 36
Sorry @alamb, I just found out that I could not create AWS account at this time. Is it fine to use Azure VM, e.g., F16sv2, instead? If not please unassign me...
If we want to compare datafusion performance across different datafusion versions (and spot any improvements/degradations) then sticking to the same machine spec will allow us to do this.
If you check the Clickbench results many other databases also publish their results for the c6a.4xlarge AWS EC2 instance so we can compare datafusion results with DuckDB, ClickHouse, QuestDB and with many more.
IMO we should stick with the same AWS instance for future runs.
by the way this is what I found comparing AWS c6a.4xlarge and Azure Standard_F16s_v2. Looks like the CPU clock speed is different and there are some differences in the storage performance numbers
One benefit of the Clickbench results is that we can easily compare with other projects. Overall datafusion (partitioned) seems competitive with ClickHouse and DuckDB on similar hardware. In some cases the datafusion performance is better.
The results highlight a couple of scenarios where datafusion is behind (e.g. Q18, Q29, Q39 etc).
It will be exciting to see how the StringView work and any other improvements will change this picture in the future!
I looked at some short queries and found one potential improvement #11719
I also looked at Q38
SELECT"URL", COUNT(*) AS PageViews FROM hits WHERE"CounterID"=62AND"EventDate"::INT::DATE>='2013-07-01'AND"EventDate"::INT::DATE<='2013-07-31'AND"IsRefresh"=0AND"IsLink"<>0AND"IsDownload"=0GROUP BY"URL"ORDER BY PageViews DESCLIMIT10 OFFSET 1000;
I am pretty sure Q18 would be helped with #9403 -- maybe we'll find a way to do that shortly
SELECT"UserID", extract(minute FROM to_timestamp_seconds("EventTime")) AS m, "SearchPhrase", COUNT(*) FROM hits GROUP BY"UserID", m, "SearchPhrase"ORDER BYCOUNT(*) DESCLIMIT10;
Thank you so much @pmcgleenon 🙏 -- I am pretty excited to complte our inprogress work (like stringview and high cardinality aggregates) and run these again with a newer version of DataFusion
Activity
alamb commentedon Jul 20, 2024
FWIW I think the benchmarks will improve dramatically once we have completed the StringView work that @XiangpengHao is leading #10918
xinlifoobar commentedon Jul 23, 2024
take
xinlifoobar commentedon Jul 23, 2024
Sorry @alamb, I just found out that I could not create AWS account at this time. Is it fine to use Azure VM, e.g., F16sv2, instead? If not please unassign me...
alamb commentedon Jul 25, 2024
I am not sure -- maybe @pmcgleenon could comment? I don't know if this is equivalent to the AWS machines
pmcgleenon commentedon Jul 25, 2024
From what I understand, the previous datafusion ClickBench runs have been on this AWS EC2 instance:
If we want to compare datafusion performance across different datafusion versions (and spot any improvements/degradations) then sticking to the same machine spec will allow us to do this.
If you check the Clickbench results many other databases also publish their results for the
c6a.4xlargeAWS EC2 instance so we can compare datafusion results with DuckDB, ClickHouse, QuestDB and with many more.IMO we should stick with the same AWS instance for future runs.
@alamb @xinlifoobar I'm happy to help out here if required!
pmcgleenon commentedon Jul 25, 2024
by the way this is what I found comparing AWS
c6a.4xlargeand AzureStandard_F16s_v2. Looks like the CPU clock speed is different and there are some differences in the storage performance numbershttps://cloudprice.net/aws/ec2/instances/c6a.4xlarge
https://cloudprice.net/vm/Standard_F16s_v2
alamb commentedon Jul 25, 2024
That would be amazing 🙏
pmcgleenon commentedon Jul 28, 2024
@alamb @xinlifoobar Here are the results for df40 (attached is a file comparing 33, 34, 36 and 40)
Single

Partitioned

df40.zip
Are these results inline with your expectations?
If so I can create a PR on Clickbench to update the datafusion results
alamb commentedon Jul 29, 2024
I would expect that we didn't see much performance difference between 40 and the other versions as we haven't done much on query performance recently.
It appears that the really low latency queries having gotten slower (perhaps due to increasing overhead in planning or runtime somewhere).
If these results are reproduceable, I do think we should publish them to clickbench
Thank you @pmcgleenon and @xinlifoobar
pmcgleenon commentedon Jul 29, 2024
Thanks @alamb I'll create a PR on the Clickbench repo to update the results
pmcgleenon commentedon Jul 29, 2024
I've opened this PR for the Datafusion 40 results ClickHouse/ClickBench#210
alamb commentedon Jul 29, 2024
BTW I plan to spend some time tomorrow organizing / profiling the results to see if I can find some additional improvements to make.
pmcgleenon commentedon Jul 29, 2024
That sounds great!
One benefit of the Clickbench results is that we can easily compare with other projects. Overall datafusion (partitioned) seems competitive with ClickHouse and DuckDB on similar hardware. In some cases the datafusion performance is better.
The results highlight a couple of scenarios where datafusion is behind (e.g. Q18, Q29, Q39 etc).
It will be exciting to see how the StringView work and any other improvements will change this picture in the future!
alamb commentedon Jul 30, 2024
I expect StringView to help as well as @korowa 's #11627
In case anyone else is interested, I did an analysis of the various benchmark query properties here:
https://docs.google.com/spreadsheets/d/1NZuh_dEs9gX5uEp8AQ3DfvkNfC6bXFayQtFkjeKjNxQ/edit?gid=0#gid=0
(e.g. that is how I determine the relative cardinalities / what types of queries)
I think Q16/Q17/Q18 are all "high cardinality aggregates with mutli-column group keys"
alamb commentedon Jul 30, 2024
I looked at some short queries and found one potential improvement #11719
I also looked at Q38
More than 50% of the time is spent doing snappy decoding (which we aren't likely to be able to improve)
12% of the time is reading string data from parquet (maybe stringview will help)
10% of the time is spent decoding parquet metadata
alamb commentedon Jul 30, 2024
I am pretty sure Q18 would be helped with #9403 -- maybe we'll find a way to do that shortly
pmcgleenon commentedon Aug 2, 2024
Hi @alamb
the Clickbench PR has been merged
the Datafusion version 40 results are now visible on the main ClickBench page https://benchmark.clickhouse.com/
alamb commentedon Aug 2, 2024
Thank you so much @pmcgleenon 🙏 -- I am pretty excited to complte our inprogress work (like stringview and high cardinality aggregates) and run these again with a newer version of DataFusion