apache / apache/kvrocks

Evaluate Profile-Guided Optimization on kvrocks

Open
#1,551 6 comments 3 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
C++
Stars
4.4k
Forks
658
Avg merge
1d 20h
Merged PRs (30d)
10

Description

### Search before asking

- [X] I had searched in the [issues](https://github.com/apache/kvrocks/issues) and found no similar issues.

### Motivation

I think Profile-Guided Optimization can improve kvrocks performance. I did a lot of PGO benchmarks on different software (all results are shown [here](https://github.com/zamazan4ik/awesome-pgo/)). The most interesting for kvrocks results probably are RocksDB [results](https://github.com/google/leveldb/issues/1133#issue-1790305434) and Redis [results](https://github.com/redis/redis/issues/12371).

Seems like could be a good thing to try on kvrocks as well.

### Solution

Try to use PGO and/or BOLT. It could be used via `-fprofile-generate`/`-fprofile-use` compiler flags. For further instructions follow GCC or Clang documentation.

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

No source file or test is named. Start by reading the GCC or Clang documentation for -fprofile-generate and -fprofile-use, then evaluate PGO and/or BOLT against representative kvrocks workloads. Done means reporting benchmark results and documenting whether a reproducible configuration improves performance.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.