• Devdutt Shenoi's avatar
    Add support for cloud data store (#517) · 6ad6e054
    Devdutt Shenoi authored
    ### Summary
    Integration with rockset/rocksdb-cloud to add CloudEnv features for operating with cloud services like AWS S3 as a datastore.
    - Created a sub-crate `librocksdb_cloud_sys` which contains the `rocksdb-cloud` sub-module containing code for managing cloud interactions, extracted from rockset/rocksdb-cloud and currently residing in [tikv/rocksdb~6.4.cloud](https://github.com/tikv/rocksdb/tree/6.4.cloud)
    - Made necessary changes to [tikv/rocksdb~6.4.tikv](https://github.com/tikv/rocksdb/tree/6.4.tikv) that is housed in the sub-module `rocksdb` within the parent crate.
    - Wrote CMakeLists.txt for use in the build process of `rocksdb_cloud` as a static library, usable for C-ABI based FFI calls. Added the above code to the build process of parent crate `librocksdb_sys` along with C-ABI binding code within `crocksdb`
    - Created 'cloud.rs' and added `new_aws_env()` method to Env type of `rocksdb.rs` that merely makes a call to the `CloudEnv::NewAwsEnv()` via FFI for use as library features upstream. A test for the same was also added here.
    - Used feature based conditional compile macros to all cloud interaction code.
    - Made requisite changes to CI config for handling AWS SDK compilation.
    - Added a sequence of steps to update submodule within Makefile
    
    Solves #514
    
    ## Checkpoints
    
    - [x] Added rocksdb-cloud as submodule in crate `librocksdb_cloud_sys`.
    - [x] Write CMakeLists.txt to build only `cloud` code.
    - [x] Generate C-bindings to interface with `NewAwsEnv` and `CloudEnvOptions`
    - [x] Create `Env::new_aws_env` as an interface in rust
    Signed-off-by: 's avatarDevdutt Shenoi <devdutt@outlook.in>
    6ad6e054
Name
Last commit
Last update
..
cmake_modules Loading commit data...
rocksdb-cloud @ ac0e18f4
src Loading commit data...
CMakeLists.txt Loading commit data...
Cargo.toml Loading commit data...
build.rs Loading commit data...