Skip to content

Commit 35753b2

Browse files
authored
Merge pull request faust-streaming#7 from NightTsarina/options_helper_classes
Options helper classes
2 parents 3904b51 + 1d0ef3a commit 35753b2

File tree

3 files changed

+70
-3
lines changed

3 files changed

+70
-3
lines changed

rocksdb/compaction_filter.pxd

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
from libcpp cimport bool as cpp_bool
2+
from libcpp.string cimport string
3+
from libcpp.vector cimport vector
4+
from libcpp.memory cimport unique_ptr
5+
from libc.stdint cimport uint32_t
6+
from .slice_ cimport Slice
7+
8+
cdef extern from "rocksdb/compaction_filter.h" namespace "rocksdb":
9+
cdef cppclass CompactionFilterContext:
10+
cpp_bool is_full_compaction
11+
cpp_bool is_manual_compaction
12+
13+
cdef enum ValueType "rocksdb::CompactionFilter::ValueType":
14+
ValueType_kValue "rocksdb::CompactionFilter::ValueType::kValue"
15+
ValueType_kMergeOperand "rocksdb::CompactionFilter::ValueType::kMergeOperand"
16+
ValueType_kBlobIndex "rocksdb::CompactionFilter::ValueType::kBlobIndex"
17+
18+
cdef enum Decision "rocksdb::CompactionFilter::Decision":
19+
Decision_kKeep "rocksdb::CompactionFilter::Decision::kKeep"
20+
Decision_kRemove "rocksdb::CompactionFilter::Decision::kRemove"
21+
Decision_kChangeValue "rocksdb::CompactionFilter::Decision::kChangeValue"
22+
Decision_kRemoveAndSkipUntil "rocksdb::CompactionFilter::Decision::kRemoveAndSkipUntil"
23+
24+
cdef enum BlobDecision "rocksdb::CompactionFilter::BlobDecision":
25+
BlobDecision_kKeep "rocksdb::CompactionFilter::BlobDecision::kKeep"
26+
BlobDecision_kChangeValue "rocksdb::CompactionFilter::BlobDecision::kChangeValue"
27+
BlobDecision_kCorruption "rocksdb::CompactionFilter::BlobDecision::kCorruption"
28+
BlobDecision_kIOError "rocksdb::CompactionFilter::BlobDecision::kIOError"
29+
30+
cdef cppclass Context "rocksdb::CompactionFilter::Context":
31+
cpp_bool is_full_compaction
32+
cpp_bool is_manual_compaction
33+
uint32_t column_family_id
34+
35+
cdef cppclass CompactionFilter:
36+
cpp_bool Filter(int, const Slice&,
37+
const Slice&,
38+
string*,
39+
cpp_bool*) nogil except+
40+
cpp_bool FilterMergeOperand(int, const Slice&,
41+
const Slice&) nogil except+
42+
Decision FilterV2(int level, const Slice&, ValueType,
43+
const Slice&, string*,
44+
string*)
45+
BlobDecision PrepareBlobOutput(const Slice&,
46+
const Slice&,
47+
string*)
48+
cpp_bool IgnoreSnapshots()
49+
const char* Name()
50+
51+
cdef cppclass CompactionFilterFactory:
52+
unique_ptr[CompactionFilter] CreateCompactionFilter(
53+
const Context&)
54+
const char* Name()
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from libcpp.string cimport string
2+
from libc.stdint cimport int32_t
3+
4+
cdef extern from "rocksdb/concurrent_task_limiter.h" namespace "rocksdb":
5+
cdef cppclass ConcurrentTaskLimiter:
6+
const string& GetName()
7+
void SetMaxOutstandingTask(int32_t)
8+
void ResetMaxOutstandingTask()
9+
int32_t GetOutstandingTask()
10+
11+
ConcurrentTaskLimiter* NewConcurrentTaskLimiter(const string&, int32_t)

rocksdb/options.pxd

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ from .advanced_options cimport CompressionOptions
2020
from .advanced_options cimport AdvancedColumnFamilyOptions
2121
from .env cimport Env
2222
from .types cimport SequenceNumber
23+
from .compaction_filter cimport CompactionFilter, CompactionFilterFactory
24+
from .concurrent_task_limiter cimport ConcurrentTaskLimiter
2325

2426
cdef extern from "rocksdb/options.h" namespace "rocksdb":
2527
ctypedef enum CpuPriority:
@@ -48,8 +50,8 @@ cdef extern from "rocksdb/options.h" namespace "rocksdb":
4850
ColumnFamilyOptions* OptimizeUniversalStyleCompaction(uint64_t)
4951
const Comparator* comparator
5052
shared_ptr[MergeOperator] merge_operator
51-
# TODO: compaction_filter
52-
# TODO: compaction_filter_factory
53+
CompactionFilter* compaction_filter
54+
shared_ptr[CompactionFilterFactory] compaction_filter_factory
5355
size_t write_buffer_size
5456
advanced_options.CompressionType compression
5557
advanced_options.CompressionType bottommost_compression
@@ -65,7 +67,7 @@ cdef extern from "rocksdb/options.h" namespace "rocksdb":
6567
shared_ptr[TableFactory] table_factory
6668

6769
vector[DbPath] cf_paths
68-
# TODO shared_ptr[ConcurrentTaskLimiter] compaction_thread_limiter
70+
shared_ptr[ConcurrentTaskLimiter] compaction_thread_limiter
6971
ColumnFamilyOptions()
7072
ColumnFamilyOptions(const Options& options)
7173
void Dump(Logger*)

0 commit comments

Comments
 (0)