Description
Did you search GitHub Issues and GitHub Discussions First?
Yes, no results.
Is your feature request related to a problem? Please describe.
Not a problem - an opportunity.
Describe the solution you'd like
DragonflyDB right now does not support building with more advanced optimization techniques like PGO and BOLT. This tooling has an increasing adoption in the community as a tool to additionally optimize programs. With this tooling, there is a huge chance to gain even more performance "for free".
Here I suggest considering an option at least to play with LTO + PGO + Bolt pipeline (or any combination of them) and test, does it give a performance to the project or not. If yes, would be awesome to have prebuilt binaries with more advanced optimization from the scratch. Also, for the users will be helpful to have the ability to tweak manually their own binaries to their own workloads with the integrated into the build scripts functionality.
Also, there are some caveats to consider like:
- Increased build times
- BOLT could be still unstable (or even broken) on some architectures
Links:
- ScyllaDB results: build: introduce LTO, PGO and BOLT to the build scylladb/scylladb#10808
- Vector results: PGO applicability to Vector vectordotdev/vector#15631
- Rust experience with LTO + PGO + BOLT: https://kobzol.github.io/rust/rustc/2022/10/27/speeding-rustc-without-changing-its-code.html
- Good chance to optimize build times of the project with PGO too: Compile times can be significantly reduced by optimizing the compiler scylladb/scylladb#10985