Commit 773015be authored by zhangjinpeng1987's avatar zhangjinpeng1987 Committed by siddontang

soft/hard pending compaction bytes limit (#18)

parent 38ee726a
......@@ -1903,6 +1903,14 @@ void crocksdb_options_set_hard_rate_limit(crocksdb_options_t* opt, double v) {
opt->rep.hard_rate_limit = v;
}
void crocksdb_options_set_soft_pending_compaction_bytes_limit(crocksdb_options_t* opt, size_t v) {
opt->rep.soft_pending_compaction_bytes_limit = v;
}
void crocksdb_options_set_hard_pending_compaction_bytes_limit(crocksdb_options_t* opt, size_t v) {
opt->rep.hard_pending_compaction_bytes_limit = v;
}
void crocksdb_options_set_rate_limit_delay_max_milliseconds(
crocksdb_options_t* opt, unsigned int v) {
opt->rep.rate_limit_delay_max_milliseconds = v;
......
......@@ -679,6 +679,10 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_soft_rate_limit(
crocksdb_options_t*, double);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_hard_rate_limit(
crocksdb_options_t*, double);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_soft_pending_compaction_bytes_limit(
crocksdb_options_t* opt, size_t v);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_hard_pending_compaction_bytes_limit(
crocksdb_options_t* opt, size_t v);
extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_rate_limit_delay_max_milliseconds(crocksdb_options_t*,
unsigned int);
......
......@@ -295,6 +295,10 @@ extern "C" {
fairness: i32)
-> *mut DBRateLimiter;
pub fn crocksdb_ratelimiter_destroy(limiter: *mut DBRateLimiter);
pub fn crocksdb_options_set_soft_pending_compaction_bytes_limit(options: *mut DBOptions,
v: u64);
pub fn crocksdb_options_set_hard_pending_compaction_bytes_limit(options: *mut DBOptions,
v: u64);
pub fn crocksdb_filterpolicy_create_bloom_full(bits_per_key: c_int) -> *mut DBFilterPolicy;
pub fn crocksdb_filterpolicy_create_bloom(bits_per_key: c_int) -> *mut DBFilterPolicy;
pub fn crocksdb_open(options: *mut DBOptions,
......
......@@ -473,6 +473,20 @@ impl Options {
}
}
pub fn set_soft_pending_compaction_bytes_limit(&mut self, size: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_soft_pending_compaction_bytes_limit(self.inner,
size);
}
}
pub fn set_hard_pending_compaction_bytes_limit(&mut self, size: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_hard_pending_compaction_bytes_limit(self.inner,
size);
}
}
pub fn set_max_manifest_file_size(&mut self, size: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_max_manifest_file_size(self.inner, size);
......
......@@ -193,4 +193,13 @@ fn test_set_pin_l0_filter_and_index_blocks_in_cache() {
opts.set_block_based_table_factory(&block_opts);
let db = DB::open(opts, path.path().to_str().unwrap()).unwrap();
drop(db);
}
\ No newline at end of file
}
#[test]
fn test_pending_compaction_bytes_limit() {
let path = TempDir::new("_rust_rocksdb_pending_compaction_bytes_limit").expect("");
let mut opts = Options::new();
opts.create_if_missing(true);
opts.set_soft_pending_compaction_bytes_limit(64 * 1024 * 1024 * 1024);
opts.set_hard_pending_compaction_bytes_limit(256 * 1024 * 1024 * 1024);
let db = DB::open(opts, path.path().to_str().unwrap()).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