Unverified Commit b011ecb1 authored by Huachao Huang's avatar Huachao Huang Committed by GitHub

Add some wrapper to get/set options (#205)

parent a91974aa
...@@ -2122,11 +2122,21 @@ void crocksdb_options_set_level0_slowdown_writes_trigger( ...@@ -2122,11 +2122,21 @@ void crocksdb_options_set_level0_slowdown_writes_trigger(
opt->rep.level0_slowdown_writes_trigger = n; opt->rep.level0_slowdown_writes_trigger = n;
} }
int crocksdb_options_get_level0_slowdown_writes_trigger(
crocksdb_options_t* opt) {
return opt->rep.level0_slowdown_writes_trigger;
}
void crocksdb_options_set_level0_stop_writes_trigger( void crocksdb_options_set_level0_stop_writes_trigger(
crocksdb_options_t* opt, int n) { crocksdb_options_t* opt, int n) {
opt->rep.level0_stop_writes_trigger = n; opt->rep.level0_stop_writes_trigger = n;
} }
int crocksdb_options_get_level0_stop_writes_trigger(
crocksdb_options_t* opt) {
return opt->rep.level0_stop_writes_trigger;
}
void crocksdb_options_set_wal_recovery_mode(crocksdb_options_t* opt,int mode) { void crocksdb_options_set_wal_recovery_mode(crocksdb_options_t* opt,int mode) {
opt->rep.wal_recovery_mode = static_cast<WALRecoveryMode>(mode); opt->rep.wal_recovery_mode = static_cast<WALRecoveryMode>(mode);
} }
...@@ -2366,10 +2376,18 @@ void crocksdb_options_set_soft_pending_compaction_bytes_limit(crocksdb_options_t ...@@ -2366,10 +2376,18 @@ void crocksdb_options_set_soft_pending_compaction_bytes_limit(crocksdb_options_t
opt->rep.soft_pending_compaction_bytes_limit = v; opt->rep.soft_pending_compaction_bytes_limit = v;
} }
size_t crocksdb_options_get_soft_pending_compaction_bytes_limit(crocksdb_options_t* opt) {
return opt->rep.soft_pending_compaction_bytes_limit;
}
void crocksdb_options_set_hard_pending_compaction_bytes_limit(crocksdb_options_t* opt, size_t 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; opt->rep.hard_pending_compaction_bytes_limit = v;
} }
size_t crocksdb_options_get_hard_pending_compaction_bytes_limit(crocksdb_options_t* opt) {
return opt->rep.hard_pending_compaction_bytes_limit;
}
void crocksdb_options_set_rate_limit_delay_max_milliseconds( void crocksdb_options_set_rate_limit_delay_max_milliseconds(
crocksdb_options_t* opt, unsigned int v) { crocksdb_options_t* opt, unsigned int v) {
opt->rep.rate_limit_delay_max_milliseconds = v; opt->rep.rate_limit_delay_max_milliseconds = v;
...@@ -3006,6 +3024,12 @@ void crocksdb_compactoptions_set_target_level(crocksdb_compactoptions_t* opt, ...@@ -3006,6 +3024,12 @@ void crocksdb_compactoptions_set_target_level(crocksdb_compactoptions_t* opt,
opt->rep.target_level = n; opt->rep.target_level = n;
} }
void crocksdb_compactoptions_set_max_subcompactions(
crocksdb_compactoptions_t* opt,
int v) {
opt->rep.max_subcompactions = v;
}
crocksdb_flushoptions_t* crocksdb_flushoptions_create() { crocksdb_flushoptions_t* crocksdb_flushoptions_create() {
return new crocksdb_flushoptions_t; return new crocksdb_flushoptions_t;
} }
...@@ -4153,6 +4177,18 @@ const char* crocksdb_sst_file_meta_data_name(const crocksdb_sst_file_meta_data_t ...@@ -4153,6 +4177,18 @@ const char* crocksdb_sst_file_meta_data_name(const crocksdb_sst_file_meta_data_t
return meta->rep.name.data(); return meta->rep.name.data();
} }
const char* crocksdb_sst_file_meta_data_smallestkey(
const crocksdb_sst_file_meta_data_t* meta, size_t* len) {
*len = meta->rep.smallestkey.size();
return meta->rep.smallestkey.data();
}
const char* crocksdb_sst_file_meta_data_largestkey(
const crocksdb_sst_file_meta_data_t* meta, size_t* len) {
*len = meta->rep.largestkey.size();
return meta->rep.largestkey.data();
}
crocksdb_compaction_options_t* crocksdb_compaction_options_create() { crocksdb_compaction_options_t* crocksdb_compaction_options_create() {
return new crocksdb_compaction_options_t(); return new crocksdb_compaction_options_t();
} }
...@@ -4173,6 +4209,12 @@ void crocksdb_compaction_options_set_output_file_size_limit( ...@@ -4173,6 +4209,12 @@ void crocksdb_compaction_options_set_output_file_size_limit(
opts->rep.output_file_size_limit = size; opts->rep.output_file_size_limit = size;
} }
void crocksdb_compaction_options_set_max_subcompactions(
crocksdb_compaction_options_t* opts,
int v) {
opts->rep.max_subcompactions = v;
}
void crocksdb_compact_files_cf( void crocksdb_compact_files_cf(
crocksdb_t* db, crocksdb_column_family_handle_t* cf, crocksdb_t* db, crocksdb_column_family_handle_t* cf,
crocksdb_compaction_options_t* opts, crocksdb_compaction_options_t* opts,
......
...@@ -810,8 +810,12 @@ extern C_ROCKSDB_LIBRARY_API void ...@@ -810,8 +810,12 @@ extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_level0_file_num_compaction_trigger(crocksdb_options_t*, int); crocksdb_options_set_level0_file_num_compaction_trigger(crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_level0_slowdown_writes_trigger(crocksdb_options_t*, int); crocksdb_options_set_level0_slowdown_writes_trigger(crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_level0_stop_writes_trigger( extern C_ROCKSDB_LIBRARY_API int
crocksdb_options_t*, int); crocksdb_options_get_level0_slowdown_writes_trigger(crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_level0_stop_writes_trigger(crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API int
crocksdb_options_get_level0_stop_writes_trigger(crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_target_file_size_base( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_target_file_size_base(
crocksdb_options_t*, uint64_t); crocksdb_options_t*, uint64_t);
extern C_ROCKSDB_LIBRARY_API uint64_t crocksdb_options_get_target_file_size_base( extern C_ROCKSDB_LIBRARY_API uint64_t crocksdb_options_get_target_file_size_base(
...@@ -882,8 +886,12 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_hard_rate_limit( ...@@ -882,8 +886,12 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_hard_rate_limit(
crocksdb_options_t*, double); crocksdb_options_t*, double);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_soft_pending_compaction_bytes_limit( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_soft_pending_compaction_bytes_limit(
crocksdb_options_t* opt, size_t v); crocksdb_options_t* opt, size_t v);
extern C_ROCKSDB_LIBRARY_API size_t crocksdb_options_get_soft_pending_compaction_bytes_limit(
crocksdb_options_t* opt);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_hard_pending_compaction_bytes_limit( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_hard_pending_compaction_bytes_limit(
crocksdb_options_t* opt, size_t v); crocksdb_options_t* opt, size_t v);
extern C_ROCKSDB_LIBRARY_API size_t crocksdb_options_get_hard_pending_compaction_bytes_limit(
crocksdb_options_t* opt);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_rate_limit_delay_max_milliseconds(crocksdb_options_t*, crocksdb_options_set_rate_limit_delay_max_milliseconds(crocksdb_options_t*,
unsigned int); unsigned int);
...@@ -1223,6 +1231,8 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_compactoptions_set_change_level( ...@@ -1223,6 +1231,8 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_compactoptions_set_change_level(
crocksdb_compactoptions_t*, unsigned char); crocksdb_compactoptions_t*, unsigned char);
extern C_ROCKSDB_LIBRARY_API void crocksdb_compactoptions_set_target_level( extern C_ROCKSDB_LIBRARY_API void crocksdb_compactoptions_set_target_level(
crocksdb_compactoptions_t*, int); crocksdb_compactoptions_t*, int);
extern C_ROCKSDB_LIBRARY_API void
crocksdb_compactoptions_set_max_subcompactions(crocksdb_compactoptions_t*, int);
/* Flush options */ /* Flush options */
...@@ -1658,6 +1668,10 @@ extern C_ROCKSDB_LIBRARY_API size_t ...@@ -1658,6 +1668,10 @@ extern C_ROCKSDB_LIBRARY_API size_t
crocksdb_sst_file_meta_data_size(const crocksdb_sst_file_meta_data_t*); crocksdb_sst_file_meta_data_size(const crocksdb_sst_file_meta_data_t*);
extern C_ROCKSDB_LIBRARY_API const char* extern C_ROCKSDB_LIBRARY_API const char*
crocksdb_sst_file_meta_data_name(const crocksdb_sst_file_meta_data_t*); crocksdb_sst_file_meta_data_name(const crocksdb_sst_file_meta_data_t*);
extern C_ROCKSDB_LIBRARY_API const char*
crocksdb_sst_file_meta_data_smallestkey(const crocksdb_sst_file_meta_data_t*, size_t*);
extern C_ROCKSDB_LIBRARY_API const char*
crocksdb_sst_file_meta_data_largestkey(const crocksdb_sst_file_meta_data_t*, size_t*);
/* CompactFiles */ /* CompactFiles */
extern C_ROCKSDB_LIBRARY_API crocksdb_compaction_options_t* extern C_ROCKSDB_LIBRARY_API crocksdb_compaction_options_t*
...@@ -1668,6 +1682,8 @@ extern C_ROCKSDB_LIBRARY_API void ...@@ -1668,6 +1682,8 @@ extern C_ROCKSDB_LIBRARY_API void
crocksdb_compaction_options_set_compression(crocksdb_compaction_options_t*, int); crocksdb_compaction_options_set_compression(crocksdb_compaction_options_t*, int);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
crocksdb_compaction_options_set_output_file_size_limit(crocksdb_compaction_options_t*, size_t); crocksdb_compaction_options_set_output_file_size_limit(crocksdb_compaction_options_t*, size_t);
extern C_ROCKSDB_LIBRARY_API void
crocksdb_compaction_options_set_max_subcompactions(crocksdb_compaction_options_t*, int);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
crocksdb_compact_files_cf(crocksdb_t*, crocksdb_column_family_handle_t*, crocksdb_compact_files_cf(crocksdb_t*, crocksdb_column_family_handle_t*,
......
...@@ -431,7 +431,9 @@ extern "C" { ...@@ -431,7 +431,9 @@ extern "C" {
no: c_int, no: c_int,
); );
pub fn crocksdb_options_set_level0_slowdown_writes_trigger(options: *mut Options, no: c_int); pub fn crocksdb_options_set_level0_slowdown_writes_trigger(options: *mut Options, no: c_int);
pub fn crocksdb_options_get_level0_slowdown_writes_trigger(options: *mut Options) -> c_int;
pub fn crocksdb_options_set_level0_stop_writes_trigger(options: *mut Options, no: c_int); pub fn crocksdb_options_set_level0_stop_writes_trigger(options: *mut Options, no: c_int);
pub fn crocksdb_options_get_level0_stop_writes_trigger(options: *mut Options) -> c_int;
pub fn crocksdb_options_set_write_buffer_size(options: *mut Options, bytes: u64); pub fn crocksdb_options_set_write_buffer_size(options: *mut Options, bytes: u64);
pub fn crocksdb_options_set_target_file_size_base(options: *mut Options, bytes: u64); pub fn crocksdb_options_set_target_file_size_base(options: *mut Options, bytes: u64);
pub fn crocksdb_options_get_target_file_size_base(options: *const Options) -> u64; pub fn crocksdb_options_get_target_file_size_base(options: *const Options) -> u64;
...@@ -563,7 +565,9 @@ extern "C" { ...@@ -563,7 +565,9 @@ extern "C" {
pri: c_uchar, pri: c_uchar,
) -> i64; ) -> i64;
pub fn crocksdb_options_set_soft_pending_compaction_bytes_limit(options: *mut Options, v: u64); pub fn crocksdb_options_set_soft_pending_compaction_bytes_limit(options: *mut Options, v: u64);
pub fn crocksdb_options_get_soft_pending_compaction_bytes_limit(options: *mut Options) -> u64;
pub fn crocksdb_options_set_hard_pending_compaction_bytes_limit(options: *mut Options, v: u64); pub fn crocksdb_options_set_hard_pending_compaction_bytes_limit(options: *mut Options, v: u64);
pub fn crocksdb_options_get_hard_pending_compaction_bytes_limit(options: *mut Options) -> u64;
pub fn crocksdb_options_set_compaction_priority(options: *mut Options, v: CompactionPriority); pub fn crocksdb_options_set_compaction_priority(options: *mut Options, v: CompactionPriority);
pub fn crocksdb_options_set_db_paths( pub fn crocksdb_options_set_db_paths(
options: *mut Options, options: *mut Options,
...@@ -1009,14 +1013,9 @@ extern "C" { ...@@ -1009,14 +1013,9 @@ extern "C" {
opt: *mut DBCompactOptions, opt: *mut DBCompactOptions,
v: bool, v: bool,
); );
pub fn crocksdb_compactoptions_set_change_level( pub fn crocksdb_compactoptions_set_change_level(opt: *mut DBCompactOptions, v: bool);
opt: *mut DBCompactOptions, pub fn crocksdb_compactoptions_set_target_level(opt: *mut DBCompactOptions, v: i32);
v: bool, pub fn crocksdb_compactoptions_set_max_subcompactions(opt: *mut DBCompactOptions, v: i32);
);
pub fn crocksdb_compactoptions_set_target_level(
opt: *mut DBCompactOptions,
v: i32,
);
pub fn crocksdb_fifo_compaction_options_create() -> *mut DBFifoCompactionOptions; pub fn crocksdb_fifo_compaction_options_create() -> *mut DBFifoCompactionOptions;
pub fn crocksdb_fifo_compaction_options_set_max_table_files_size( pub fn crocksdb_fifo_compaction_options_set_max_table_files_size(
...@@ -1588,6 +1587,14 @@ extern "C" { ...@@ -1588,6 +1587,14 @@ extern "C" {
pub fn crocksdb_sst_file_meta_data_size(meta: *const DBSstFileMetaData) -> size_t; pub fn crocksdb_sst_file_meta_data_size(meta: *const DBSstFileMetaData) -> size_t;
pub fn crocksdb_sst_file_meta_data_name(meta: *const DBSstFileMetaData) -> *const c_char; pub fn crocksdb_sst_file_meta_data_name(meta: *const DBSstFileMetaData) -> *const c_char;
pub fn crocksdb_sst_file_meta_data_smallestkey(
meta: *const DBSstFileMetaData,
len: *mut size_t,
) -> *const c_char;
pub fn crocksdb_sst_file_meta_data_largestkey(
meta: *const DBSstFileMetaData,
len: *mut size_t,
) -> *const c_char;
pub fn crocksdb_compaction_options_create() -> *mut DBCompactionOptions; pub fn crocksdb_compaction_options_create() -> *mut DBCompactionOptions;
pub fn crocksdb_compaction_options_destroy(opts: *mut DBCompactionOptions); pub fn crocksdb_compaction_options_destroy(opts: *mut DBCompactionOptions);
...@@ -1599,6 +1606,10 @@ extern "C" { ...@@ -1599,6 +1606,10 @@ extern "C" {
opts: *mut DBCompactionOptions, opts: *mut DBCompactionOptions,
size: size_t, size: size_t,
); );
pub fn crocksdb_compaction_options_set_max_subcompactions(
opts: *mut DBCompactionOptions,
v: i32,
);
pub fn crocksdb_compact_files_cf( pub fn crocksdb_compact_files_cf(
db: *mut DBInstance, db: *mut DBInstance,
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
use crocksdb_ffi::{self, DBColumnFamilyMetaData, DBLevelMetaData, DBSstFileMetaData}; use crocksdb_ffi::{self, DBColumnFamilyMetaData, DBLevelMetaData, DBSstFileMetaData};
use std::ffi::CStr; use std::ffi::CStr;
use std::slice;
use libc::size_t;
pub struct ColumnFamilyMetaData { pub struct ColumnFamilyMetaData {
inner: *mut DBColumnFamilyMetaData, inner: *mut DBColumnFamilyMetaData,
...@@ -77,4 +80,20 @@ impl SstFileMetaData { ...@@ -77,4 +80,20 @@ impl SstFileMetaData {
CStr::from_ptr(ptr).to_string_lossy().into_owned() CStr::from_ptr(ptr).to_string_lossy().into_owned()
} }
} }
pub fn get_smallestkey(&self) -> &[u8] {
let mut len: size_t = 0;
unsafe {
let ptr = crocksdb_ffi::crocksdb_sst_file_meta_data_smallestkey(self.inner, &mut len);
slice::from_raw_parts(ptr as *const u8, len)
}
}
pub fn get_largestkey(&self) -> &[u8] {
let mut len: size_t = 0;
unsafe {
let ptr = crocksdb_ffi::crocksdb_sst_file_meta_data_largestkey(self.inner, &mut len);
slice::from_raw_parts(ptr as *const u8, len)
}
}
} }
...@@ -484,6 +484,12 @@ impl CompactOptions { ...@@ -484,6 +484,12 @@ impl CompactOptions {
crocksdb_ffi::crocksdb_compactoptions_set_target_level(self.inner, v); crocksdb_ffi::crocksdb_compactoptions_set_target_level(self.inner, v);
} }
} }
pub fn set_max_subcompactions(&mut self, v: i32) {
unsafe {
crocksdb_ffi::crocksdb_compactoptions_set_max_subcompactions(self.inner, v);
}
}
} }
impl Drop for CompactOptions { impl Drop for CompactOptions {
...@@ -518,6 +524,12 @@ impl CompactionOptions { ...@@ -518,6 +524,12 @@ impl CompactionOptions {
crocksdb_ffi::crocksdb_compaction_options_set_output_file_size_limit(self.inner, size); crocksdb_ffi::crocksdb_compaction_options_set_output_file_size_limit(self.inner, size);
} }
} }
pub fn set_max_subcompactions(&mut self, v: i32) {
unsafe {
crocksdb_ffi::crocksdb_compaction_options_set_max_subcompactions(self.inner, v);
}
}
} }
impl Drop for CompactionOptions { impl Drop for CompactionOptions {
...@@ -1170,6 +1182,12 @@ impl ColumnFamilyOptions { ...@@ -1170,6 +1182,12 @@ impl ColumnFamilyOptions {
} }
} }
pub fn get_soft_pending_compaction_bytes_limit(&self) -> u64 {
unsafe {
crocksdb_ffi::crocksdb_options_get_soft_pending_compaction_bytes_limit(self.inner)
}
}
pub fn set_hard_pending_compaction_bytes_limit(&mut self, size: u64) { pub fn set_hard_pending_compaction_bytes_limit(&mut self, size: u64) {
unsafe { unsafe {
crocksdb_ffi::crocksdb_options_set_hard_pending_compaction_bytes_limit( crocksdb_ffi::crocksdb_options_set_hard_pending_compaction_bytes_limit(
...@@ -1179,6 +1197,12 @@ impl ColumnFamilyOptions { ...@@ -1179,6 +1197,12 @@ impl ColumnFamilyOptions {
} }
} }
pub fn get_hard_pending_compaction_bytes_limit(&self) -> u64 {
unsafe {
crocksdb_ffi::crocksdb_options_get_hard_pending_compaction_bytes_limit(self.inner)
}
}
pub fn set_target_file_size_base(&mut self, size: u64) { pub fn set_target_file_size_base(&mut self, size: u64) {
unsafe { unsafe {
crocksdb_ffi::crocksdb_options_set_target_file_size_base(self.inner, size); crocksdb_ffi::crocksdb_options_set_target_file_size_base(self.inner, size);
...@@ -1210,12 +1234,22 @@ impl ColumnFamilyOptions { ...@@ -1210,12 +1234,22 @@ impl ColumnFamilyOptions {
} }
} }
pub fn get_level_zero_slowdown_writes_trigger(&self) -> u32 {
unsafe {
crocksdb_ffi::crocksdb_options_get_level0_slowdown_writes_trigger(self.inner) as u32
}
}
pub fn set_level_zero_stop_writes_trigger(&mut self, n: c_int) { pub fn set_level_zero_stop_writes_trigger(&mut self, n: c_int) {
unsafe { unsafe {
crocksdb_ffi::crocksdb_options_set_level0_stop_writes_trigger(self.inner, n); crocksdb_ffi::crocksdb_options_set_level0_stop_writes_trigger(self.inner, n);
} }
} }
pub fn get_level_zero_stop_writes_trigger(&self) -> u32 {
unsafe { crocksdb_ffi::crocksdb_options_get_level0_stop_writes_trigger(self.inner) as u32 }
}
pub fn set_compaction_style(&mut self, style: crocksdb_ffi::DBCompactionStyle) { pub fn set_compaction_style(&mut self, style: crocksdb_ffi::DBCompactionStyle) {
unsafe { unsafe {
crocksdb_ffi::crocksdb_options_set_compaction_style(self.inner, style); crocksdb_ffi::crocksdb_options_set_compaction_style(self.inner, style);
......
...@@ -48,6 +48,8 @@ fn test_metadata() { ...@@ -48,6 +48,8 @@ fn test_metadata() {
for f in files { for f in files {
assert!(f.get_size() > 0); assert!(f.get_size() > 0);
assert!(f.get_name().len() > 0); assert!(f.get_name().len() > 0);
assert!(f.get_smallestkey().len() > 0);
assert!(f.get_largestkey().len() > 0);
} }
} }
} }
......
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