-
Notifications
You must be signed in to change notification settings - Fork 762
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: add PGO support #9387
Comments
Let me see how this can be done, it feels like it will be interesting. |
I've put together an internal document on PGO, but for users, they should build to suit their workload. I'll sync it to the site/blog in the near future. It's worth noting that PGO doesn't always lead to performance optimization. |
Just bench 4 queries of hits dataset. https://docs.google.com/spreadsheets/d/16odG8rz3e5nP8-myyIK4IVqxRDVame4jpcSuPPqzHxc/edit#gid=0 |
@PsiACE @sundy-li I performed a more robust benchmark over release vs release+PGO Databench and want to share my results here. Hopefully, these numbers would be interesting for someone. Also, I suggest posting these results in the documentation so Databend users can estimate PGO benefits for them. As you see, PGO makes a consistent improvement for Databend. Test environment:
As a training and evaluation set, I used ClickBench. The results are the following: Release (in CSV)
Release (with SQL queries)
Release+PGO (in CSV)
Release+PGO (with SQL queries)
Also, as an estimation, here are the results how slow Databend is in the Instrumentation mode for PGO: Instrumentation (CSV)
Instrumentation (with SQL queries)
|
@zamazan4ik Thank you very much for your testing. It's great to see that PGO is an effective way. cc @soyeric128 Please help evaluate how we should incorporate it into the document. |
Summary
Profile-Guided Optimization (PGO) can help with gaining more performance for Databend.
Possible improvements:
More about PGO (more results with numbers for other applications, possible caveats, etc.) you can find here.
The text was updated successfully, but these errors were encountered: