This repository was archived by the owner on Mar 1, 2026. It is now read-only.
Support for building RocksDB plugins and custom file systems#1159
Open
yhr wants to merge 2 commits into
Open
Conversation
Summary:
Add support for specifying custom RocksDB file system implementations
through the parameter rocksdb_fs_uri.
Examples:
rocksdb_fs_uri=zenfs://dev:nvme0n1
rocksdb_fs_uri=posix://
Custom file systems may be built as plugins in rocksdb and can be
created through a factory function that will be looked up by the
object registry. The posix file system is built in.
Summary: RocksDB supports external plugin projects in plugins/ enabling e.g. custom file system implementations. Add support for building RocksDB plugins by including the plugins listed in ROCKSDB_PLUGINS into the cmake build.
9527f59 to
d80b2c5
Compare
Author
|
Pushed a small update, aligning with the rocksdb makefile build: allowing plugin makefile to be called anything, as long as it has the extension .mk |
ajkr
approved these changes
Mar 22, 2021
ajkr
left a comment
Contributor
There was a problem hiding this comment.
LGTM. @yizhang82 - this should work with RocksDB 6.18.0 and later
Author
|
Ping @yizhang82 : Rocksdb version us now bumped up to 6.19 - could you have a look over these two changes? |
|
Just curious: any news on this one? Is there anything missing to get this change merged? |
Contributor
|
@yizhang82 Would it be easier if I submit these as Phabricator diffs? |
|
Hi, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RocksDB now supports building plugins from external repos (facebook/rocksdb#7918) and this pull request adds the needed cmake magic to include these in myrocks builds. The plugins to include are specified by ROCKSDB_PLUGINS:
Note: as this branch is not yet including the above pull request, the plugin directory does not exist, but can be created manually and the above example will work.
A configuration parameter, rocksdb_fs_uri is also added to allow the user to specify custom file systems.
These two changes allows external file systems to be included and used my myrocks. I've tested using dedupfs and a custom filesystem that i've developed for zoned block devices: zenfs.