Unverified Commit c6b58a4e authored by Xinye Tao's avatar Xinye Tao Committed by GitHub

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

Add option setter/getter for max-background-flushes and max-background-compactions.

Signed-off-by: tabokie xy.tao@outlook.com
parent 2e036b40
......@@ -2063,6 +2063,26 @@ extern "C" {
pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t)
-> 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" {
pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize);
}
......
......@@ -2166,6 +2166,26 @@ extern "C" {
pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t)
-> 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" {
pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize);
}
......
......@@ -2817,6 +2817,25 @@ int crocksdb_options_get_max_background_jobs(const crocksdb_options_t* opt) {
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) {
opt->rep.max_log_file_size = v;
}
......
......@@ -1062,6 +1062,14 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_background_jobs(
crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API int crocksdb_options_get_max_background_jobs(
const crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void
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(
......
Subproject commit 7e6c07debf03604750b9b7a3ce4b0e785f3feb02
Subproject commit 6251283442ff3a69ed7f9c4ab3ef8fc62197d1c0
......@@ -710,6 +710,16 @@ extern "C" {
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_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_get_disable_auto_compactions(options: *const Options) -> c_int;
pub fn crocksdb_options_set_report_bg_io_stats(options: *mut Options, v: c_int);
......
......@@ -3362,6 +3362,13 @@ mod test {
let db_opts = db.get_db_options();
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);
assert_eq!(cf_opts.get_disable_auto_compactions(), false);
db.set_options_cf(cf, &[("disable_auto_compactions", "true")])
......
......@@ -815,6 +815,26 @@ impl DBOptions {
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) {
unsafe {
crocksdb_ffi::crocksdb_options_set_max_subcompactions(self.inner, n);
......
......@@ -586,6 +586,16 @@ fn test_set_max_background_jobs() {
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]
fn test_set_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