Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance: PGO applicability #300

Open
zamazan4ik opened this issue Dec 26, 2022 · 2 comments
Open

Performance: PGO applicability #300

zamazan4ik opened this issue Dec 26, 2022 · 2 comments
Labels
C-performance This relates to performance

Comments

@zamazan4ik
Copy link

zamazan4ik commented Dec 26, 2022

Description
I suggest adding PGO (+ BOLT) support to the project. According to my local tests, I have reached with sky-bench -q1000000 -r20 the following results (local runs on Apple Macbook M1 Pro):
Without PGO (default release build):

===========RESULTS===========
SET    140810.697866/sec
UPDATE 146618.948096/sec
GET    137469.544488/sec
=============================

With PGO:

===========RESULTS===========
SET    153383.657977/sec
UPDATE 156045.351506/sec
GET    159065.787814/sec
=============================

Results are a little bit unstable but the PGO version is always more performant than non-PGO. BOLT (LLVM BOLT) also could help here but I haven't tested it yet.

Suggested solutions

  • Optimize provided to the users' binaries with PGO and BOLT (if any)
  • Write a note in the project about optimizing Skytable with PGO to gain even more performance

More PGO-related benchmark results (including many databases like Redis, PostgreSQL, ClickHouse) are available here - https://github.com/zamazan4ik/awesome-pgo .

@zamazan4ik zamazan4ik added the C-performance This relates to performance label Dec 26, 2022
@ohsayan
Copy link
Member

ohsayan commented Jan 11, 2023

Thanks for the note. We can surely incorporate this into the build pipeline (although it'll need a bunch of changes).

@zamazan4ik
Copy link
Author

@ohsayan Do you have updates regarding PGO in Skytable?

Since the integration into the build pipelines could take some time, I suggest at least writing a note somewhere in the documentation regarding PGO and Skytable. So the users/maintainers will be aware of this way to achieve better performance with Skytable and will be able to recompile Skytable according to their workloads. Here are some examples:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-performance This relates to performance
Projects
None yet
Development

No branches or pull requests

2 participants