Skip to content
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

How about introducing Rcoksdb BlobDB feature? #2201

Open
ninsmiracle opened this issue Mar 5, 2025 · 3 comments
Open

How about introducing Rcoksdb BlobDB feature? #2201

ninsmiracle opened this issue Mar 5, 2025 · 3 comments
Labels
type/enhancement Indicates new feature requests

Comments

@ninsmiracle
Copy link
Contributor

ninsmiracle commented Mar 5, 2025

Feature Request

Is your feature request related to a problem? Please describe:
We have some business requirements to write relatively large kv into the Pegasus.
For example, a user wants to write hundreds of thousands of data per second, and every singal date is about 80KB.
We have made many attempts to optimize the write parameters, such as adjust the memtable number/size of rocksdb,but they are far away from our target.
I noticed a paper named WiscKey https://www.usenix.org/system/files/conference/fast16/fast16-papers-lu.pdf, this paper proposes a solution to separate the key and value of RocksDB, which helps to significantly reduce the write amplification factor.
I read the logic of Rocksdb BlobDB carefully (Inspiration comes from WiscKey):https://rocksdb.org/blog/2021/05/26/integrated-blob-db.html, I think it's the time to introduce the feature to pegasus now.

Describe the feature you'd like:
I'd like to implement this feature in Pegasus.

@ninsmiracle ninsmiracle added the type/enhancement Indicates new feature requests label Mar 5, 2025
@acelyc111
Copy link
Member

Good proposal! Is there any breaking changes? I guess it's an optional to enable BlobDB or not, right?

@ninsmiracle
Copy link
Contributor Author

Good proposal! Is there any breaking changes? I guess it's an optional to enable BlobDB or not, right?

I read the source code of rocksdb. If it is a version after 8.0.0, the implementation of blobdb is relatively complete. Therefore, I think there is no need to make too many changes to introduce blobdb into the Pegasus current master branch. But specifically, I need to test this function on a test cluster.

@acelyc111
Copy link
Member

Good proposal! Is there any breaking changes? I guess it's an optional to enable BlobDB or not, right?

I read the source code of rocksdb. If it is a version after 8.0.0, the implementation of blobdb is relatively complete. Therefore, I think there is no need to make too many changes to introduce blobdb into the Pegasus current master branch. But specifically, I need to test this function on a test cluster.

Good, look forward to your good news!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement Indicates new feature requests
Projects
None yet
Development

No branches or pull requests

2 participants