Unverified Commit 6d8620d1 authored by Xinye Tao's avatar Xinye Tao Committed by GitHub

Add option for max-background-flushes and max-background-compactions (#550) (#558)

Signed-off-by: 's avatartabokie <xy.tao@outlook.com>
parent 1c679f31
...@@ -2063,6 +2063,26 @@ extern "C" { ...@@ -2063,6 +2063,26 @@ extern "C" {
pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t) pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t)
-> libc::c_int; -> libc::c_int;
} }
extern "C" {
pub fn crocksdb_options_set_max_background_compactions(
arg1: *mut crocksdb_options_t,
arg2: libc::c_int,
);
}
extern "C" {
pub fn crocksdb_options_get_max_background_compactions(arg1: *const crocksdb_options_t)
-> libc::c_int;
}
extern "C" {
pub fn crocksdb_options_set_max_background_flushes(
arg1: *mut crocksdb_options_t,
arg2: libc::c_int,
);
}
extern "C" {
pub fn crocksdb_options_get_max_background_flushes(arg1: *const crocksdb_options_t)
-> libc::c_int;
}
extern "C" { extern "C" {
pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize); pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize);
} }
......
...@@ -2166,6 +2166,26 @@ extern "C" { ...@@ -2166,6 +2166,26 @@ extern "C" {
pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t) pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t)
-> libc::c_int; -> libc::c_int;
} }
extern "C" {
pub fn crocksdb_options_set_max_background_compactions(
arg1: *mut crocksdb_options_t,
arg2: libc::c_int,
);
}
extern "C" {
pub fn crocksdb_options_get_max_background_compactions(arg1: *const crocksdb_options_t)
-> libc::c_int;
}
extern "C" {
pub fn crocksdb_options_set_max_background_flushes(
arg1: *mut crocksdb_options_t,
arg2: libc::c_int,
);
}
extern "C" {
pub fn crocksdb_options_get_max_background_flushes(arg1: *const crocksdb_options_t)
-> libc::c_int;
}
extern "C" { extern "C" {
pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize); pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize);
} }
......
...@@ -2687,6 +2687,25 @@ int crocksdb_options_get_max_background_jobs(const crocksdb_options_t* opt) { ...@@ -2687,6 +2687,25 @@ int crocksdb_options_get_max_background_jobs(const crocksdb_options_t* opt) {
return opt->rep.max_background_jobs; return opt->rep.max_background_jobs;
} }
void crocksdb_options_set_max_background_compactions(crocksdb_options_t* opt,
int n) {
opt->rep.max_background_compactions = n;
}
int crocksdb_options_get_max_background_compactions(
const crocksdb_options_t* opt) {
return opt->rep.max_background_compactions;
}
void crocksdb_options_set_max_background_flushes(crocksdb_options_t* opt,
int n) {
opt->rep.max_background_flushes = n;
}
int crocksdb_options_get_max_background_flushes(const crocksdb_options_t* opt) {
return opt->rep.max_background_flushes;
}
void crocksdb_options_set_max_log_file_size(crocksdb_options_t* opt, size_t v) { void crocksdb_options_set_max_log_file_size(crocksdb_options_t* opt, size_t v) {
opt->rep.max_log_file_size = v; opt->rep.max_log_file_size = v;
} }
......
...@@ -994,7 +994,15 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_background_jobs( ...@@ -994,7 +994,15 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_background_jobs(
extern C_ROCKSDB_LIBRARY_API int crocksdb_options_get_max_background_jobs( extern C_ROCKSDB_LIBRARY_API int crocksdb_options_get_max_background_jobs(
const crocksdb_options_t*); const crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_max_log_file_size(crocksdb_options_t *, size_t); crocksdb_options_set_max_background_compactions(crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API int
crocksdb_options_get_max_background_compactions(const crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_background_flushes(
crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API int crocksdb_options_get_max_background_flushes(
const crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_log_file_size(
crocksdb_options_t*, size_t);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_log_file_time_to_roll( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_log_file_time_to_roll(
crocksdb_options_t*, size_t); crocksdb_options_t*, size_t);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_keep_log_file_num( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_keep_log_file_num(
......
...@@ -673,6 +673,16 @@ extern "C" { ...@@ -673,6 +673,16 @@ extern "C" {
pub fn crocksdb_set_bottommost_compression(options: *mut Options, c: DBCompressionType); pub fn crocksdb_set_bottommost_compression(options: *mut Options, c: DBCompressionType);
pub fn crocksdb_options_set_max_background_jobs(options: *mut Options, max_bg_jobs: c_int); pub fn crocksdb_options_set_max_background_jobs(options: *mut Options, max_bg_jobs: c_int);
pub fn crocksdb_options_get_max_background_jobs(options: *const Options) -> c_int; pub fn crocksdb_options_get_max_background_jobs(options: *const Options) -> c_int;
pub fn crocksdb_options_set_max_background_compactions(
options: *mut Options,
max_bg_compactions: c_int,
);
pub fn crocksdb_options_get_max_background_compactions(options: *const Options) -> c_int;
pub fn crocksdb_options_set_max_background_flushes(
options: *mut Options,
max_bg_flushes: c_int,
);
pub fn crocksdb_options_get_max_background_flushes(options: *const Options) -> c_int;
pub fn crocksdb_options_set_disable_auto_compactions(options: *mut Options, v: c_int); pub fn crocksdb_options_set_disable_auto_compactions(options: *mut Options, v: c_int);
pub fn crocksdb_options_get_disable_auto_compactions(options: *const Options) -> c_int; pub fn crocksdb_options_get_disable_auto_compactions(options: *const Options) -> c_int;
pub fn crocksdb_options_set_report_bg_io_stats(options: *mut Options, v: c_int); pub fn crocksdb_options_set_report_bg_io_stats(options: *mut Options, v: c_int);
......
...@@ -3329,6 +3329,15 @@ mod test { ...@@ -3329,6 +3329,15 @@ mod test {
let db_opts = db.get_db_options(); let db_opts = db.get_db_options();
assert_eq!(db_opts.get_max_background_jobs(), 8); assert_eq!(db_opts.get_max_background_jobs(), 8);
db.set_db_options(&[("max_background_compactions", "6")])
.unwrap();
db.set_db_options(&[("max_background_flushes", "3")])
.unwrap();
let db_opts = db.get_db_options();
assert_eq!(db_opts.get_max_background_jobs(), 8);
assert_eq!(db_opts.get_max_background_compactions(), 6);
assert_eq!(db_opts.get_max_background_flushes(), 3);
let cf_opts = db.get_options_cf(cf); let cf_opts = db.get_options_cf(cf);
assert_eq!(cf_opts.get_disable_auto_compactions(), false); assert_eq!(cf_opts.get_disable_auto_compactions(), false);
db.set_options_cf(cf, &[("disable_auto_compactions", "true")]) db.set_options_cf(cf, &[("disable_auto_compactions", "true")])
......
...@@ -794,6 +794,26 @@ impl DBOptions { ...@@ -794,6 +794,26 @@ impl DBOptions {
unsafe { crocksdb_ffi::crocksdb_options_get_max_background_jobs(self.inner) as i32 } unsafe { crocksdb_ffi::crocksdb_options_get_max_background_jobs(self.inner) as i32 }
} }
pub fn set_max_background_compactions(&mut self, n: c_int) {
unsafe {
crocksdb_ffi::crocksdb_options_set_max_background_compactions(self.inner, n);
}
}
pub fn get_max_background_compactions(&self) -> i32 {
unsafe { crocksdb_ffi::crocksdb_options_get_max_background_compactions(self.inner) as i32 }
}
pub fn set_max_background_flushes(&mut self, n: c_int) {
unsafe {
crocksdb_ffi::crocksdb_options_set_max_background_flushes(self.inner, n);
}
}
pub fn get_max_background_flushes(&self) -> i32 {
unsafe { crocksdb_ffi::crocksdb_options_get_max_background_flushes(self.inner) as i32 }
}
pub fn set_max_subcompactions(&mut self, n: u32) { pub fn set_max_subcompactions(&mut self, n: u32) {
unsafe { unsafe {
crocksdb_ffi::crocksdb_options_set_max_subcompactions(self.inner, n); crocksdb_ffi::crocksdb_options_set_max_subcompactions(self.inner, n);
......
...@@ -565,6 +565,16 @@ fn test_set_max_background_jobs() { ...@@ -565,6 +565,16 @@ fn test_set_max_background_jobs() {
DB::open(opts, path.path().to_str().unwrap()).unwrap(); DB::open(opts, path.path().to_str().unwrap()).unwrap();
} }
#[test]
fn test_set_max_background_compactions_and_flushes() {
let path = tempdir_with_prefix("_rust_rocksdb_max_background_compactions_and_flushes");
let mut opts = DBOptions::new();
opts.create_if_missing(true);
opts.set_max_background_compactions(4);
opts.set_max_background_flushes(1);
DB::open(opts, path.path().to_str().unwrap()).unwrap();
}
#[test] #[test]
fn test_set_compaction_pri() { fn test_set_compaction_pri() {
let path = tempdir_with_prefix("_rust_rocksdb_compaction_pri"); let path = tempdir_with_prefix("_rust_rocksdb_compaction_pri");
......
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