-
-
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
Support pebble #10347
Comments
hi, I want try implement this feature 😄 |
Triage note:
|
Triage notes:
|
Expose as much as possible because chances are defaults are never right for everyone. |
Pebble provides a high-performance alternative to leveldb as the datastore, and will serve as a replacement for badger1. There are a number of tuning parameters available for tuning pebble's performance to your specific needs. Default values are used for any that are not configured or are set to the parameter's zero-value. Requires ipfs/go-ds-pebble#39 Closes #10347
@hsanjuan Here is the subset of pebble options that I decided to make configurable. This decision is based on what CockroachDB configures as pebble defaults, and based on what pebble tuning parameters were useful for optimizing IPNI's use of pebble. |
@lidel I want to stop using Maybe it could work something like this:
|
@gammazero replacing FYSA filled ipfs-inactive/ipfs-ds-convert#50 to track sunsetting |
I had a quick look. Pebble defaults are quite conservative but should be ok for home use. I had issues with |
Added |
So, I put a collab cluster peer on Pebble. It should pin 3.3T but after 72h it has used 1.1T, and only 300GiB seem to be useful data according to Pebble stats:
So things are going... slow... and there is probably a lot of contention to write now because it is compacting tables into the lower levels. That said, this node has HDDs and they were very slow before as well, so it is not conclusive. Going forward I would like to setup another node with flatfs (blocks) + pebble (everything else). Also, always worth remembering my notes here: #9678 |
TODO
/blocks
(blockstore)(TBD, probably a nice to have but not required) add support to https://github.com/ipfs/ipfs-ds-convert to allow conversion of existing repos?FormatMajorVersion
and write docs in docs/datastores.md#pebbleds ?KUBO_ALLOW_DEPRECATED_BADGERV1=true
is set in env – creates friction, forcing people to noticeDescription
Summary
Include pebble as built-in plugin.
It provides meaningful alternative to leveldb as the datastore, and may be better than badger1 as well.
Background
It is 2024, and we still only have flatfs, leveldb and necromancy-level badgerv1 (!) as datastore options.
We got positive feedback about pebble, some examples:
https://ipfscluster.io/documentation/guides/datastore/
ipfs/go-ds-pebble#29:
Right now, to use go-ds-pebble one needs to build external plugin.
Proposed change
Include https://github.com/ipfs/go-ds-pebble in standard kubo build, just like we do with legacy badger1.
This will
The text was updated successfully, but these errors were encountered: