Commit 02116093 authored by Ivan.Yang's avatar Ivan.Yang Committed by siddontang

Add support for compaction_readahead_size (#78)

parent 20edf912
...@@ -1978,6 +1978,11 @@ void crocksdb_options_set_report_bg_io_stats( ...@@ -1978,6 +1978,11 @@ void crocksdb_options_set_report_bg_io_stats(
opt->rep.report_bg_io_stats = v; opt->rep.report_bg_io_stats = v;
} }
void crocksdb_options_set_compaction_readahead_size(
crocksdb_options_t* opt, size_t v) {
opt->rep.compaction_readahead_size = v;
}
void crocksdb_options_set_compaction_style(crocksdb_options_t *opt, int style) { void crocksdb_options_set_compaction_style(crocksdb_options_t *opt, int style) {
opt->rep.compaction_style = static_cast<rocksdb::CompactionStyle>(style); opt->rep.compaction_style = static_cast<rocksdb::CompactionStyle>(style);
} }
......
...@@ -740,6 +740,8 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_inplace_update_num_locks( ...@@ -740,6 +740,8 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_inplace_update_num_locks(
crocksdb_options_t*, size_t); crocksdb_options_t*, size_t);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_report_bg_io_stats( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_report_bg_io_stats(
crocksdb_options_t*, int); crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_compaction_readahead_size(
crocksdb_options_t*, size_t);
enum { enum {
crocksdb_tolerate_corrupted_tail_records_recovery = 0, crocksdb_tolerate_corrupted_tail_records_recovery = 0,
......
...@@ -188,6 +188,7 @@ extern "C" { ...@@ -188,6 +188,7 @@ extern "C" {
pub fn crocksdb_options_set_filter_deletes(options: *mut DBOptions, v: bool); pub fn crocksdb_options_set_filter_deletes(options: *mut DBOptions, v: bool);
pub fn crocksdb_options_set_disable_auto_compactions(options: *mut DBOptions, v: c_int); pub fn crocksdb_options_set_disable_auto_compactions(options: *mut DBOptions, v: c_int);
pub fn crocksdb_options_set_report_bg_io_stats(options: *mut DBOptions, v: c_int); pub fn crocksdb_options_set_report_bg_io_stats(options: *mut DBOptions, v: c_int);
pub fn crocksdb_options_set_compaction_readahead_size(options: *mut DBOptions, v: size_t);
pub fn crocksdb_options_set_wal_recovery_mode(options: *mut DBOptions, mode: DBRecoveryMode); pub fn crocksdb_options_set_wal_recovery_mode(options: *mut DBOptions, mode: DBRecoveryMode);
pub fn crocksdb_options_enable_statistics(options: *mut DBOptions); pub fn crocksdb_options_enable_statistics(options: *mut DBOptions);
pub fn crocksdb_options_statistics_get_string(options: *mut DBOptions) -> *const c_char; pub fn crocksdb_options_statistics_get_string(options: *mut DBOptions) -> *const c_char;
......
...@@ -600,6 +600,12 @@ impl Options { ...@@ -600,6 +600,12 @@ impl Options {
crocksdb_ffi::crocksdb_options_set_memtable_prefix_bloom_size_ratio(self.inner, ratio); crocksdb_ffi::crocksdb_options_set_memtable_prefix_bloom_size_ratio(self.inner, ratio);
} }
} }
pub fn set_compaction_readahead_size(&mut self, size: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_compaction_readahead_size(self.inner, size as size_t);
}
}
} }
pub struct FlushOptions { pub struct FlushOptions {
......
...@@ -23,3 +23,13 @@ fn test_log_file_opt() { ...@@ -23,3 +23,13 @@ fn test_log_file_opt() {
let db = DB::open(opts, path.path().to_str().unwrap()).unwrap(); let db = DB::open(opts, path.path().to_str().unwrap()).unwrap();
drop(db); drop(db);
} }
#[test]
fn test_compaction_readahead_size() {
let path = TempDir::new("_rust_rocksdb_compaction_readahead_size").expect("");
let mut opts = Options::new();
opts.create_if_missing(true);
opts.set_compaction_readahead_size(2048);
let db = DB::open(opts, path.path().to_str().unwrap()).unwrap();
drop(db);
}
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