Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
R
rust-rocksdb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangzongwu
rust-rocksdb
Commits
b011ecb1
Unverified
Commit
b011ecb1
authored
May 04, 2018
by
Huachao Huang
Committed by
GitHub
May 04, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add some wrapper to get/set options (#205)
parent
a91974aa
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
134 additions
and
10 deletions
+134
-10
c.cc
librocksdb_sys/crocksdb/c.cc
+42
-0
c.h
librocksdb_sys/crocksdb/crocksdb/c.h
+18
-2
lib.rs
librocksdb_sys/src/lib.rs
+19
-8
metadata.rs
src/metadata.rs
+19
-0
rocksdb_options.rs
src/rocksdb_options.rs
+34
-0
test_metadata.rs
tests/test_metadata.rs
+2
-0
No files found.
librocksdb_sys/crocksdb/c.cc
View file @
b011ecb1
...
...
@@ -2122,11 +2122,21 @@ void crocksdb_options_set_level0_slowdown_writes_trigger(
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
(
crocksdb_options_t
*
opt
,
int
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
)
{
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
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
)
{
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
(
crocksdb_options_t
*
opt
,
unsigned
int
v
)
{
opt
->
rep
.
rate_limit_delay_max_milliseconds
=
v
;
...
...
@@ -3006,6 +3024,12 @@ void crocksdb_compactoptions_set_target_level(crocksdb_compactoptions_t* opt,
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
()
{
return
new
crocksdb_flushoptions_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
();
}
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
()
{
return
new
crocksdb_compaction_options_t
();
}
...
...
@@ -4173,6 +4209,12 @@ void crocksdb_compaction_options_set_output_file_size_limit(
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
(
crocksdb_t
*
db
,
crocksdb_column_family_handle_t
*
cf
,
crocksdb_compaction_options_t
*
opts
,
...
...
librocksdb_sys/crocksdb/crocksdb/c.h
View file @
b011ecb1
...
...
@@ -810,8 +810,12 @@ extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_level0_file_num_compaction_trigger
(
crocksdb_options_t
*
,
int
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_options_set_level0_slowdown_writes_trigger
(
crocksdb_options_t
*
,
int
);
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_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
(
crocksdb_options_t
*
,
uint64_t
);
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(
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
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
(
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
crocksdb_options_set_rate_limit_delay_max_milliseconds
(
crocksdb_options_t
*
,
unsigned
int
);
...
...
@@ -1223,6 +1231,8 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_compactoptions_set_change_level(
crocksdb_compactoptions_t
*
,
unsigned
char
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_compactoptions_set_target_level
(
crocksdb_compactoptions_t
*
,
int
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_compactoptions_set_max_subcompactions
(
crocksdb_compactoptions_t
*
,
int
);
/* Flush options */
...
...
@@ -1658,6 +1668,10 @@ extern C_ROCKSDB_LIBRARY_API size_t
crocksdb_sst_file_meta_data_size
(
const
crocksdb_sst_file_meta_data_t
*
);
extern
C_ROCKSDB_LIBRARY_API
const
char
*
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 */
extern
C_ROCKSDB_LIBRARY_API
crocksdb_compaction_options_t
*
...
...
@@ -1668,6 +1682,8 @@ extern C_ROCKSDB_LIBRARY_API void
crocksdb_compaction_options_set_compression
(
crocksdb_compaction_options_t
*
,
int
);
extern
C_ROCKSDB_LIBRARY_API
void
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
crocksdb_compact_files_cf
(
crocksdb_t
*
,
crocksdb_column_family_handle_t
*
,
...
...
librocksdb_sys/src/lib.rs
View file @
b011ecb1
...
...
@@ -431,7 +431,9 @@ extern "C" {
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_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_target_file_size_base
(
options
:
*
mut
Options
,
bytes
:
u64
);
pub
fn
crocksdb_options_get_target_file_size_base
(
options
:
*
const
Options
)
->
u64
;
...
...
@@ -563,7 +565,9 @@ extern "C" {
pri
:
c_uchar
,
)
->
i64
;
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_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_db_paths
(
options
:
*
mut
Options
,
...
...
@@ -1009,14 +1013,9 @@ extern "C" {
opt
:
*
mut
DBCompactOptions
,
v
:
bool
,
);
pub
fn
crocksdb_compactoptions_set_change_level
(
opt
:
*
mut
DBCompactOptions
,
v
:
bool
,
);
pub
fn
crocksdb_compactoptions_set_target_level
(
opt
:
*
mut
DBCompactOptions
,
v
:
i32
,
);
pub
fn
crocksdb_compactoptions_set_change_level
(
opt
:
*
mut
DBCompactOptions
,
v
:
bool
);
pub
fn
crocksdb_compactoptions_set_target_level
(
opt
:
*
mut
DBCompactOptions
,
v
:
i32
);
pub
fn
crocksdb_compactoptions_set_max_subcompactions
(
opt
:
*
mut
DBCompactOptions
,
v
:
i32
);
pub
fn
crocksdb_fifo_compaction_options_create
()
->
*
mut
DBFifoCompactionOptions
;
pub
fn
crocksdb_fifo_compaction_options_set_max_table_files_size
(
...
...
@@ -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_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_destroy
(
opts
:
*
mut
DBCompactionOptions
);
...
...
@@ -1599,6 +1606,10 @@ extern "C" {
opts
:
*
mut
DBCompactionOptions
,
size
:
size_t
,
);
pub
fn
crocksdb_compaction_options_set_max_subcompactions
(
opts
:
*
mut
DBCompactionOptions
,
v
:
i32
,
);
pub
fn
crocksdb_compact_files_cf
(
db
:
*
mut
DBInstance
,
...
...
src/metadata.rs
View file @
b011ecb1
...
...
@@ -13,6 +13,9 @@
use
crocksdb_ffi
::{
self
,
DBColumnFamilyMetaData
,
DBLevelMetaData
,
DBSstFileMetaData
};
use
std
::
ffi
::
CStr
;
use
std
::
slice
;
use
libc
::
size_t
;
pub
struct
ColumnFamilyMetaData
{
inner
:
*
mut
DBColumnFamilyMetaData
,
...
...
@@ -77,4 +80,20 @@ impl SstFileMetaData {
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
)
}
}
}
src/rocksdb_options.rs
View file @
b011ecb1
...
...
@@ -484,6 +484,12 @@ impl CompactOptions {
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
{
...
...
@@ -518,6 +524,12 @@ impl CompactionOptions {
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
{
...
...
@@ -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
)
{
unsafe
{
crocksdb_ffi
::
crocksdb_options_set_hard_pending_compaction_bytes_limit
(
...
...
@@ -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
)
{
unsafe
{
crocksdb_ffi
::
crocksdb_options_set_target_file_size_base
(
self
.inner
,
size
);
...
...
@@ -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
)
{
unsafe
{
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
)
{
unsafe
{
crocksdb_ffi
::
crocksdb_options_set_compaction_style
(
self
.inner
,
style
);
...
...
tests/test_metadata.rs
View file @
b011ecb1
...
...
@@ -48,6 +48,8 @@ fn test_metadata() {
for
f
in
files
{
assert
!
(
f
.get_size
()
>
0
);
assert
!
(
f
.get_name
()
.len
()
>
0
);
assert
!
(
f
.get_smallestkey
()
.len
()
>
0
);
assert
!
(
f
.get_largestkey
()
.len
()
>
0
);
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment