-
Notifications
You must be signed in to change notification settings - Fork 155
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
Add support for cloud data store #517
Conversation
Related to tikv/rust-rocksdb#517 and #182 ### Summary Adds code used in compiling with [rocksdb~6.4.tikv](https://github.com/tikv/rocksdb/tree/6.4.tikv) along with [rocksdb~6.4.cloud](https://github.com/tikv/rocksdb/tree/6.4.cloud) ### Changes - Makes public the struct LogReporter so that it can be accessed by [rocksdb~6.4.cloud/cloud/manifest_reader.cc#L114](https://github.com/tikv/rocksdb/blob/6a7c514453e3e3e1c3bb57c18d8e0280089ccdcd/cloud/manifest_reader.cc#L114) Signed-off-by: Devdutt Shenoi <[email protected]>
librocksdb_sys/crocksdb/c.cc
Outdated
std::unique_ptr<CloudEnv> cloud_env; | ||
|
||
CloudEnv* cenv; | ||
if (SaveError(errptr, CloudEnv::NewAwsEnv(base_env->rep, cloud_options->rep, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the list of params are much different to in the cloud code https://github.com/tikv/rocksdb/blob/6.4.cloud/include/rocksdb/cloud/cloud_env_options.h#L291 does the code really being built?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For all the new files, add the following header
// Copyright 2020 TiKV Project Authors. Licensed under Apache-2.0.
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you update Makefile to include a update_rocksdb_cloud target, similar to update_rocksdb and update_titan?
Used in PR tikv/rust-rocksdb#517 and #181 Adds code used in compiling with [rocksdb~6.4.tikv](https://github.com/tikv/rocksdb/tree/6.4.tikv) along with [rocksdb~6.4.cloud](https://github.com/tikv/rocksdb/tree/6.4.cloud) Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
Signed-off-by: Devdutt Shenoi <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like the travis cache works now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Related to tikv/rust-rocksdb#517 and tikv#182 Adds code used in compiling with [rocksdb~6.4.tikv](https://github.com/tikv/rocksdb/tree/6.4.tikv) along with [rocksdb~6.4.cloud](https://github.com/tikv/rocksdb/tree/6.4.cloud) - Makes public the struct LogReporter so that it can be accessed by [rocksdb~6.4.cloud/cloud/manifest_reader.cc#L114](https://github.com/tikv/rocksdb/blob/6a7c514453e3e3e1c3bb57c18d8e0280089ccdcd/cloud/manifest_reader.cc#L114) Signed-off-by: Devdutt Shenoi <[email protected]> Signed-off-by: tabokie <[email protected]>
Related to tikv/rust-rocksdb#517 and #182 Adds code used in compiling with [rocksdb~6.4.tikv](https://github.com/tikv/rocksdb/tree/6.4.tikv) along with [rocksdb~6.4.cloud](https://github.com/tikv/rocksdb/tree/6.4.cloud) - Makes public the struct LogReporter so that it can be accessed by [rocksdb~6.4.cloud/cloud/manifest_reader.cc#L114](https://github.com/tikv/rocksdb/blob/6a7c514453e3e3e1c3bb57c18d8e0280089ccdcd/cloud/manifest_reader.cc#L114) Signed-off-by: Devdutt Shenoi <[email protected]> Signed-off-by: tabokie <[email protected]>
Summary
Integration with rockset/rocksdb-cloud to add CloudEnv features for operating with cloud services like AWS S3 as a datastore.
librocksdb_cloud_sys
which contains therocksdb-cloud
sub-module containing code for managing cloud interactions, extracted from rockset/rocksdb-cloud and currently residing in tikv/rocksdb~6.4.cloudrocksdb
within the parent crate.rocksdb_cloud
as a static library, usable for C-ABI based FFI calls. Added the above code to the build process of parent cratelibrocksdb_sys
along with C-ABI binding code withincrocksdb
new_aws_env()
method to Env type ofrocksdb.rs
that merely makes a call to theCloudEnv::NewAwsEnv()
via FFI for use as library features upstream. A test for the same was also added here.Solves #514
Checkpoints
librocksdb_cloud_sys
.cloud
code.NewAwsEnv
andCloudEnvOptions
Env::new_aws_env
as an interface in rust