-
Notifications
You must be signed in to change notification settings - Fork 473
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
Add speedb as an alternative to rocksdb #1792
Conversation
It's a good idea! We has been a some test with @torwig about integration and speedb is an interesting feature, but in regular case (no hi-load or edge-case system) an a performance bonus is not above a 5 - 10% (in my feeling) |
LGTM, This PR is very good. |
@xiaobiaozhao Would you like to have a test? |
All right, let me make time for performance test and stability test. |
Happy to assist in general tuning and specific Speedb features. |
@PragmaTwice Perhaps we can merge this PR if CI tests are good since it won't have any side effects? As well as other rocksdb API-compatible libraries if its license is compliant with Apache License requirements. |
Currently it is not tested in CI, but I can add it to the job matrix. |
@Guyme CI test failure after enabling the speedb, it looks like speedb didn't remove key values that are expected to be recycled by the compact filter. Guess there is a slight behavior difference between speedb and rocksdb. I will dive into this issue while I'm free, can help to give us a hint if you guys have any ideas? |
stress.LOG |
We are trying to recreate the issue of the compaction filter (as far as we know we did not touch this area in our OS version). @xiaobiaozhao if you may please send us the benchmark that you run. We will try to see if any of our features helps and try to create a more comprehensive benchmark (more data, more threads, more tests). Please note that without enabling those features we should have the same performance as rocksdb (only more stable) |
Hi @hilikspdb, Thanks for your reply. I haven't dived deep into the reason yet, the last time we had this similar issue was that the trivial move may skip the compaction filter. But it was fixed after setting the compact_opts.bottommost_level_compaction to kForceOptimized. |
@git-hulk I checked the logs and reason is indeed trivial move only despite kForceOptimized. This bug was probably fixed in facebook/rocksdb#11468 (but there is still a slight chance for it to happen). |
Hi @speedbmike, thanks for your investigation. And it makes sense to compact twice to workaround this in our test cases. @xiaobiaozhao Put his benchmark test script inside: #1792 (comment) cc @hilikspdb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for support and benchmarking
There should be some changes to NOTICE before we merge it. Let me address it quickly. |
maybe we can mentioned that we use speedb as the rocksdb alternative in README. |
We are working on enabling the speedb features in the vrocks code. The patch will be ready today. Initial performance tests show significant improvements. |
That's cool. Looking forward to see the performance improvement after patching! |
Done. |
We have seen nice improvements in the code that manually enable the speedb features. Since we are about to release a minor version that will do this in a single call we will wait with this patch and add a pull request (to both upgrade the speedb and to call the method) ... Hilik |
@hilikspdb Thanks for your information. |
It is just for performance evaluation.
Build with
-DENABLE_SPEEDB=ON
to test.