Commit 10e6056f authored by zhangjinpeng1987's avatar zhangjinpeng1987

add compression_per_level options

parent 260a80d3
......@@ -186,6 +186,9 @@ extern "C" {
cs: DBCompactionStyle);
pub fn rocksdb_options_set_compression(options: DBOptions,
compression_style_no: DBCompressionType);
pub fn rocksdb_options_set_compression_per_level(options: DBOptions,
level_values: *const DBCompressionType,
num_levels: size_t);
pub fn rocksdb_options_set_max_background_compactions(
options: DBOptions, max_bg_compactions: c_int);
pub fn rocksdb_options_set_max_background_flushes(options: DBOptions,
......
......@@ -143,7 +143,7 @@ fn main() {
#[cfg(test)]
mod tests {
use rocksdb::{BlockBasedOptions, DB, Options};
use rocksdb::{BlockBasedOptions, DB, Options, DBCompressionType};
use rocksdb::DBCompactionStyle::DBUniversal;
#[allow(dead_code)]
......@@ -151,6 +151,14 @@ mod tests {
opts: &mut Options,
blockopts: &mut BlockBasedOptions)
-> DB {
let per_level_compression: [DBCompressionType; 7] = [DBCompressionType::DBNo,
DBCompressionType::DBNo,
DBCompressionType::DBNo,
DBCompressionType::DBLz4,
DBCompressionType::DBLz4,
DBCompressionType::DBLz4,
DBCompressionType::DBLz4];
opts.create_if_missing(true);
opts.set_max_open_files(10000);
opts.set_use_fsync(false);
......@@ -169,6 +177,7 @@ mod tests {
opts.set_max_background_flushes(4);
opts.set_filter_deletes(false);
opts.set_report_bg_io_stats(true);
opts.compression_per_level(&per_level_compression);
blockopts.set_block_size(524288);
opts.set_block_based_table_factory(blockopts);
opts.set_disable_auto_compactions(true);
......
......@@ -162,6 +162,14 @@ impl Options {
}
}
pub fn compression_per_level(&mut self, level_types: &[DBCompressionType]) {
unsafe {
rocksdb_ffi::rocksdb_options_set_compression_per_level(self.inner,
level_types.as_ptr(),
level_types.len() as size_t)
}
}
pub fn add_merge_operator(&mut self, name: &str, merge_fn: MergeFn) {
let cb = Box::new(MergeOperatorCallback {
name: CString::new(name.as_bytes()).unwrap(),
......
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