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
40b2408f
Commit
40b2408f
authored
Jul 06, 2017
by
Cholerae Hu
Committed by
GitHub
Jul 06, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #87 from pingcap/hyq/checkcompression
rocksdb: add get_compression_per_level method to Options
parents
65d4179c
dbfe778e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
0 deletions
+46
-0
c.cc
librocksdb_sys/crocksdb/c.cc
+11
-0
c.h
librocksdb_sys/crocksdb/rocksdb/c.h
+4
-0
lib.rs
librocksdb_sys/src/lib.rs
+3
-0
rocksdb_options.rs
src/rocksdb_options.rs
+12
-0
test_rocksdb_options.rs
tests/test_rocksdb_options.rs
+16
-0
No files found.
librocksdb_sys/crocksdb/c.cc
View file @
40b2408f
...
...
@@ -1782,6 +1782,17 @@ void crocksdb_options_set_compression_per_level(crocksdb_options_t* opt,
}
}
size_t
crocksdb_options_get_compression_level_number
(
crocksdb_options_t
*
opt
)
{
return
opt
->
rep
.
compression_per_level
.
size
();
}
void
crocksdb_options_get_compression_per_level
(
crocksdb_options_t
*
opt
,
int
*
level_values
)
{
for
(
size_t
i
=
0
;
i
<
opt
->
rep
.
compression_per_level
.
size
();
i
++
)
{
level_values
[
i
]
=
static_cast
<
int
>
(
opt
->
rep
.
compression_per_level
[
i
]);
}
}
void
crocksdb_options_set_compression_options
(
crocksdb_options_t
*
opt
,
int
w_bits
,
int
level
,
int
strategy
,
int
max_dict_bytes
)
{
...
...
librocksdb_sys/crocksdb/rocksdb/c.h
View file @
40b2408f
...
...
@@ -624,6 +624,10 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_merge_operator(
crocksdb_options_t
*
,
crocksdb_mergeoperator_t
*
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_options_set_compression_per_level
(
crocksdb_options_t
*
opt
,
int
*
level_values
,
size_t
num_levels
);
extern
C_ROCKSDB_LIBRARY_API
size_t
crocksdb_options_get_compression_level_number
(
crocksdb_options_t
*
opt
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_options_get_compression_per_level
(
crocksdb_options_t
*
opt
,
int
*
level_values
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_options_set_create_if_missing
(
crocksdb_options_t
*
,
unsigned
char
);
extern
C_ROCKSDB_LIBRARY_API
void
...
...
librocksdb_sys/src/lib.rs
View file @
40b2408f
...
...
@@ -315,6 +315,9 @@ extern "C" {
pub
fn
crocksdb_options_set_compression_per_level
(
options
:
*
mut
DBOptions
,
level_values
:
*
const
DBCompressionType
,
num_levels
:
size_t
);
pub
fn
crocksdb_options_get_compression_level_number
(
options
:
*
mut
DBOptions
)
->
size_t
;
pub
fn
crocksdb_options_get_compression_per_level
(
options
:
*
mut
DBOptions
,
level_values
:
*
mut
DBCompressionType
);
pub
fn
crocksdb_options_set_base_background_compactions
(
optinos
:
*
mut
DBOptions
,
base_bg_compactions
:
c_int
);
pub
fn
crocksdb_options_set_max_background_compactions
(
options
:
*
mut
DBOptions
,
...
...
src/rocksdb_options.rs
View file @
40b2408f
...
...
@@ -413,6 +413,18 @@ impl Options {
}
}
pub
fn
get_compression_per_level
(
&
self
)
->
Vec
<
DBCompressionType
>
{
unsafe
{
let
size
=
crocksdb_ffi
::
crocksdb_options_get_compression_level_number
(
self
.inner
)
as
usize
;
let
mut
ret
=
Vec
::
with_capacity
(
size
);
let
pret
=
ret
.as_mut_ptr
();
crocksdb_ffi
::
crocksdb_options_get_compression_per_level
(
self
.inner
,
pret
);
ret
.set_len
(
size
);
ret
}
}
pub
fn
add_merge_operator
(
&
mut
self
,
name
:
&
str
,
merge_fn
:
MergeFn
)
{
let
cb
=
Box
::
new
(
MergeOperatorCallback
{
name
:
CString
::
new
(
name
.as_bytes
())
.unwrap
(),
...
...
tests/test_rocksdb_options.rs
View file @
40b2408f
...
...
@@ -360,3 +360,19 @@ fn test_get_compression() {
opts
.compression
(
DBCompressionType
::
DBSnappy
);
assert_eq!
(
opts
.get_compression
(),
DBCompressionType
::
DBSnappy
);
}
#[test]
fn
test_get_compression_per_level
()
{
let
mut
opts
=
Options
::
new
();
let
compressions
=
&
[
DBCompressionType
::
DBNo
,
DBCompressionType
::
DBSnappy
];
opts
.compression_per_level
(
compressions
);
let
v
=
opts
.get_compression_per_level
();
assert_eq!
(
v
.len
(),
2
);
assert_eq!
(
v
[
0
],
DBCompressionType
::
DBNo
);
assert_eq!
(
v
[
1
],
DBCompressionType
::
DBSnappy
);
let
mut
opts2
=
Options
::
new
();
let
empty
:
&
[
DBCompressionType
]
=
&
[];
opts2
.compression_per_level
(
empty
);
let
v2
=
opts2
.get_compression_per_level
();
assert_eq!
(
v2
.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