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

Test database performance with Profile-Guided Optimization (PGO) #638

Closed
zamazan4ik opened this issue Jul 5, 2023 · 2 comments
Closed

Comments

@zamazan4ik
Copy link

zamazan4ik commented Jul 5, 2023

Hi!

Recently I did some benchmarks of applying Profile-Guided Optimization (PGO) on different databases - link. I think the most interesting results for you are the results from RocksDB (link) and SQLite (link).

I guess the same approach could be beneficial for ReDB as well. Would be great to see the results!

@cberner
Copy link
Owner

cberner commented Jul 19, 2023

Neat. Seems like it gives a ~10% improvement on some benchmarks.

PGO:
redb: Bulk loaded 1000000 items in 2209ms
redb: Wrote 100 individual items in 226ms
redb: Wrote 100 x 1000 items in 2254ms
redb: Random read 1000000 items in 939ms
redb: Random read 1000000 items in 857ms
redb: Random range read 10000000 elements in 2315ms
redb: Random range read 10000000 elements in 2319ms
redb: Random read (4 threads) 1000000 items in 319ms
redb: Random read (8 threads) 1000000 items in 185ms
redb: Random read (16 threads) 1000000 items in 130ms
redb: Random read (32 threads) 1000000 items in 114ms
redb: Removed 500000 items in 1620ms

non-PGO:
redb: Bulk loaded 1000000 items in 2394ms
redb: Wrote 100 individual items in 224ms
redb: Wrote 100 x 1000 items in 2173ms
redb: Random read 1000000 items in 1010ms
redb: Random read 1000000 items in 922ms
redb: Random range read 10000000 elements in 2445ms
redb: Random range read 10000000 elements in 2429ms
redb: Random read (4 threads) 1000000 items in 332ms
redb: Random read (8 threads) 1000000 items in 188ms
redb: Random read (16 threads) 1000000 items in 129ms
redb: Random read (32 threads) 1000000 items in 110ms
redb: Removed 500000 items in 1750ms

@cberner cberner closed this as completed Jul 19, 2023
@zamazan4ik
Copy link
Author

@cberner Since PGO helps to achieve better performance with ReDB, can we write a note somewhere in the documentation about PGO and its impact on ReDB? In this case, the users will be aware of the additional way to improve ReDB performance for their use cases. Probably a note in the README file would be fine.

Here are the examples from other projects:

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

No branches or pull requests

2 participants