-
Notifications
You must be signed in to change notification settings - Fork 11
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
Updated API for compatibility with latest rocksdb #13
Conversation
Hi @alexreg, thanks for the PR! I have created a branch and PR to make the github CI test buiilding the library against the newer versions of librocksdb. Could you rebase this branch over it so we can verify all works? Independently of that, I see that there is a breaking change that is already making the build fail against the older versions of librocksdb, which we might need to support for a while. Do you think it would be possible to make this change backwards compatible? |
One further comment: after making the changes for the CI, I see that the builds are succeeding with v6.29.3, without applying your change.. Is the CI doing something wrong, or we don't actually need this change? |
@NightTsarina The CI must be doing something wrong, because the API for 6.29.3 removed a few bits of the API that Python was trying to bind against. Let me check... |
One of the notable differences is that An interesting approach (given you don't want to compile a fixed version of rocksdb along with python-rocksdb) would be to actually query which version of rocksdb is available on the system, and adjust the Python bindings accordingly. I believe Cython can do that! P.S. Did you already remove the branch you created for testing/CI? The link is stale now. |
bb5ea22
to
272d3b6
Compare
So, I've been doing some investigating, and come to a few realisations:
I also put in a few comments in the Hopefully all tests should pass now. |
Seems like just some tests are failing now, which use the old |
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 the review. I just fixed the issues with the tests and CI, so hopefully everything will pass now! |
7b9e345
to
3f070e1
Compare
Note: Cython seems to insist on using the first signature for |
Almost all passing now... It seems the Ubuntu package for |
LGTM. It would be great if the commit, |
@dato Sure, I'll do that now. |
Removed following properties of ColumnFamilyOptions, which have been deprecated for some time. (They cause issues with Cython right now, and will be obsolete in v7 anyway.) * `soft_rate_limit` * `hard_rate_limit` * `rate_limit_delay_max_milliseconds` * `purge_redundant_kvs_while_flush` * `skip_log_error_on_recovery`
Looking forward to this PR merge so much |
@NightTsarina Thank you. I didn't get notified about it for some strange reason. I added your commit now! |
It's up to you of course, but maybe we could also add a brief note in the README about manually setting |
Ugh, the situation is complicated now by the latest rocksdb release being 7.0.3, which Homebrew uses. This has dropped the |
Oh yes, definitely, I missed that! The tests are finally passing (yayy!!!), so let's merge this now. Could you send a follow-up PR with the documentation patch?
That is a different major version, I don't think it would be a good idea to switch right away, considering we still have quite some unfinished work in 6.x. Does homebrew not allow you to stay with an older version? I think it might make sense to just compile it from source, like we do here for actions, and it is quite straightforward.. We could add it to the README too, with detailed instructions for macOS users. |
@rollue FYI This is probably the source of your issue. |
@NightTsarina Great, thanks for merging. I agree... I'll just compile from source for now. (Homebrew only has the latest version for most software.) I actually started porting to v7, but didn't get too far. |
Made API compatible with rocksdb v6.29.3.
Removed following properties of
ColumnFamilyOptions
, which have been deprecated for some time. (They cause issues with Cython right now, and will be obsolete in v7 anyway.)soft_rate_limit
hard_rate_limit
rate_limit_delay_max_milliseconds
purge_redundant_kvs_while_flush
skip_log_error_on_recovery
Resolves #11.