-
Couldn't load subscription status.
- Fork 243
Switch from jemallocator to tikv-jemallocator
#589
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
Conversation
|
My gut feeling is this is a breaking change. I really hope someone else disagrees, because of snowballing ripple effects. :/ |
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.
That's not a breaking change.
yeah, but no one is using
then it's their fault ;) Another thing we could do is split global allocator stuff in a separate crate, that might help with snowballing ripple effects, but that would be a breaking change. Also see #377 |
|
The change itself LGTM. I am wary of introducing this change given that |
rust-rocksdb/rust-rocksdb#554 ;) |
Good point, this would mandate a node wherever we depend on it in the manifest to check the relevant issue or simply avoid enabling the |
|
Given that the |
I don't really see any reason for it to be public, except it can be very convenient. Looking at jemalloc doc it there is not much doable with it, and it looks like there is no change in api between both crate (just the rust traits and same usable_size function prototype). |
|
Yeah, in our binaries rocksdb uses the system allocator (which, I guess, could be also another area for improvement as we could enable jemalloc there too, although not sure if it's going to be worth it if we're going to switch to paritydb anyway?). So in the end can we have some sort of a consensus regarding the version number? Since from what I can see the opinions are divided. Personally I don't really care either way, so I'm fine with whatever you decide. Also, maybe I should make the (I have to push force the PR again anyway since I forgot to sign the commits. 😰) |
|
If you change visibility of |
I think you meant |
|
IMO the only point of having it public is so user can still use some api specific to allocator (not even sure there is such api in the wild but I remember finding it convenient while modifying some alloc crate). Upgrading version really depends on the impact, I did not remember too well but maybe pushing the version is a bit cumbersome due to the fact that the crate define the alloc_size trait that is being used in many place. |
|
I would suggest we merge it as is as 0.10.2 and make any further breaking changes in a separate PR(s). |
Fair enough, let's do what andronik suggests. |
Closes #586
One thing I'm not entirely sure of is to whether I should bump the version to
0.10.2or to0.11.0. It feels like this should not be a breaking change, but if someone was linking to e.g.jemalloc-ctldirectly before then the whole thing will stop compiling due to two jemallocs being compiled in at the same time, and I guess theALLOCsymbol is public (but only if an allocator was actually enabled) and its type did change.