quickwit-oss / quickwit-oss/quickwit
Add PGO support
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 11.7k
- Forks
- 597
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 37
Description
Is your feature request related to a problem? Please describe.
Not a problem - just an opportunity.
Describe the solution you'd like
Profile-Guided Optimization could help with gaining more performance with Quickwit. Would be great to test PGO on Quickwit on near real-world test cases. Probably something from https://github.com/quickwit-oss/quickwit/issues/794 could be used.
Additional context
I did a quick research locally. On the latest master branch (version 0.6.1) and using for training and evaluation this benchmark, I didn't get a performance improvement (PGO version works at the same speed as non-PGO release build) but reduced a binary size: from 92 Mib to 85 Mib. My guess is this is due to less aggressive inlining since the benchmark executes only a few possible hot paths.
I think with a more mature benchmark something like this https://github.com/ClickHouse/ClickBench we could try to speed up Quickwit.
More info about PGO you could find here: https://github.com/ZaMaZaN4iK/awesome-pgo
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing Quickwit's issue #794 and the linked full-text-search benchmark tutorial, then compare a PGO build with the non-PGO release build on a more mature, near-real-world workload such as ClickBench. Done should mean a reproducible PGO setup and measured evidence of performance improvement or a documented reason it does not help.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100