Hi!
Recently I did many Profile-Guided Optimization (PGO) benchmarks on multiple projects (including many databases like PostgreSQL, ClickHouse, Redis, MongoDB, etc.) - the results are available here, database-related results could be checked here. That's why I think it's worth trying to apply PGO to HeavyDB to improve the database performance.
I can suggest the following things to do:
- Evaluate PGO's results on HeavyDB.
- If PGO helps to achieve better performance - add a note to HeavyDB's documentation about that. In this case, users and maintainers will be aware of another optimization opportunity for HeavyDB.
- Provide PGO integration into the build scripts. It can help users and maintainers easily apply PGO for their workloads.
- Optimize prebuilt HeavyDB binaries with PGO.
Here are some examples of how PGO is already integrated into other projects' build scripts:
Here are some examples how PGO-related documentation could look like in the project:
After PGO, I can suggest evaluating PLO with LLVM BOLT as an additional optimization step after PGO.
Below are listed some BOLT results:
I am not familiar with HeavyDB (yet) but I guess at first we can try to train PGO on the HeavyDB benchmarks and then compare before and after PGO performance with HeavyDB.
Hi!
Recently I did many Profile-Guided Optimization (PGO) benchmarks on multiple projects (including many databases like PostgreSQL, ClickHouse, Redis, MongoDB, etc.) - the results are available here, database-related results could be checked here. That's why I think it's worth trying to apply PGO to HeavyDB to improve the database performance.
I can suggest the following things to do:
Here are some examples of how PGO is already integrated into other projects' build scripts:
configurescriptHere are some examples how PGO-related documentation could look like in the project:
After PGO, I can suggest evaluating PLO with LLVM BOLT as an additional optimization step after PGO.
Below are listed some BOLT results:
I am not familiar with HeavyDB (yet) but I guess at first we can try to train PGO on the HeavyDB benchmarks and then compare before and after PGO performance with HeavyDB.