qdrant / qdrant/qdrant

Evaluate Profile-Guided Optimization (PGO)

Open
#2,354 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
34.7k
Forks
2.7k
Avg merge
1d 18h
Merged PRs (30d)
187

Description

Hi!

There is an idea that PGO could help with improving performance even more! There are a lot of examples of different software, where PGO helps a lot with performance - you can check it here. E.g. in this list are a lot of databases like PostgreSQL and ClickHouse.

There are several options. I'd appreciate it if you could provide an easy way to build Qdrant with PGO. And experienced users will be able to do it on their own for their own usage scenarios. Another option is to optimize Qdrant build with a generic-enough profile. Providing PGO-optimized binaries could be a trickier task (since it requires preparing a good-enough profile) but as an option would be great to see too. Another idea of how to use PGO - optimize your own cloud-based Qdrant installation.

As an additional optimization way, I suggest taking a look at LLVM BOLT. But from my experience, it would be better to start with PGO and then try to use BOLT.

For the Rust projects, I recommend starting with cargo-pgo.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the PGO proposal and the recommended cargo-pgo approach for Rust projects, then compare it with the alternative LLVM BOLT path. Determine whether Qdrant should expose an easy PGO build workflow, use a generic profile, or provide optimized binaries. Done means documenting and validating a concrete approach, with any profile-generation requirements made clear.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.