-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Make badger-ds the default datastore #4279
Comments
@Stebalien Do you mind if I hijack this issue to keep track of all the other issues related to the Badger transition? |
@schomatis go right ahead! |
Is this still on track to happen sometime soon? |
In addition to the issues listed in the description, Basically, we can't roll this out until:
|
Thanks for the reference, I should add those. |
I doubt this effects most users but I'm linking it anyway. For full context, I do this because my local disks are small. And I can't run IPFS on the remote machine because components of libp2p don't build on Solaris yet. |
@djdv that is why we provide other datastore implementations and simple switches to initialise repo with different configurations. |
@magik6k IMO, we should be able to graduate badger from experimental even if we don't go ahead and make it the default. However, we may want to land ipfs/go-ds-badger#51 first. |
Hey, whats the status here? I see that ipfs/go-ds-badger#51 is closed, does that mean that the badger datastore is to be considered pretty mature now? |
We should probably update to badger v2 before using it as default. |
Yes, but I don't actually think we have to. Once we fix the final memory issue (shouldn't be too hard), low power nodes should be just fine. |
Within this context I would like to point out the following issue, a huge problem regarding garbage not being collected: ipfs/go-ds-badger#54 (comment) |
Yep, I've added that to the list. Unfortunately, IIRC, badger v2 had its own issues so we're on to badger v3 now. |
May I inform on the progress on this one? |
v1 seems to have stopped updating, and no one will probably ever address it in this entry. |
We will not make v1 the default as it is unmaintained, and v2 has issues as @Stebalien pointed out. DGraph, the company that maintains BadgerDB, is undergoing a leadership shake-up, so we're hesitant to make v3 the default until we are confident that v3 will be maintained in the long run. |
@guseggert Thanks for the update. Any news on this, by now? |
flatfs I want to write an LSM datastore with reflinking, but I wont work on this before #8201 is a thing. |
This is the master issue to centralize all other issues/PRs related to the Badger transition.
The priorities to check before the transition are:
DB integrity. That means, besides minimizing data loss in case of errors such as a system crash or running out of disk space, to always keep a consistent database for Badger (and IPFS) to be able to start. Even though some truncation for example might be needed, the scenario to avoid is for Badger to encounter a DB it can't work with (e.g., a failed assertion that Badger doesn't know how to recover from) and refusing to start (which would mean IPFS would not work) without some manual interaction (which can't be expected from the normal end-user).
Performance in worst case scenarios. We are transitioning from a flat file-system storage (one key, one file) which in most cases has a (much) lower performance than Badger, but there are some scenarios (e.g., GC or some search cases) where a flat architecture may outperform Badger (or any other LSM architecture for that matter), that should be minimized as much as possible so the end-user won't notice the transition.
The active issues (mostly the ones tagged with
badger
) are:Testing:
Integrity:
Performance:
Usability:
ipfs block rm
doesn't notify of a non-existing key #5040Nice to have:
The text was updated successfully, but these errors were encountered: