Commit b52deee8 authored by goroutine's avatar goroutine Committed by GitHub

Merge pull request #29 from aya/add_rocksdb_in_memory_related_configurations

Add RocksDB options for in memory configurations.
parents 99f4edd6 b1153adc
......@@ -1771,11 +1771,11 @@ void crocksdb_options_set_wal_dir(
opt->rep.wal_dir = v;
}
void crocksdb_options_set_WAL_ttl_seconds(crocksdb_options_t* opt, uint64_t ttl) {
void crocksdb_options_set_wal_ttl_seconds(crocksdb_options_t* opt, uint64_t ttl) {
opt->rep.WAL_ttl_seconds = ttl;
}
void crocksdb_options_set_WAL_size_limit_MB(
void crocksdb_options_set_wal_size_limit_mb(
crocksdb_options_t* opt, uint64_t limit) {
opt->rep.WAL_size_limit_MB = limit;
}
......@@ -2379,7 +2379,7 @@ void crocksdb_writeoptions_set_sync(
opt->rep.sync = v;
}
void crocksdb_writeoptions_disable_WAL(crocksdb_writeoptions_t* opt, int disable) {
void crocksdb_writeoptions_disable_wal(crocksdb_writeoptions_t* opt, int disable) {
opt->rep.disableWAL = disable;
}
......
......@@ -700,9 +700,9 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_db_log_dir(
crocksdb_options_t*, const char*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_wal_dir(crocksdb_options_t*,
const char*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_WAL_ttl_seconds(
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_wal_ttl_seconds(
crocksdb_options_t*, uint64_t);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_WAL_size_limit_MB(
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_wal_size_limit_mb(
crocksdb_options_t*, uint64_t);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_manifest_preallocation_size(
crocksdb_options_t*, size_t);
......@@ -938,7 +938,7 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_writeoptions_destroy(
crocksdb_writeoptions_t*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_writeoptions_set_sync(
crocksdb_writeoptions_t*, unsigned char);
extern C_ROCKSDB_LIBRARY_API void crocksdb_writeoptions_disable_WAL(
extern C_ROCKSDB_LIBRARY_API void crocksdb_writeoptions_disable_wal(
crocksdb_writeoptions_t* opt, int disable);
/* Compact range options */
......
......@@ -263,6 +263,9 @@ extern "C" {
pub fn crocksdb_options_set_stats_dump_period_sec(options: *mut DBOptions, v: usize);
pub fn crocksdb_options_set_num_levels(options: *mut DBOptions, v: c_int);
pub fn crocksdb_options_set_db_log_dir(options: *mut DBOptions, path: *const c_char);
pub fn crocksdb_options_set_wal_dir(options: *mut DBOptions, path: *const c_char);
pub fn crocksdb_options_set_wal_ttl_seconds(options: *mut DBOptions, ttl: u64);
pub fn crocksdb_options_set_wal_size_limit_mb(options: *mut DBOptions, limit: u64);
pub fn crocksdb_options_set_prefix_extractor(options: *mut DBOptions,
prefix_extractor: *mut DBSliceTransform);
pub fn crocksdb_options_set_memtable_insert_with_hint_prefix_extractor(options: *mut DBOptions,
......@@ -284,7 +287,7 @@ extern "C" {
pub fn crocksdb_writeoptions_create() -> *mut DBWriteOptions;
pub fn crocksdb_writeoptions_destroy(writeopts: *mut DBWriteOptions);
pub fn crocksdb_writeoptions_set_sync(writeopts: *mut DBWriteOptions, v: bool);
pub fn crocksdb_writeoptions_disable_WAL(writeopts: *mut DBWriteOptions, v: c_int);
pub fn crocksdb_writeoptions_disable_wal(writeopts: *mut DBWriteOptions, v: c_int);
pub fn crocksdb_put(db: *mut DBInstance,
writeopts: *mut DBWriteOptions,
k: *const u8,
......
......@@ -246,9 +246,9 @@ impl WriteOptions {
pub fn disable_wal(&mut self, disable: bool) {
unsafe {
if disable {
crocksdb_ffi::crocksdb_writeoptions_disable_WAL(self.inner, 1);
crocksdb_ffi::crocksdb_writeoptions_disable_wal(self.inner, 1);
} else {
crocksdb_ffi::crocksdb_writeoptions_disable_WAL(self.inner, 0);
crocksdb_ffi::crocksdb_writeoptions_disable_wal(self.inner, 0);
}
}
}
......@@ -654,6 +654,25 @@ impl Options {
}
}
pub fn set_wal_dir(&mut self, path: &str) {
let path = CString::new(path.as_bytes()).unwrap();
unsafe {
crocksdb_ffi::crocksdb_options_set_wal_dir(self.inner, path.as_ptr());
}
}
pub fn set_wal_ttl_seconds(&mut self, ttl: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_wal_ttl_seconds(self.inner, ttl as u64);
}
}
pub fn set_wal_size_limit_mb(&mut self, limit: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_wal_size_limit_mb(self.inner, limit as u64);
}
}
pub fn set_max_log_file_size(&mut self, size: u64) {
unsafe {
crocksdb_ffi::crocksdb_options_set_max_log_file_size(self.inner, size as size_t);
......
......@@ -118,3 +118,17 @@ fn test_set_ratelimiter() {
let db = DB::open(opts, path.path().to_str().unwrap()).unwrap();
drop(db);
}
#[test]
fn test_set_wal_opt() {
let path = TempDir::new("_rust_rocksdb_test_set_wal_opt").expect("");
let mut opts = Options::new();
opts.create_if_missing(true);
opts.set_wal_ttl_seconds(86400);
opts.set_wal_size_limit_mb(10);
let wal_dir = TempDir::new("_rust_rocksdb_test_set_wal_dir").expect("");
opts.set_wal_dir(wal_dir.path().to_str().unwrap());
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