C bindings: add a bunch of the newer options
This commit is contained in:
parent
417b453fa6
commit
2a2506b629
151
db/c.cc
151
db/c.cc
@ -20,6 +20,8 @@
|
|||||||
#include "rocksdb/options.h"
|
#include "rocksdb/options.h"
|
||||||
#include "rocksdb/status.h"
|
#include "rocksdb/status.h"
|
||||||
#include "rocksdb/write_batch.h"
|
#include "rocksdb/write_batch.h"
|
||||||
|
#include "rocksdb/memtablerep.h"
|
||||||
|
#include "rocksdb/universal_compaction.h"
|
||||||
|
|
||||||
using rocksdb::Cache;
|
using rocksdb::Cache;
|
||||||
using rocksdb::Comparator;
|
using rocksdb::Comparator;
|
||||||
@ -134,6 +136,11 @@ struct rocksdb_env_t {
|
|||||||
bool is_default;
|
bool is_default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct rocksdb_universal_compaction_options_t {
|
||||||
|
rocksdb::CompactionOptionsUniversal *rep;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static bool SaveError(char** errptr, const Status& s) {
|
static bool SaveError(char** errptr, const Status& s) {
|
||||||
assert(errptr != NULL);
|
assert(errptr != NULL);
|
||||||
if (s.ok()) {
|
if (s.ok()) {
|
||||||
@ -531,12 +538,12 @@ void rocksdb_options_set_compression_options(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void rocksdb_options_set_disable_data_sync(
|
void rocksdb_options_set_disable_data_sync(
|
||||||
rocksdb_options_t* opt, bool disable_data_sync) {
|
rocksdb_options_t* opt, int disable_data_sync) {
|
||||||
opt->rep.disableDataSync = disable_data_sync;
|
opt->rep.disableDataSync = disable_data_sync;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rocksdb_options_set_use_fsync(
|
void rocksdb_options_set_use_fsync(
|
||||||
rocksdb_options_t* opt, bool use_fsync) {
|
rocksdb_options_t* opt, int use_fsync) {
|
||||||
opt->rep.use_fsync = use_fsync;
|
opt->rep.use_fsync = use_fsync;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -559,6 +566,95 @@ void rocksdb_options_set_WAL_size_limit_MB(
|
|||||||
opt->rep.WAL_size_limit_MB = limit;
|
opt->rep.WAL_size_limit_MB = limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_max_write_buffer_number(rocksdb_options_t* opt, int n) {
|
||||||
|
opt->rep.max_write_buffer_number = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_min_write_buffer_number_to_merge(rocksdb_options_t* opt, int n) {
|
||||||
|
opt->rep.min_write_buffer_number_to_merge = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_max_background_compactions(rocksdb_options_t* opt, int n) {
|
||||||
|
opt->rep.max_background_compactions = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_max_background_flushes(rocksdb_options_t* opt, int n) {
|
||||||
|
opt->rep.max_background_flushes = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_disable_auto_compactions(rocksdb_options_t* opt, int disable) {
|
||||||
|
opt->rep.disable_auto_compactions = disable;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_disable_seek_compaction(rocksdb_options_t* opt, int disable) {
|
||||||
|
opt->rep.disable_seek_compaction = disable;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_source_compaction_factor(
|
||||||
|
rocksdb_options_t* opt, int n) {
|
||||||
|
opt->rep.expanded_compaction_factor = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_prepare_for_bulk_load(rocksdb_options_t* opt) {
|
||||||
|
opt->rep.PrepareForBulkLoad();
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_memtable_vector_rep(rocksdb_options_t *opt) {
|
||||||
|
static rocksdb::VectorRepFactory* factory = 0;
|
||||||
|
if (!factory) {
|
||||||
|
factory = new rocksdb::VectorRepFactory;
|
||||||
|
}
|
||||||
|
opt->rep.memtable_factory.reset(factory);
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_compaction_style(rocksdb_options_t *opt, int style) {
|
||||||
|
opt->rep.compaction_style = static_cast<rocksdb::CompactionStyle>(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_options_set_universal_compaction_options(rocksdb_options_t *opt, rocksdb_universal_compaction_options_t *uco) {
|
||||||
|
opt->rep.compaction_options_universal = *(uco->rep);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO:
|
||||||
|
merge_operator
|
||||||
|
compaction_filter
|
||||||
|
prefix_extractor
|
||||||
|
whole_key_filtering
|
||||||
|
max_bytes_for_level_multiplier_additional
|
||||||
|
delete_obsolete_files_period_micros
|
||||||
|
max_log_file_size
|
||||||
|
log_file_time_to_roll
|
||||||
|
keep_log_file_num
|
||||||
|
soft_rate_limit
|
||||||
|
hard_rate_limit
|
||||||
|
rate_limit_delay_max_milliseconds
|
||||||
|
max_manifest_file_size
|
||||||
|
no_block_cache
|
||||||
|
table_cache_numshardbits
|
||||||
|
table_cache_remove_scan_count_limit
|
||||||
|
arena_block_size
|
||||||
|
manifest_preallocation_size
|
||||||
|
purge_redundant_kvs_while_flush
|
||||||
|
allow_os_buffer
|
||||||
|
allow_mmap_reads
|
||||||
|
allow_mmap_writes
|
||||||
|
is_fd_close_on_exec
|
||||||
|
skip_log_error_on_recovery
|
||||||
|
stats_dump_period_sec
|
||||||
|
block_size_deviation
|
||||||
|
advise_random_on_open
|
||||||
|
access_hint_on_compaction_start
|
||||||
|
use_adaptive_mutex
|
||||||
|
bytes_per_sync
|
||||||
|
filter_deletes
|
||||||
|
max_sequential_skip_in_iterations
|
||||||
|
table_factory
|
||||||
|
table_properties_collectors
|
||||||
|
inplace_update_support
|
||||||
|
inplace_update_num_locks
|
||||||
|
*/
|
||||||
|
|
||||||
rocksdb_comparator_t* rocksdb_comparator_create(
|
rocksdb_comparator_t* rocksdb_comparator_create(
|
||||||
void* state,
|
void* state,
|
||||||
void (*destructor)(void*),
|
void (*destructor)(void*),
|
||||||
@ -666,6 +762,11 @@ void rocksdb_writeoptions_set_sync(
|
|||||||
opt->rep.sync = v;
|
opt->rep.sync = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rocksdb_writeoptions_disable_WAL(rocksdb_writeoptions_t* opt, int disable) {
|
||||||
|
opt->rep.disableWAL = disable;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
rocksdb_cache_t* rocksdb_cache_create_lru(size_t capacity) {
|
rocksdb_cache_t* rocksdb_cache_create_lru(size_t capacity) {
|
||||||
rocksdb_cache_t* c = new rocksdb_cache_t;
|
rocksdb_cache_t* c = new rocksdb_cache_t;
|
||||||
c->rep = NewLRUCache(capacity);
|
c->rep = NewLRUCache(capacity);
|
||||||
@ -683,9 +784,55 @@ rocksdb_env_t* rocksdb_create_default_env() {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rocksdb_env_set_background_threads(rocksdb_env_t* env, int n) {
|
||||||
|
env->rep->SetBackgroundThreads(n);
|
||||||
|
}
|
||||||
|
|
||||||
void rocksdb_env_destroy(rocksdb_env_t* env) {
|
void rocksdb_env_destroy(rocksdb_env_t* env) {
|
||||||
if (!env->is_default) delete env->rep;
|
if (!env->is_default) delete env->rep;
|
||||||
delete env;
|
delete env;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rocksdb_universal_compaction_options_t* rocksdb_universal_compaction_options_create() {
|
||||||
|
rocksdb_universal_compaction_options_t* result = new rocksdb_universal_compaction_options_t;
|
||||||
|
result->rep = new rocksdb::CompactionOptionsUniversal;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_set_size_ratio(
|
||||||
|
rocksdb_universal_compaction_options_t* uco, int ratio) {
|
||||||
|
uco->rep->size_ratio = ratio;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_set_min_merge_width(
|
||||||
|
rocksdb_universal_compaction_options_t* uco, int w) {
|
||||||
|
uco->rep->min_merge_width = w;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_set_max_merge_width(
|
||||||
|
rocksdb_universal_compaction_options_t* uco, int w) {
|
||||||
|
uco->rep->max_merge_width = w;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_set_max_size_amplification_percent(
|
||||||
|
rocksdb_universal_compaction_options_t* uco, int p) {
|
||||||
|
uco->rep->max_size_amplification_percent = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_set_compression_size_percent(
|
||||||
|
rocksdb_universal_compaction_options_t* uco, int p) {
|
||||||
|
uco->rep->compression_size_percent = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_set_stop_style(
|
||||||
|
rocksdb_universal_compaction_options_t* uco, int style) {
|
||||||
|
uco->rep->stop_style = static_cast<rocksdb::CompactionStopStyle>(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
void rocksdb_universal_compaction_options_destroy(
|
||||||
|
rocksdb_universal_compaction_options_t* uco) {
|
||||||
|
delete uco->rep;
|
||||||
|
delete uco;
|
||||||
|
}
|
||||||
|
|
||||||
} // end extern "C"
|
} // end extern "C"
|
||||||
|
@ -70,6 +70,7 @@ typedef struct rocksdb_snapshot_t rocksdb_snapshot_t;
|
|||||||
typedef struct rocksdb_writablefile_t rocksdb_writablefile_t;
|
typedef struct rocksdb_writablefile_t rocksdb_writablefile_t;
|
||||||
typedef struct rocksdb_writebatch_t rocksdb_writebatch_t;
|
typedef struct rocksdb_writebatch_t rocksdb_writebatch_t;
|
||||||
typedef struct rocksdb_writeoptions_t rocksdb_writeoptions_t;
|
typedef struct rocksdb_writeoptions_t rocksdb_writeoptions_t;
|
||||||
|
typedef struct rocksdb_universal_compaction_options_t rocksdb_universal_compaction_options_t;
|
||||||
|
|
||||||
/* DB operations */
|
/* DB operations */
|
||||||
|
|
||||||
@ -208,14 +209,46 @@ extern void rocksdb_options_set_cache(rocksdb_options_t*, rocksdb_cache_t*);
|
|||||||
extern void rocksdb_options_set_block_size(rocksdb_options_t*, size_t);
|
extern void rocksdb_options_set_block_size(rocksdb_options_t*, size_t);
|
||||||
extern void rocksdb_options_set_block_restart_interval(rocksdb_options_t*, int);
|
extern void rocksdb_options_set_block_restart_interval(rocksdb_options_t*, int);
|
||||||
extern void rocksdb_options_set_compression_options(
|
extern void rocksdb_options_set_compression_options(
|
||||||
rocksdb_options_t* opt, int w_bits, int level, int strategy);
|
rocksdb_options_t*, int, int, int);
|
||||||
|
extern void rocksdb_options_set_num_levels(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_level0_file_num_compaction_trigger(
|
||||||
|
rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_level0_slowdown_writes_trigger(
|
||||||
|
rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_level0_stop_writes_trigger(
|
||||||
|
rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_target_file_size_base(
|
||||||
|
rocksdb_options_t*, uint64_t);
|
||||||
|
extern void rocksdb_options_set_target_file_size_multiplier(
|
||||||
|
rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_max_write_buffer_number(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_min_write_buffer_number_to_merge(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_max_background_compactions(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_max_background_flushes(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_use_fsync(
|
||||||
|
rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_disable_data_sync(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_disable_auto_compactions(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_disable_seek_compaction(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_source_compaction_factor(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_prepare_for_bulk_load(rocksdb_options_t*);
|
||||||
|
extern void rocksdb_options_set_memtable_vector_rep(rocksdb_options_t*);
|
||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
rocksdb_no_compression = 0,
|
rocksdb_no_compression = 0,
|
||||||
rocksdb_snappy_compression = 1
|
rocksdb_snappy_compression = 1,
|
||||||
|
rocksdb_zlib_compression = 1,
|
||||||
|
rocksdb_bz2_compression = 1
|
||||||
};
|
};
|
||||||
extern void rocksdb_options_set_compression(rocksdb_options_t*, int);
|
extern void rocksdb_options_set_compression(rocksdb_options_t*, int);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
rocksdb_level_compaction = 0,
|
||||||
|
rocksdb_universal_compaction = 1
|
||||||
|
};
|
||||||
|
extern void rocksdb_options_set_compaction_style(rocksdb_options_t*, int);
|
||||||
|
extern void rocksdb_options_set_universal_compaction_options(rocksdb_options_t*, rocksdb_universal_compaction_options_t*);
|
||||||
/* Comparator */
|
/* Comparator */
|
||||||
|
|
||||||
extern rocksdb_comparator_t* rocksdb_comparator_create(
|
extern rocksdb_comparator_t* rocksdb_comparator_create(
|
||||||
@ -267,6 +300,7 @@ extern rocksdb_writeoptions_t* rocksdb_writeoptions_create();
|
|||||||
extern void rocksdb_writeoptions_destroy(rocksdb_writeoptions_t*);
|
extern void rocksdb_writeoptions_destroy(rocksdb_writeoptions_t*);
|
||||||
extern void rocksdb_writeoptions_set_sync(
|
extern void rocksdb_writeoptions_set_sync(
|
||||||
rocksdb_writeoptions_t*, unsigned char);
|
rocksdb_writeoptions_t*, unsigned char);
|
||||||
|
extern void rocksdb_writeoptions_disable_WAL(rocksdb_writeoptions_t* opt, int disable);
|
||||||
|
|
||||||
/* Cache */
|
/* Cache */
|
||||||
|
|
||||||
@ -276,8 +310,32 @@ extern void rocksdb_cache_destroy(rocksdb_cache_t* cache);
|
|||||||
/* Env */
|
/* Env */
|
||||||
|
|
||||||
extern rocksdb_env_t* rocksdb_create_default_env();
|
extern rocksdb_env_t* rocksdb_create_default_env();
|
||||||
|
extern void rocksdb_env_set_background_threads(rocksdb_env_t* env, int n);
|
||||||
extern void rocksdb_env_destroy(rocksdb_env_t*);
|
extern void rocksdb_env_destroy(rocksdb_env_t*);
|
||||||
|
|
||||||
|
/* Universal Compaction options */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
rocksdb_similar_size_compaction_stop_style = 0,
|
||||||
|
rocksdb_total_size_compaction_stop_style = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
extern rocksdb_universal_compaction_options_t* rocksdb_universal_compaction_options_create() ;
|
||||||
|
extern void rocksdb_universal_compaction_options_set_size_ratio(
|
||||||
|
rocksdb_universal_compaction_options_t*, int);
|
||||||
|
extern void rocksdb_universal_compaction_options_set_min_merge_width(
|
||||||
|
rocksdb_universal_compaction_options_t*, int);
|
||||||
|
extern void rocksdb_universal_compaction_options_set_max_merge_width(
|
||||||
|
rocksdb_universal_compaction_options_t*, int);
|
||||||
|
extern void rocksdb_universal_compaction_options_set_max_size_amplification_percent(
|
||||||
|
rocksdb_universal_compaction_options_t*, int);
|
||||||
|
extern void rocksdb_universal_compaction_options_set_compression_size_percent(
|
||||||
|
rocksdb_universal_compaction_options_t*, int);
|
||||||
|
extern void rocksdb_universal_compaction_options_set_stop_style(
|
||||||
|
rocksdb_universal_compaction_options_t*, int);
|
||||||
|
extern void rocksdb_universal_compaction_options_destroy(
|
||||||
|
rocksdb_universal_compaction_options_t*);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* end extern "C" */
|
} /* end extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user