Commit 83165e83 authored by Connor's avatar Connor Committed by pingcap-github-bot

add API to set level merge and range merge (#379)

parent c130c13b
...@@ -5254,6 +5254,21 @@ void ctitandb_options_set_disable_background_gc(ctitandb_options_t* options, ...@@ -5254,6 +5254,21 @@ void ctitandb_options_set_disable_background_gc(ctitandb_options_t* options,
options->rep.disable_background_gc = disable; options->rep.disable_background_gc = disable;
} }
void ctitandb_options_set_level_merge(ctitandb_options_t* options,
unsigned char enable) {
options->rep.level_merge = enable;
}
void ctitandb_options_set_range_merge(ctitandb_options_t* options,
unsigned char enable) {
options->rep.range_merge = enable;
}
void ctitandb_options_set_max_sorted_runs(ctitandb_options_t* options,
int size) {
options->rep.max_sorted_runs = size;
}
void ctitandb_options_set_max_gc_batch_size(ctitandb_options_t* options, void ctitandb_options_set_max_gc_batch_size(ctitandb_options_t* options,
uint64_t size) { uint64_t size) {
options->rep.max_gc_batch_size = size; options->rep.max_gc_batch_size = size;
......
...@@ -2095,6 +2095,15 @@ extern C_ROCKSDB_LIBRARY_API void ctitandb_encode_blob_index( ...@@ -2095,6 +2095,15 @@ extern C_ROCKSDB_LIBRARY_API void ctitandb_encode_blob_index(
extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_disable_background_gc( extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_disable_background_gc(
ctitandb_options_t* options, unsigned char disable); ctitandb_options_t* options, unsigned char disable);
extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_level_merge(ctitandb_options_t* options,
unsigned char enable);
extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_range_merge(ctitandb_options_t* options,
unsigned char enable);
extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_max_sorted_runs(ctitandb_options_t* options,
int size);
extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_max_gc_batch_size( extern C_ROCKSDB_LIBRARY_API void ctitandb_options_set_max_gc_batch_size(
ctitandb_options_t* options, uint64_t size); ctitandb_options_t* options, uint64_t size);
......
Subproject commit 8376c989f018f0edb88183d85981e0a530898eeb Subproject commit 96922d49054b921b84003a78b73040a4bbac55dc
...@@ -18,7 +18,7 @@ extern crate libc; ...@@ -18,7 +18,7 @@ extern crate libc;
#[cfg(test)] #[cfg(test)]
extern crate tempdir; extern crate tempdir;
use libc::{c_char, c_double, c_int, c_uchar, c_void, size_t, uint32_t, uint64_t, uint8_t}; use libc::{c_char, c_double, c_int, c_uchar, c_void, size_t};
use std::ffi::CStr; use std::ffi::CStr;
use std::fmt; use std::fmt;
...@@ -513,7 +513,7 @@ extern "C" { ...@@ -513,7 +513,7 @@ extern "C" {
pub fn crocksdb_options_set_max_bytes_for_level_base(options: *mut Options, bytes: u64); pub fn crocksdb_options_set_max_bytes_for_level_base(options: *mut Options, bytes: u64);
pub fn crocksdb_options_set_max_bytes_for_level_multiplier(options: *mut Options, mul: f64); pub fn crocksdb_options_set_max_bytes_for_level_multiplier(options: *mut Options, mul: f64);
pub fn crocksdb_options_get_max_bytes_for_level_multiplier(options: *mut Options) -> f64; pub fn crocksdb_options_get_max_bytes_for_level_multiplier(options: *mut Options) -> f64;
pub fn crocksdb_options_set_max_compaction_bytes(options: *mut Options, bytes: uint64_t); pub fn crocksdb_options_set_max_compaction_bytes(options: *mut Options, bytes: u64);
pub fn crocksdb_options_set_max_log_file_size(options: *mut Options, bytes: size_t); pub fn crocksdb_options_set_max_log_file_size(options: *mut Options, bytes: size_t);
pub fn crocksdb_options_set_log_file_time_to_roll(options: *mut Options, bytes: size_t); pub fn crocksdb_options_set_log_file_time_to_roll(options: *mut Options, bytes: size_t);
pub fn crocksdb_options_set_info_log_level(options: *mut Options, level: DBInfoLogLevel); pub fn crocksdb_options_set_info_log_level(options: *mut Options, level: DBInfoLogLevel);
...@@ -748,7 +748,7 @@ extern "C" { ...@@ -748,7 +748,7 @@ extern "C" {
pub fn crocksdb_readoptions_set_readahead_size(readopts: *mut DBReadOptions, size: size_t); pub fn crocksdb_readoptions_set_readahead_size(readopts: *mut DBReadOptions, size: size_t);
pub fn crocksdb_readoptions_set_max_skippable_internal_keys( pub fn crocksdb_readoptions_set_max_skippable_internal_keys(
readopts: *mut DBReadOptions, readopts: *mut DBReadOptions,
n: uint64_t, n: u64,
); );
pub fn crocksdb_readoptions_set_total_order_seek(readopts: *mut DBReadOptions, v: bool); pub fn crocksdb_readoptions_set_total_order_seek(readopts: *mut DBReadOptions, v: bool);
pub fn crocksdb_readoptions_set_prefix_same_as_start(readopts: *mut DBReadOptions, v: bool); pub fn crocksdb_readoptions_set_prefix_same_as_start(readopts: *mut DBReadOptions, v: bool);
...@@ -1097,7 +1097,7 @@ extern "C" { ...@@ -1097,7 +1097,7 @@ extern "C" {
range_start_key_len: *const size_t, range_start_key_len: *const size_t,
range_limit_key: *const *const u8, range_limit_key: *const *const u8,
range_limit_key_len: *const size_t, range_limit_key_len: *const size_t,
sizes: *mut uint64_t, sizes: *mut u64,
); );
pub fn crocksdb_approximate_sizes_cf( pub fn crocksdb_approximate_sizes_cf(
db: *mut DBInstance, db: *mut DBInstance,
...@@ -1107,7 +1107,7 @@ extern "C" { ...@@ -1107,7 +1107,7 @@ extern "C" {
range_start_key_len: *const size_t, range_start_key_len: *const size_t,
range_limit_key: *const *const u8, range_limit_key: *const *const u8,
range_limit_key_len: *const size_t, range_limit_key_len: *const size_t,
sizes: *mut uint64_t, sizes: *mut u64,
); );
pub fn crocksdb_approximate_memtable_stats( pub fn crocksdb_approximate_memtable_stats(
db: *const DBInstance, db: *const DBInstance,
...@@ -1115,8 +1115,8 @@ extern "C" { ...@@ -1115,8 +1115,8 @@ extern "C" {
range_start_key_len: size_t, range_start_key_len: size_t,
range_limit_key: *const u8, range_limit_key: *const u8,
range_limit_key_len: size_t, range_limit_key_len: size_t,
count: *mut uint64_t, count: *mut u64,
size: *mut uint64_t, size: *mut u64,
); );
pub fn crocksdb_approximate_memtable_stats_cf( pub fn crocksdb_approximate_memtable_stats_cf(
db: *const DBInstance, db: *const DBInstance,
...@@ -1125,8 +1125,8 @@ extern "C" { ...@@ -1125,8 +1125,8 @@ extern "C" {
range_start_key_len: size_t, range_start_key_len: size_t,
range_limit_key: *const u8, range_limit_key: *const u8,
range_limit_key_len: size_t, range_limit_key_len: size_t,
count: *mut uint64_t, count: *mut u64,
size: *mut uint64_t, size: *mut u64,
); );
pub fn crocksdb_compactoptions_create() -> *mut DBCompactOptions; pub fn crocksdb_compactoptions_create() -> *mut DBCompactOptions;
pub fn crocksdb_compactoptions_destroy(opt: *mut DBCompactOptions); pub fn crocksdb_compactoptions_destroy(opt: *mut DBCompactOptions);
...@@ -1145,7 +1145,7 @@ extern "C" { ...@@ -1145,7 +1145,7 @@ extern "C" {
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(
fifo_opts: *mut DBFifoCompactionOptions, fifo_opts: *mut DBFifoCompactionOptions,
size: uint64_t, size: u64,
); );
pub fn crocksdb_fifo_compaction_options_set_allow_compaction( pub fn crocksdb_fifo_compaction_options_set_allow_compaction(
fifo_opts: *mut DBFifoCompactionOptions, fifo_opts: *mut DBFifoCompactionOptions,
...@@ -1199,9 +1199,9 @@ extern "C" { ...@@ -1199,9 +1199,9 @@ extern "C" {
pub fn crocksdb_delete_files_in_ranges_cf( pub fn crocksdb_delete_files_in_ranges_cf(
db: *mut DBInstance, db: *mut DBInstance,
cf: *mut DBCFHandle, cf: *mut DBCFHandle,
start_keys: *const *const uint8_t, start_keys: *const *const u8,
start_keys_lens: *const size_t, start_keys_lens: *const size_t,
limit_keys: *const *const uint8_t, limit_keys: *const *const u8,
limit_keys_lens: *const size_t, limit_keys_lens: *const size_t,
num_ranges: size_t, num_ranges: size_t,
include_end: bool, include_end: bool,
...@@ -1224,7 +1224,7 @@ extern "C" { ...@@ -1224,7 +1224,7 @@ extern "C" {
pub fn crocksdb_map_property_int_value( pub fn crocksdb_map_property_int_value(
info: *const DBMapProperty, info: *const DBMapProperty,
propname: *const c_char, propname: *const c_char,
) -> uint64_t; ) -> u64;
pub fn crocksdb_property_value(db: *mut DBInstance, propname: *const c_char) -> *mut c_char; pub fn crocksdb_property_value(db: *mut DBInstance, propname: *const c_char) -> *mut c_char;
pub fn crocksdb_property_value_cf( pub fn crocksdb_property_value_cf(
...@@ -1388,7 +1388,7 @@ extern "C" { ...@@ -1388,7 +1388,7 @@ extern "C" {
info: *mut ExternalSstFileInfo, info: *mut ExternalSstFileInfo,
err: *mut *mut c_char, err: *mut *mut c_char,
); );
pub fn crocksdb_sstfilewriter_file_size(writer: *mut SstFileWriter) -> uint64_t; pub fn crocksdb_sstfilewriter_file_size(writer: *mut SstFileWriter) -> u64;
pub fn crocksdb_sstfilewriter_destroy(writer: *mut SstFileWriter); pub fn crocksdb_sstfilewriter_destroy(writer: *mut SstFileWriter);
// ExternalSstFileInfo // ExternalSstFileInfo
...@@ -1397,19 +1397,18 @@ extern "C" { ...@@ -1397,19 +1397,18 @@ extern "C" {
pub fn crocksdb_externalsstfileinfo_file_path( pub fn crocksdb_externalsstfileinfo_file_path(
info: *mut ExternalSstFileInfo, info: *mut ExternalSstFileInfo,
size: *mut size_t, size: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_externalsstfileinfo_smallest_key( pub fn crocksdb_externalsstfileinfo_smallest_key(
info: *mut ExternalSstFileInfo, info: *mut ExternalSstFileInfo,
size: *mut size_t, size: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_externalsstfileinfo_largest_key( pub fn crocksdb_externalsstfileinfo_largest_key(
info: *mut ExternalSstFileInfo, info: *mut ExternalSstFileInfo,
size: *mut size_t, size: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_externalsstfileinfo_sequence_number(info: *mut ExternalSstFileInfo) pub fn crocksdb_externalsstfileinfo_sequence_number(info: *mut ExternalSstFileInfo) -> u64;
-> uint64_t; pub fn crocksdb_externalsstfileinfo_file_size(info: *mut ExternalSstFileInfo) -> u64;
pub fn crocksdb_externalsstfileinfo_file_size(info: *mut ExternalSstFileInfo) -> uint64_t; pub fn crocksdb_externalsstfileinfo_num_entries(info: *mut ExternalSstFileInfo) -> u64;
pub fn crocksdb_externalsstfileinfo_num_entries(info: *mut ExternalSstFileInfo) -> uint64_t;
pub fn crocksdb_ingest_external_file( pub fn crocksdb_ingest_external_file(
db: *mut DBInstance, db: *mut DBInstance,
...@@ -1502,9 +1501,9 @@ extern "C" { ...@@ -1502,9 +1501,9 @@ extern "C" {
pub fn crocksdb_user_collected_properties_add( pub fn crocksdb_user_collected_properties_add(
props: *mut DBUserCollectedProperties, props: *mut DBUserCollectedProperties,
key: *const uint8_t, key: *const u8,
key_len: size_t, key_len: size_t,
value: *const uint8_t, value: *const u8,
value_len: size_t, value_len: size_t,
); );
...@@ -1525,23 +1524,23 @@ extern "C" { ...@@ -1525,23 +1524,23 @@ extern "C" {
pub fn crocksdb_user_collected_properties_iter_key( pub fn crocksdb_user_collected_properties_iter_key(
it: *const DBUserCollectedPropertiesIterator, it: *const DBUserCollectedPropertiesIterator,
klen: *mut size_t, klen: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_user_collected_properties_iter_value( pub fn crocksdb_user_collected_properties_iter_value(
it: *const DBUserCollectedPropertiesIterator, it: *const DBUserCollectedPropertiesIterator,
vlen: *mut size_t, vlen: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_table_properties_get_u64( pub fn crocksdb_table_properties_get_u64(
props: *const DBTableProperties, props: *const DBTableProperties,
prop: DBTableProperty, prop: DBTableProperty,
) -> uint64_t; ) -> u64;
pub fn crocksdb_table_properties_get_str( pub fn crocksdb_table_properties_get_str(
props: *const DBTableProperties, props: *const DBTableProperties,
prop: DBTableProperty, prop: DBTableProperty,
slen: *mut size_t, slen: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_table_properties_get_user_properties( pub fn crocksdb_table_properties_get_user_properties(
props: *const DBTableProperties, props: *const DBTableProperties,
...@@ -1549,10 +1548,10 @@ extern "C" { ...@@ -1549,10 +1548,10 @@ extern "C" {
pub fn crocksdb_user_collected_properties_get( pub fn crocksdb_user_collected_properties_get(
props: *const DBUserCollectedProperties, props: *const DBUserCollectedProperties,
key: *const uint8_t, key: *const u8,
klen: size_t, klen: size_t,
vlen: *mut size_t, vlen: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_user_collected_properties_len( pub fn crocksdb_user_collected_properties_len(
props: *const DBUserCollectedProperties, props: *const DBUserCollectedProperties,
...@@ -1583,7 +1582,7 @@ extern "C" { ...@@ -1583,7 +1582,7 @@ extern "C" {
pub fn crocksdb_table_properties_collection_iter_key( pub fn crocksdb_table_properties_collection_iter_key(
it: *const DBTablePropertiesCollectionIterator, it: *const DBTablePropertiesCollectionIterator,
klen: *mut size_t, klen: *mut size_t,
) -> *const uint8_t; ) -> *const u8;
pub fn crocksdb_table_properties_collection_iter_value( pub fn crocksdb_table_properties_collection_iter_value(
it: *const DBTablePropertiesCollectionIterator, it: *const DBTablePropertiesCollectionIterator,
...@@ -1595,13 +1594,13 @@ extern "C" { ...@@ -1595,13 +1594,13 @@ extern "C" {
destruct: extern "C" fn(*mut c_void), destruct: extern "C" fn(*mut c_void),
add_userkey: extern "C" fn( add_userkey: extern "C" fn(
*mut c_void, *mut c_void,
*const uint8_t, *const u8,
size_t, size_t,
*const uint8_t, *const u8,
size_t, size_t,
c_int, c_int,
uint64_t, u64,
uint64_t, u64,
), ),
finish: extern "C" fn(*mut c_void, *mut DBUserCollectedProperties), finish: extern "C" fn(*mut c_void, *mut DBUserCollectedProperties),
) -> *mut DBTablePropertiesCollector; ) -> *mut DBTablePropertiesCollector;
...@@ -1614,7 +1613,7 @@ extern "C" { ...@@ -1614,7 +1613,7 @@ extern "C" {
destruct: extern "C" fn(*mut c_void), destruct: extern "C" fn(*mut c_void),
create_table_properties_collector: extern "C" fn( create_table_properties_collector: extern "C" fn(
*mut c_void, *mut c_void,
uint32_t, u32,
) )
-> *mut DBTablePropertiesCollector, -> *mut DBTablePropertiesCollector,
) -> *mut DBTablePropertiesCollectorFactory; ) -> *mut DBTablePropertiesCollectorFactory;
...@@ -1643,9 +1642,9 @@ extern "C" { ...@@ -1643,9 +1642,9 @@ extern "C" {
db: *mut DBInstance, db: *mut DBInstance,
cf: *mut DBCFHandle, cf: *mut DBCFHandle,
num_ranges: c_int, num_ranges: c_int,
start_keys: *const *const uint8_t, start_keys: *const *const u8,
start_keys_lens: *const size_t, start_keys_lens: *const size_t,
limit_keys: *const *const uint8_t, limit_keys: *const *const u8,
limit_keys_lens: *const size_t, limit_keys_lens: *const size_t,
errptr: *mut *mut c_char, errptr: *mut *mut c_char,
) -> *mut DBTablePropertiesCollection; ) -> *mut DBTablePropertiesCollection;
...@@ -1690,19 +1689,13 @@ extern "C" { ...@@ -1690,19 +1689,13 @@ extern "C" {
pub fn crocksdb_compactionjobinfo_table_properties( pub fn crocksdb_compactionjobinfo_table_properties(
info: *const DBCompactionJobInfo, info: *const DBCompactionJobInfo,
) -> *const DBTablePropertiesCollection; ) -> *const DBTablePropertiesCollection;
pub fn crocksdb_compactionjobinfo_elapsed_micros(info: *const DBCompactionJobInfo) -> uint64_t; pub fn crocksdb_compactionjobinfo_elapsed_micros(info: *const DBCompactionJobInfo) -> u64;
pub fn crocksdb_compactionjobinfo_num_corrupt_keys( pub fn crocksdb_compactionjobinfo_num_corrupt_keys(info: *const DBCompactionJobInfo) -> u64;
info: *const DBCompactionJobInfo,
) -> uint64_t;
pub fn crocksdb_compactionjobinfo_output_level(info: *const DBCompactionJobInfo) -> c_int; pub fn crocksdb_compactionjobinfo_output_level(info: *const DBCompactionJobInfo) -> c_int;
pub fn crocksdb_compactionjobinfo_input_records(info: *const DBCompactionJobInfo) -> uint64_t; pub fn crocksdb_compactionjobinfo_input_records(info: *const DBCompactionJobInfo) -> u64;
pub fn crocksdb_compactionjobinfo_output_records(info: *const DBCompactionJobInfo) -> uint64_t; pub fn crocksdb_compactionjobinfo_output_records(info: *const DBCompactionJobInfo) -> u64;
pub fn crocksdb_compactionjobinfo_total_input_bytes( pub fn crocksdb_compactionjobinfo_total_input_bytes(info: *const DBCompactionJobInfo) -> u64;
info: *const DBCompactionJobInfo, pub fn crocksdb_compactionjobinfo_total_output_bytes(info: *const DBCompactionJobInfo) -> u64;
) -> uint64_t;
pub fn crocksdb_compactionjobinfo_total_output_bytes(
info: *const DBCompactionJobInfo,
) -> uint64_t;
pub fn crocksdb_compactionjobinfo_compaction_reason( pub fn crocksdb_compactionjobinfo_compaction_reason(
info: *const DBCompactionJobInfo, info: *const DBCompactionJobInfo,
) -> CompactionReason; ) -> CompactionReason;
...@@ -1758,7 +1751,7 @@ extern "C" { ...@@ -1758,7 +1751,7 @@ extern "C" {
pub fn crocksdb_keyversions_value(kvs: *mut DBKeyVersions, index: usize) -> *const c_char; pub fn crocksdb_keyversions_value(kvs: *mut DBKeyVersions, index: usize) -> *const c_char;
pub fn crocksdb_keyversions_seq(kvs: *mut DBKeyVersions, index: usize) -> uint64_t; pub fn crocksdb_keyversions_seq(kvs: *mut DBKeyVersions, index: usize) -> u64;
pub fn crocksdb_keyversions_type(kvs: *mut DBKeyVersions, index: usize) -> c_int; pub fn crocksdb_keyversions_type(kvs: *mut DBKeyVersions, index: usize) -> c_int;
...@@ -1971,6 +1964,9 @@ extern "C" { ...@@ -1971,6 +1964,9 @@ extern "C" {
); );
pub fn ctitandb_options_set_disable_background_gc(opts: *mut DBTitanDBOptions, disable: bool); pub fn ctitandb_options_set_disable_background_gc(opts: *mut DBTitanDBOptions, disable: bool);
pub fn ctitandb_options_set_level_merge(opts: *mut DBTitanDBOptions, enable: bool);
pub fn ctitandb_options_set_range_merge(opts: *mut DBTitanDBOptions, enable: bool);
pub fn ctitandb_options_set_max_sorted_runs(opts: *mut DBTitanDBOptions, size: i32);
pub fn ctitandb_options_set_max_background_gc(opts: *mut DBTitanDBOptions, size: i32); pub fn ctitandb_options_set_max_background_gc(opts: *mut DBTitanDBOptions, size: i32);
pub fn ctitandb_options_set_purge_obsolete_files_period_sec( pub fn ctitandb_options_set_purge_obsolete_files_period_sec(
opts: *mut DBTitanDBOptions, opts: *mut DBTitanDBOptions,
...@@ -2030,9 +2026,9 @@ extern "C" { ...@@ -2030,9 +2026,9 @@ extern "C" {
pub fn ctitandb_delete_files_in_ranges_cf( pub fn ctitandb_delete_files_in_ranges_cf(
db: *mut DBInstance, db: *mut DBInstance,
cf: *mut DBCFHandle, cf: *mut DBCFHandle,
start_keys: *const *const uint8_t, start_keys: *const *const u8,
start_keys_lens: *const size_t, start_keys_lens: *const size_t,
limit_keys: *const *const uint8_t, limit_keys: *const *const u8,
limit_keys_lens: *const size_t, limit_keys_lens: *const size_t,
num_ranges: size_t, num_ranges: size_t,
include_end: bool, include_end: bool,
......
...@@ -3196,7 +3196,7 @@ mod test { ...@@ -3196,7 +3196,7 @@ mod test {
let mut opts = DBOptions::new(); let mut opts = DBOptions::new();
opts.create_if_missing(true); opts.create_if_missing(true);
let mut db = DB::open(opts, dbpath).unwrap(); let db = DB::open(opts, dbpath).unwrap();
let cf_handle = db.cf_handle("default").unwrap(); let cf_handle = db.cf_handle("default").unwrap();
let mp = db.get_map_property_cf(cf_handle, "rocksdb.cfstats"); let mp = db.get_map_property_cf(cf_handle, "rocksdb.cfstats");
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
// limitations under the License. // limitations under the License.
use crocksdb_ffi::{self, DBEntryType, DBTablePropertiesCollector, DBUserCollectedProperties}; use crocksdb_ffi::{self, DBEntryType, DBTablePropertiesCollector, DBUserCollectedProperties};
use libc::{c_char, c_int, c_void, size_t, uint64_t, uint8_t}; use libc::{c_char, c_int, c_void, size_t};
use std::collections::HashMap; use std::collections::HashMap;
use std::ffi::CString; use std::ffi::CString;
use std::mem; use std::mem;
...@@ -62,13 +62,13 @@ extern "C" fn destruct(handle: *mut c_void) { ...@@ -62,13 +62,13 @@ extern "C" fn destruct(handle: *mut c_void) {
pub extern "C" fn add( pub extern "C" fn add(
handle: *mut c_void, handle: *mut c_void,
key: *const uint8_t, key: *const u8,
key_len: size_t, key_len: size_t,
value: *const uint8_t, value: *const u8,
value_len: size_t, value_len: size_t,
entry_type: c_int, entry_type: c_int,
seq: uint64_t, seq: u64,
file_size: uint64_t, file_size: u64,
) { ) {
unsafe { unsafe {
let handle = &mut *(handle as *mut TablePropertiesCollectorHandle); let handle = &mut *(handle as *mut TablePropertiesCollectorHandle);
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
// limitations under the License. // limitations under the License.
use crocksdb_ffi::{self, DBTablePropertiesCollector, DBTablePropertiesCollectorFactory}; use crocksdb_ffi::{self, DBTablePropertiesCollector, DBTablePropertiesCollectorFactory};
use libc::{c_char, c_void, uint32_t}; use libc::{c_char, c_void};
use std::ffi::CString; use std::ffi::CString;
use table_properties_collector::{new_table_properties_collector, TablePropertiesCollector}; use table_properties_collector::{new_table_properties_collector, TablePropertiesCollector};
...@@ -55,7 +55,7 @@ extern "C" fn destruct(handle: *mut c_void) { ...@@ -55,7 +55,7 @@ extern "C" fn destruct(handle: *mut c_void) {
extern "C" fn create_table_properties_collector( extern "C" fn create_table_properties_collector(
handle: *mut c_void, handle: *mut c_void,
cf: uint32_t, cf: u32,
) -> *mut DBTablePropertiesCollector { ) -> *mut DBTablePropertiesCollector {
unsafe { unsafe {
let handle = &mut *(handle as *mut TablePropertiesCollectorFactoryHandle); let handle = &mut *(handle as *mut TablePropertiesCollectorFactoryHandle);
......
...@@ -64,6 +64,24 @@ impl TitanDBOptions { ...@@ -64,6 +64,24 @@ impl TitanDBOptions {
} }
} }
pub fn set_level_merge(&mut self, enable: bool) {
unsafe {
crocksdb_ffi::ctitandb_options_set_level_merge(self.inner, enable);
}
}
pub fn set_range_merge(&mut self, enable: bool) {
unsafe {
crocksdb_ffi::ctitandb_options_set_range_merge(self.inner, enable);
}
}
pub fn set_max_sorted_runs(&mut self, size: i32) {
unsafe {
crocksdb_ffi::ctitandb_options_set_max_sorted_runs(self.inner, size);
}
}
pub fn set_max_background_gc(&mut self, size: i32) { pub fn set_max_background_gc(&mut self, size: i32) {
unsafe { unsafe {
crocksdb_ffi::ctitandb_options_set_max_background_gc(self.inner, size); crocksdb_ffi::ctitandb_options_set_max_background_gc(self.inner, size);
......
...@@ -150,7 +150,7 @@ fn test_provided_merge( ...@@ -150,7 +150,7 @@ fn test_provided_merge(
#[test] #[test]
pub fn test_column_family_option_use_doubly_skiplist() { pub fn test_column_family_option_use_doubly_skiplist() {
let mut cf_opts = ColumnFamilyOptions::new(); let cf_opts = ColumnFamilyOptions::new();
let memtable_name = cf_opts.get_memtable_factory_name(); let memtable_name = cf_opts.get_memtable_factory_name();
assert!(memtable_name.is_some()); assert!(memtable_name.is_some());
assert_eq!("SkipListFactory", memtable_name.unwrap()); assert_eq!("SkipListFactory", memtable_name.unwrap());
......
...@@ -111,6 +111,9 @@ fn test_titandb() { ...@@ -111,6 +111,9 @@ fn test_titandb() {
tdb_opts.set_blob_file_compression(DBCompressionType::No); tdb_opts.set_blob_file_compression(DBCompressionType::No);
tdb_opts.set_disable_background_gc(true); tdb_opts.set_disable_background_gc(true);
tdb_opts.set_purge_obsolete_files_period(10); tdb_opts.set_purge_obsolete_files_period(10);
tdb_opts.set_level_merge(false);
tdb_opts.set_range_merge(false);
tdb_opts.set_max_sorted_runs(20);
let mut opts = DBOptions::new(); let mut opts = DBOptions::new();
opts.create_if_missing(true); opts.create_if_missing(true);
......
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