Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
384 changes: 349 additions & 35 deletions rocksdb/_rocksdb.pyx

Large diffs are not rendered by default.

121 changes: 121 additions & 0 deletions rocksdb/advanced_options.pxd
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
from libcpp cimport bool as cpp_bool
from libcpp.string cimport string
from libcpp.vector cimport vector
from libc.stdint cimport uint64_t
from libc.stdint cimport uint32_t
from libc.stdint cimport int64_t
from libc.stdint cimport int32_t
from .std_memory cimport shared_ptr
from .comparator cimport Comparator
from .merge_operator cimport MergeOperator
from .logger cimport Logger
from .slice_ cimport Slice
from .snapshot cimport Snapshot
from .slice_transform cimport SliceTransform
from .table_factory cimport TableFactory
from .memtablerep cimport MemTableRepFactory
from .universal_compaction cimport CompactionOptionsUniversal
from .cache cimport Cache
from .options cimport Options
from .options cimport CompressionType
from .table_properties cimport TablePropertiesCollectorFactory

cdef extern from "rocksdb/advanced_options.h" namespace "rocksdb":
ctypedef enum CompactionStyle:
kCompactionStyleLevel
kCompactionStyleUniversal
kCompactionStyleFIFO
kCompactionStyleNone

ctypedef enum CompactionPri:
kByCompensatedSize
kOldestLargestSeqFirst
kOldestSmallestSeqFirst
kMinOverlappingRatio

cdef cppclass CompactionOptionsFIFO:
uint64_t max_table_files_size
cpp_bool allow_compaction
CompactionOptionsFIFO()
CompactionOptionsFIFO(uint64_t, cpp_bool)

cdef cppclass CompressionOptions:
int window_bits;
int level;
int strategy;
uint32_t max_dict_bytes
uint32_t zstd_max_train_bytes
uint32_t parallel_threads
cpp_bool enabled
CompressionOptions() except +
CompressionOptions(int, int, int, int,
int, int, cpp_bool) except +

cdef enum UpdateStatus:
UPDATE_FAILED
UPDATED_INPLACE
UPDATED

cdef cppclass AdvancedColumnFamilyOptions:
int max_write_buffer_number
int min_write_buffer_number_to_merge
int max_write_buffer_number_to_maintain
int64_t max_write_buffer_size_to_maintain
cpp_bool inplace_update_support
size_t inplace_update_num_locks

UpdateStatus (*inplace_callback)(char*,
uint32_t*,
Slice,
string*)
double memtable_prefix_bloom_size_ratio
cpp_bool memtable_whole_key_filtering
size_t memtable_huge_page_size
shared_ptr[const SliceTransform] memtable_insert_with_hint_prefix_extractor
uint32_t bloom_locality
size_t arena_block_size
vector[CompressionType] compression_per_level
int num_levels
int level0_slowdown_writes_trigger
int level0_stop_writes_trigger
uint64_t target_file_size_base
int target_file_size_multiplier
cpp_bool level_compaction_dynamic_level_bytes
double max_bytes_for_level_multiplier

vector[int] max_bytes_for_level_multiplier_additional
uint64_t max_compaction_bytes
uint64_t soft_pending_compaction_bytes_limit
uint64_t hard_pending_compaction_bytes_limit

CompactionStyle compaction_style
CompactionPri compaction_pri
CompactionOptionsUniversal compaction_options_universal

CompactionOptionsFIFO compaction_options_fifo

uint64_t max_sequential_skip_in_iterations
shared_ptr[MemTableRepFactory] memtable_factory
vector[shared_ptr[TablePropertiesCollectorFactory]] table_properties_collector_factories

size_t max_successive_merges
cpp_bool optimize_filters_for_hits

cpp_bool paranoid_file_checks
cpp_bool force_consistency_checks

cpp_bool report_bg_io_stats
uint64_t ttl

uint64_t periodic_compaction_seconds
uint64_t sample_for_compression

AdvancedColumnFamilyOptions();
AdvancedColumnFamilyOptions(const Options&);
# ---------------- OPTIONS NOT SUPPORTED ANYMORE ----------------
# But kept for compatibality as they are still in the header files.
int max_mem_compaction_level
double soft_rate_limit
double hard_rate_limit
unsigned int rate_limit_delay_max_milliseconds
cpp_bool purge_redundant_kvs_while_flush
174 changes: 137 additions & 37 deletions rocksdb/db.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,18 @@ from .status cimport Status
from libcpp cimport bool as cpp_bool
from libcpp.string cimport string
from libcpp.vector cimport vector
from libcpp.map cimport map
from libcpp.unordered_map cimport unordered_map
from libcpp.memory cimport shared_ptr
from .types cimport SequenceNumber
from .slice_ cimport Slice
from .snapshot cimport Snapshot
from .iterator cimport Iterator
from .env cimport Env
from .metadata cimport ColumnFamilyMetaData
from .metadata cimport LiveFileMetaData
from .metadata cimport ExportImportFilesMetaData
from .table_properties cimport TableProperties

cdef extern from "rocksdb/write_batch.h" namespace "rocksdb":
cdef cppclass WriteBatch:
Expand Down Expand Up @@ -39,39 +48,13 @@ cdef extern from "cpp/write_batch_iter_helper.hpp" namespace "py_rocks":


cdef extern from "rocksdb/db.h" namespace "rocksdb":
ctypedef uint64_t SequenceNumber
string kDefaultColumnFamilyName

cdef struct LiveFileMetaData:
string name
int level
uint64_t size
string smallestkey
string largestkey
SequenceNumber smallest_seqno
SequenceNumber largest_seqno

# cdef struct SstFileMetaData:
# uint64_t size
# string name
# uint64_t file_number
# string db_path
# string smallestkey
# string largestkey
# SequenceNumber smallest_seqno
# SequenceNumber largest_seqno

# cdef struct LevelMetaData:
# int level
# uint64_t size
# string largestkey
# LiveFileMetaData files

cdef struct ColumnFamilyMetaData:
uint64_t size
uint64_t file_count
# string largestkey
# LevelMetaData levels
# todo TableProperties
ctypedef unordered_map[string, shared_ptr[const TableProperties]] TablePropertiesCollection

cdef struct GetMergeOperandsOptions:
uint64_t expected_max_number_of_operands

cdef cppclass Range:
Range(const Slice&, const Slice&)
Expand All @@ -88,6 +71,12 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb":
ColumnFamilyHandle*,
const Slice&) nogil except+

Status DeleteRange(
const options.WriteOptions&,
ColumnFamilyHandle*,
const Slice&,
const Slice&) nogil except+

Status Merge(
const options.WriteOptions&,
ColumnFamilyHandle*,
Expand All @@ -104,6 +93,14 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb":
const Slice&,
string*) nogil except+

# Status GetMergeOperands(
# const options.ReadOptions&,
# ColumnFamilyHandle*,
# const Slice&,
# PinnableSlice*,
# GetMergeOperandsOptions*,
# uint64_t*) nogil except+;

vector[Status] MultiGet(
const options.ReadOptions&,
const vector[ColumnFamilyHandle*]&,
Expand Down Expand Up @@ -141,6 +138,22 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb":
const Slice&,
string*) nogil except+

cpp_bool GetMapProperty(
ColumnFamilyHandle*,
const Slice&,
map[string, string]*) nogil except+

cpp_bool GetIntProperty(
ColumnFamilyHandle*,
const Slice&,
uint64_t*) nogil except+

Status ResetStats() nogil except+

cpp_bool GetAggregatedIntProperty(
const Slice&,
uint64_t*) nogil except+

void GetApproximateSizes(
ColumnFamilyHandle*,
const Range*
Expand All @@ -153,35 +166,116 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb":
const Slice*,
const Slice*) nogil except+

Status SetOptions(
ColumnFamilyHandle*,
const unordered_map[string, string]&) nogil except+

Status EnableAutoCompaction(
const vector[ColumnFamilyHandle*]&) nogil except+

void DisableManualCompaction() nogil except+
void EnableManualCompaction() nogil except+

Status CreateColumnFamily(
const options.ColumnFamilyOptions&,
const string&,
ColumnFamilyHandle**) nogil except+

Status CreateColumnFamilies(
const options.ColumnFamilyOptions&,
const vector[string]&,
vector[ColumnFamilyHandle*]*) nogil except+

Status CreateColumnFamilies(
const vector[ColumnFamilyDescriptor]&,
vector[ColumnFamilyHandle*]*) nogil except+

Status DropColumnFamily(
ColumnFamilyHandle*) nogil except+

Status DropColumnFamilies(
vector[ColumnFamilyHandle*]*) nogil except+

Status DestroyColumnFamilyHandle(
ColumnFamilyHandle*) nogil except+

int NumberLevels(ColumnFamilyHandle*) nogil except+
int MaxMemCompactionLevel(ColumnFamilyHandle*) nogil except+
int Level0StopWriteTrigger(ColumnFamilyHandle*) nogil except+
const string& GetName() nogil except+
Env* GetEnv() nogil except+
# TODO Mandar FileSystem* GetFileSystem() nogil except+
const options.Options& GetOptions(ColumnFamilyHandle*) nogil except+
Status Flush(const options.FlushOptions&, ColumnFamilyHandle*) nogil except+
Status Flush(
const options.FlushOptions&,
const vector[ColumnFamilyHandle*]&) nogil except+
Status FlushWAL(bool_cpp) nogil except+
Status SyncWAL() nogil except+
Status LockWAL() nogil except+
Status UnlockWAL() nogil except+

SequenceNumber GetLatestSequenceNumber()
cpp_bool SetPreserveDeletesSequenceNumber(SequenceNumber) nogil except+

Status DisableFileDeletions() nogil except+
Status EnableFileDeletions() nogil except+

Status Close() nogil except+
Status Resume() nogil except+
Status PauseBackgroundWork() nogil except+
Status ContinueBackgroundWork() nogil except+

Status GetDbIdentity(string&) nogil except+
ColumnFamilyHandle* DefaultColumnFamily()

# Following defined for #ifndef ROCKDDB_LITE
Status GetLiveFiles(vector[string]&,
uint64_t*,
cpp_bool) nogil except+
# TODO: Status GetSortedWalFiles(VectorLogPtr& files)
# TODO: SequenceNumber GetLatestSequenceNumber()
# TODO: Status GetCurrentWalFile(std::unique_ptr<LogFile>*)
# TODO: Status GetUpdatesSince(
# SequenceNumber seq_number,
# unique_ptr[TransactionLogIterator]*)

# SequenceNumber seq_number,
# unique_ptr[TransactionLogIterator]*,
# const TransactionLogIterator::ReadOptions&)
Status GetCreationTimeOfOldestFile(uint64_t*) nogil except+
Status DeleteFile(string) nogil except+
void GetLiveFilesMetaData(vector[LiveFileMetaData]*) nogil except+
void GetColumnFamilyMetaData(ColumnFamilyHandle*, ColumnFamilyMetaData*) nogil except+
ColumnFamilyHandle* DefaultColumnFamily()

Status IngestExternalFile(
ColumnFamilyHandle*,
const vector[string]&,
const options.IngestExternalFileOptions&) nogil except+
Status CreateColumnFamilyWithImport(
const options.ColumnFamilyOptions&,
const string&,
const options.ImportColumnFamilyOptions&,
const ExportImportFilesMetaData&,
ColumnFamilyHandle**) nogil except+
Status VerifyChecksum(const options.ReadOptions&) nogil except+

DB* GetRootDB() nogil except+
Status GetPropertiesOfAllTables(
ColumnFamilyHandle*,
TablePropertiesCollection*) nogil except+
Status GetPropertiesOfTablesInRange(
ColumnFamilyHandle*, const Range*, size_t,
TablePropertiesCollection*) nogil except+

Status SuggestCompactRange(ColumnFamilyHandle*,
const Slice*,
const Slice*) nogil except+
Status PromoteL0(ColumnFamilyHandle*, int) nogil except+
#TODO Status StartTrace(const TraceOptions&,
# std::unique_ptr<TraceWriter>&&) nogil except+
Status EndTrace() nogil except+
# TODO Status StartBlockCacheTrace(
# const TraceOptions&,
# std::unique_ptr<TraceWriter>&&) nogil except+
Status EndBlockCacheTrace() nogil except+
Status TryCatchUpWithPrimary() nogil except+

cdef Status DB_Open "rocksdb::DB::Open"(
const options.Options&,
Expand Down Expand Up @@ -209,7 +303,13 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb":
DB**,
cpp_bool) nogil except+

cdef Status DestroyDB(
const string&,
const options.Options&,
const vector[ColumnFamilyDescriptor]&) nogil except+

cdef Status RepairDB(const string& dbname, const options.Options&)
cdef Status RepairDB(const string& dbname, const options.Options&, const vector[ColumnFamilyDescriptor]&)

cdef Status ListColumnFamilies "rocksdb::DB::ListColumnFamilies" (
const options.Options&,
Expand All @@ -223,7 +323,7 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb":
cdef cppclass ColumnFamilyDescriptor:
ColumnFamilyDescriptor() nogil except+
ColumnFamilyDescriptor(
const string&,
const string&,
const options.ColumnFamilyOptions&) nogil except+
string name
options.ColumnFamilyOptions options
Expand Down
Loading