• 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
benches Loading commit data...
librocksdb_sys Loading commit data...
scripts Loading commit data...
src Loading commit data...
tests Loading commit data...
travis-build Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.travis.yml Loading commit data...
Cargo.toml Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
rust-toolchain Loading commit data...
rustfmt.toml Loading commit data...