Support rocksdb-cloud
yiwu-arbug opened this issue · comments
Add bindings for rocksdb-cloud(https://github.com/rockset/rocksdb-cloud)'s CloudEnv
interface. In particular the following tasks need to be done:
updated plan:
- port cloud-env code from rocksdb-cloud to tikv/rocksdb 6.4.tikv branch, but make the code compile conditionally.
- add crocksdb binding for the cloud env code.
- add rust binding code. Gate the code and building of the cloud code behind a "rocksdb-cloud" feature.
(original plan):
makerocksdb-cloud
a submodule of rust-rocksdbcreate a custom CMake script to build only theCloudEnv
code but not the rest of rocksdb code in it. Instead use rocksdb headers from /librocksdb/rocksdb while building.add C bindings to manipulateCloudEnvOptions
and callNewAwsEnv
. The rocksdb-cloud submodule and the C binding should be in a librocksdb_cloud_sys crate.implementEnv::new_aws_env
in src/rocksdb.rs.
Most of the task is similar to how we support titan (librocksdb_sys/libtitan_sys), but this time let don't put librocksdb_cloud_sys inside librocksdb_sys directory.
So we are supposed to be integrating the code within the same path, i.e. librock_sys/rocksdb-cloud
so that we can start utilising rocksdb-cloud/cloud
. Are we supposed to make the submodule at branch master?
but this time let don't put librocksdb_cloud_sys
To be more clear, are we supposed to or not supposed to create a new crate?
So we are supposed to be integrating the code within the same path, i.e.
librock_sys/rocksdb-cloud
so that we can start utilisingrocksdb-cloud/cloud
. Are we supposed to make the submodule at branch master?
I would like to add the path librocksdb_cloud_sys
under root directory. And yes, in master branch, but probably guard it behind a rocksdb-cloud
feature.
#517 merged. work done.