Commit 44b2521a authored by Cholerae Hu's avatar Cholerae Hu Committed by GitHub

Merge pull request #91 from pingcap/hyq/bottom

rocksdb: add bottommost_compression method
parents 0a5e010a 1735748e
...@@ -3299,4 +3299,8 @@ void crocksdb_get_properties_of_tables_in_range( ...@@ -3299,4 +3299,8 @@ void crocksdb_get_properties_of_tables_in_range(
} }
} }
void crocksdb_set_bottommost_compression(crocksdb_options_t* opt, int c) {
opt->rep.bottommost_compression = static_cast<CompressionType>(c);
}
} // end extern "C" } // end extern "C"
...@@ -629,6 +629,8 @@ extern C_ROCKSDB_LIBRARY_API size_t crocksdb_options_get_compression_level_numbe ...@@ -629,6 +629,8 @@ extern C_ROCKSDB_LIBRARY_API size_t crocksdb_options_get_compression_level_numbe
crocksdb_options_t* opt); crocksdb_options_t* opt);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_get_compression_per_level( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_get_compression_per_level(
crocksdb_options_t* opt, int *level_values); crocksdb_options_t* opt, int *level_values);
extern C_ROCKSDB_LIBRARY_API void crocksdb_set_bottommost_compression(
crocksdb_options_t* opt, int c);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_create_if_missing( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_create_if_missing(
crocksdb_options_t*, unsigned char); crocksdb_options_t*, unsigned char);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
......
...@@ -83,6 +83,7 @@ pub enum DBCompressionType { ...@@ -83,6 +83,7 @@ pub enum DBCompressionType {
// DBXpress = 6, not support currently. // DBXpress = 6, not support currently.
DBZstd = 7, DBZstd = 7,
DBZstdNotFinal = 0x40, DBZstdNotFinal = 0x40,
DBDisableCompression = 0xff,
} }
#[repr(C)] #[repr(C)]
...@@ -320,6 +321,7 @@ extern "C" { ...@@ -320,6 +321,7 @@ extern "C" {
pub fn crocksdb_options_get_compression_level_number(options: *mut DBOptions) -> size_t; pub fn crocksdb_options_get_compression_level_number(options: *mut DBOptions) -> size_t;
pub fn crocksdb_options_get_compression_per_level(options: *mut DBOptions, pub fn crocksdb_options_get_compression_per_level(options: *mut DBOptions,
level_values: *mut DBCompressionType); level_values: *mut DBCompressionType);
pub fn crocksdb_set_bottommost_compression(options: *mut DBOptions, c: DBCompressionType);
pub fn crocksdb_options_set_base_background_compactions(optinos: *mut DBOptions, pub fn crocksdb_options_set_base_background_compactions(optinos: *mut DBOptions,
base_bg_compactions: c_int); base_bg_compactions: c_int);
pub fn crocksdb_options_set_max_background_compactions(options: *mut DBOptions, pub fn crocksdb_options_set_max_background_compactions(options: *mut DBOptions,
......
...@@ -439,6 +439,10 @@ impl Options { ...@@ -439,6 +439,10 @@ impl Options {
} }
} }
pub fn bottommost_compression(&self, c: DBCompressionType) {
unsafe { crocksdb_ffi::crocksdb_set_bottommost_compression(self.inner, c) }
}
pub fn add_merge_operator(&mut self, name: &str, merge_fn: MergeFn) { pub fn add_merge_operator(&mut self, name: &str, merge_fn: MergeFn) {
let cb = Box::new(MergeOperatorCallback { let cb = Box::new(MergeOperatorCallback {
name: CString::new(name.as_bytes()).unwrap(), name: CString::new(name.as_bytes()).unwrap(),
......
...@@ -377,6 +377,15 @@ fn test_get_compression_per_level() { ...@@ -377,6 +377,15 @@ fn test_get_compression_per_level() {
assert_eq!(v2.len(), 0); assert_eq!(v2.len(), 0);
} }
#[test]
fn test_bottommost_compression() {
let path = TempDir::new("_rust_rocksdb_bottommost_compression").expect("");
let mut opts = Options::new();
opts.create_if_missing(true);
opts.bottommost_compression(DBCompressionType::DBNo);
DB::open(opts, path.path().to_str().unwrap()).unwrap();
}
#[test] #[test]
fn test_clone_options() { fn test_clone_options() {
let mut opts = Options::new(); let mut opts = Options::new();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment