Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add further methods to rocksdb C api for rocksdb_get_name, rocksdb_sy… #13310

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
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
48 changes: 48 additions & 0 deletions db/c.cc
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,12 @@ rocksdb_t* rocksdb_open_as_secondary(const rocksdb_options_t* options,
return result;
}

const char* rocksdb_get_name(rocksdb_t* db) {
std::string name = db->rep->GetName();
char* result = strdup(name.c_str());
return result;
}

rocksdb_backup_engine_t* rocksdb_backup_engine_open(
const rocksdb_options_t* options, const char* path, char** errptr) {
BackupEngine* be;
Expand Down Expand Up @@ -1964,6 +1970,30 @@ void rocksdb_flush_wal(rocksdb_t* db, unsigned char sync, char** errptr) {
SaveError(errptr, db->rep->FlushWAL(sync));
}

void rocksdb_sync_wal(rocksdb_t* db, char** errptr) {
SaveError(errptr, db->rep->SyncWAL());
}

void rocksdb_promote_l0(rocksdb_t* db,
rocksdb_column_family_handle_t* column_family,
int target_level, char** errptr) {
SaveError(errptr, db->rep->PromoteL0(column_family->rep, target_level));
}

void rocksdb_verify_checksum(rocksdb_t* db, char** errptr) {
SaveError(errptr, db->rep->VerifyChecksum());
}

int32_t rocksdb_number_levels(rocksdb_t* db) { return db->rep->NumberLevels(); }

int32_t rocksdb_max_mem_compaction_level(rocksdb_t* db) {
return db->rep->MaxMemCompactionLevel();
}

int32_t rocksdb_level0_stop_write_trigger(rocksdb_t* db) {
return db->rep->Level0StopWriteTrigger();
}

void rocksdb_disable_file_deletions(rocksdb_t* db, char** errptr) {
SaveError(errptr, db->rep->DisableFileDeletions());
}
Expand Down Expand Up @@ -7046,6 +7076,14 @@ void rocksdb_approximate_memory_usage_destroy(rocksdb_memory_usage_t* usage) {
delete usage;
}

void rocksdb_pause_background_work(rocksdb_t* db) {
db->rep->PauseBackgroundWork();
}

void rocksdb_continue_background_work(rocksdb_t* db) {
db->rep->ContinueBackgroundWork();
}

void rocksdb_cancel_all_background_work(rocksdb_t* db, unsigned char wait) {
CancelAllBackgroundWork(db->rep, wait);
}
Expand All @@ -7058,6 +7096,16 @@ void rocksdb_enable_manual_compaction(rocksdb_t* db) {
db->rep->EnableManualCompaction();
}

void rocksdb_enable_auto_compaction(
rocksdb_t* db, const rocksdb_column_family_handle_t** column_family_handles,
size_t num_handles, char** errptr) {
std::vector<ColumnFamilyHandle*> handles;
for (size_t i = 0; i < num_handles; i++) {
handles.push_back(column_family_handles[i]->rep);
}
SaveError(errptr, db->rep->EnableAutoCompaction(handles));
}

rocksdb_statistics_histogram_data_t*
rocksdb_statistics_histogram_data_create() {
return new rocksdb_statistics_histogram_data_t{};
Expand Down
13 changes: 13 additions & 0 deletions db/c_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -832,8 +832,17 @@ int main(int argc, char** argv) {
rocksdb_options_set_create_if_missing(options, 1);
db = rocksdb_open(options, dbname, &err);
CheckNoError(err);
const char* name_to_check = rocksdb_get_name(db);
CheckCondition(strcmp(name_to_check, dbname) == 0);
rocksdb_free((void*)name_to_check);
CheckGet(db, roptions, "foo", NULL);

rocksdb_verify_checksum(db, &err);
CheckNoError(err);
CheckCondition(rocksdb_number_levels(db) == 7);
CheckCondition(rocksdb_max_mem_compaction_level(db) == 0);
CheckCondition(rocksdb_level0_stop_write_trigger(db) == 36);

StartPhase("put");
rocksdb_put(db, woptions, "foo", 3, "hello", 5, &err);
CheckNoError(err);
Expand Down Expand Up @@ -4052,6 +4061,10 @@ int main(int argc, char** argv) {
rocksdb_cache_destroy(lru);
}

StartPhase("pause_and_continue_all_background_work");
rocksdb_pause_background_work(db);
rocksdb_continue_background_work(db);

StartPhase("cancel_all_background_work");
rocksdb_cancel_all_background_work(db, 1);

Expand Down
27 changes: 27 additions & 0 deletions include/rocksdb/c.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ extern ROCKSDB_LIBRARY_API rocksdb_t* rocksdb_open_as_secondary(
const rocksdb_options_t* options, const char* name,
const char* secondary_path, char** errptr);

extern ROCKSDB_LIBRARY_API const char* rocksdb_get_name(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API rocksdb_backup_engine_t* rocksdb_backup_engine_open(
const rocksdb_options_t* options, const char* path, char** errptr);

Expand Down Expand Up @@ -714,6 +716,23 @@ extern ROCKSDB_LIBRARY_API void rocksdb_flush_wal(rocksdb_t* db,
unsigned char sync,
char** errptr);

extern ROCKSDB_LIBRARY_API void rocksdb_sync_wal(rocksdb_t* db, char** errptr);

extern ROCKSDB_LIBRARY_API void rocksdb_promote_l0(
rocksdb_t* db, rocksdb_column_family_handle_t* column_family,
int target_level, char** errptr);

extern ROCKSDB_LIBRARY_API void rocksdb_verify_checksum(rocksdb_t* db,
char** errptr);

extern ROCKSDB_LIBRARY_API int32_t rocksdb_number_levels(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API int32_t
rocksdb_max_mem_compaction_level(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API int32_t
rocksdb_level0_stop_write_trigger(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API void rocksdb_disable_file_deletions(rocksdb_t* db,
char** errptr);

Expand Down Expand Up @@ -3064,6 +3083,10 @@ extern ROCKSDB_LIBRARY_API void
rocksdb_options_set_memtable_whole_key_filtering(rocksdb_options_t*,
unsigned char);

extern ROCKSDB_LIBRARY_API void rocksdb_pause_background_work(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API void rocksdb_continue_background_work(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API void rocksdb_cancel_all_background_work(
rocksdb_t* db, unsigned char wait);

Expand All @@ -3072,6 +3095,10 @@ extern ROCKSDB_LIBRARY_API void rocksdb_disable_manual_compaction(

extern ROCKSDB_LIBRARY_API void rocksdb_enable_manual_compaction(rocksdb_t* db);

extern ROCKSDB_LIBRARY_API void rocksdb_enable_auto_compaction(
rocksdb_t* db, const rocksdb_column_family_handle_t** column_family_handles,
size_t num_handles, char** errptr);

extern ROCKSDB_LIBRARY_API rocksdb_statistics_histogram_data_t*
rocksdb_statistics_histogram_data_create(void);
extern ROCKSDB_LIBRARY_API void rocksdb_statistics_histogram_data_destroy(
Expand Down
Loading