Skip to content

Commit ed90e2a

Browse files
Add getters to the C API for env, universal compaction options and fifo compaction options (#7501)
Summary: Pull Request resolved: #7501 Reviewed By: ltamasi Differential Revision: D24344109 Pulled By: pdillinger fbshipit-source-id: d9a2b1b1cc8c8d8a96f13b8ae6814380caa10c96
1 parent f4ade82 commit ed90e2a

File tree

3 files changed

+149
-0
lines changed

3 files changed

+149
-0
lines changed

db/c.cc

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4122,20 +4122,36 @@ void rocksdb_env_set_background_threads(rocksdb_env_t* env, int n) {
41224122
env->rep->SetBackgroundThreads(n);
41234123
}
41244124

4125+
int rocksdb_env_get_background_threads(rocksdb_env_t* env) {
4126+
return env->rep->GetBackgroundThreads();
4127+
}
4128+
41254129
void rocksdb_env_set_bottom_priority_background_threads(rocksdb_env_t* env,
41264130
int n) {
41274131
env->rep->SetBackgroundThreads(n, Env::BOTTOM);
41284132
}
41294133

4134+
int rocksdb_env_get_bottom_priority_background_threads(rocksdb_env_t* env) {
4135+
return env->rep->GetBackgroundThreads(Env::BOTTOM);
4136+
}
4137+
41304138
void rocksdb_env_set_high_priority_background_threads(rocksdb_env_t* env, int n) {
41314139
env->rep->SetBackgroundThreads(n, Env::HIGH);
41324140
}
41334141

4142+
int rocksdb_env_get_high_priority_background_threads(rocksdb_env_t* env) {
4143+
return env->rep->GetBackgroundThreads(Env::HIGH);
4144+
}
4145+
41344146
void rocksdb_env_set_low_priority_background_threads(rocksdb_env_t* env,
41354147
int n) {
41364148
env->rep->SetBackgroundThreads(n, Env::LOW);
41374149
}
41384150

4151+
int rocksdb_env_get_low_priority_background_threads(rocksdb_env_t* env) {
4152+
return env->rep->GetBackgroundThreads(Env::LOW);
4153+
}
4154+
41394155
void rocksdb_env_join_all_threads(rocksdb_env_t* env) {
41404156
env->rep->WaitForJoin();
41414157
}
@@ -4363,32 +4379,62 @@ void rocksdb_universal_compaction_options_set_size_ratio(
43634379
uco->rep->size_ratio = ratio;
43644380
}
43654381

4382+
int rocksdb_universal_compaction_options_get_size_ratio(
4383+
rocksdb_universal_compaction_options_t* uco) {
4384+
return uco->rep->size_ratio;
4385+
}
4386+
43664387
void rocksdb_universal_compaction_options_set_min_merge_width(
43674388
rocksdb_universal_compaction_options_t* uco, int w) {
43684389
uco->rep->min_merge_width = w;
43694390
}
43704391

4392+
int rocksdb_universal_compaction_options_get_min_merge_width(
4393+
rocksdb_universal_compaction_options_t* uco) {
4394+
return uco->rep->min_merge_width;
4395+
}
4396+
43714397
void rocksdb_universal_compaction_options_set_max_merge_width(
43724398
rocksdb_universal_compaction_options_t* uco, int w) {
43734399
uco->rep->max_merge_width = w;
43744400
}
43754401

4402+
int rocksdb_universal_compaction_options_get_max_merge_width(
4403+
rocksdb_universal_compaction_options_t* uco) {
4404+
return uco->rep->max_merge_width;
4405+
}
4406+
43764407
void rocksdb_universal_compaction_options_set_max_size_amplification_percent(
43774408
rocksdb_universal_compaction_options_t* uco, int p) {
43784409
uco->rep->max_size_amplification_percent = p;
43794410
}
43804411

4412+
int rocksdb_universal_compaction_options_get_max_size_amplification_percent(
4413+
rocksdb_universal_compaction_options_t* uco) {
4414+
return uco->rep->max_size_amplification_percent;
4415+
}
4416+
43814417
void rocksdb_universal_compaction_options_set_compression_size_percent(
43824418
rocksdb_universal_compaction_options_t* uco, int p) {
43834419
uco->rep->compression_size_percent = p;
43844420
}
43854421

4422+
int rocksdb_universal_compaction_options_get_compression_size_percent(
4423+
rocksdb_universal_compaction_options_t* uco) {
4424+
return uco->rep->compression_size_percent;
4425+
}
4426+
43864427
void rocksdb_universal_compaction_options_set_stop_style(
43874428
rocksdb_universal_compaction_options_t* uco, int style) {
43884429
uco->rep->stop_style =
43894430
static_cast<ROCKSDB_NAMESPACE::CompactionStopStyle>(style);
43904431
}
43914432

4433+
int rocksdb_universal_compaction_options_get_stop_style(
4434+
rocksdb_universal_compaction_options_t* uco) {
4435+
return static_cast<int>(uco->rep->stop_style);
4436+
}
4437+
43924438
void rocksdb_universal_compaction_options_destroy(
43934439
rocksdb_universal_compaction_options_t* uco) {
43944440
delete uco->rep;
@@ -4406,6 +4452,11 @@ void rocksdb_fifo_compaction_options_set_max_table_files_size(
44064452
fifo_opts->rep.max_table_files_size = size;
44074453
}
44084454

4455+
uint64_t rocksdb_fifo_compaction_options_get_max_table_files_size(
4456+
rocksdb_fifo_compaction_options_t* fifo_opts) {
4457+
return fifo_opts->rep.max_table_files_size;
4458+
}
4459+
44094460
void rocksdb_fifo_compaction_options_destroy(
44104461
rocksdb_fifo_compaction_options_t* fifo_opts) {
44114462
delete fifo_opts;

db/c_test.c

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,75 @@ int main(int argc, char** argv) {
23552355
rocksdb_cache_destroy(co);
23562356
}
23572357

2358+
StartPhase("env");
2359+
{
2360+
rocksdb_env_t* e;
2361+
e = rocksdb_create_default_env();
2362+
2363+
rocksdb_env_set_background_threads(e, 10);
2364+
CheckCondition(10 == rocksdb_env_get_background_threads(e));
2365+
2366+
rocksdb_env_set_high_priority_background_threads(e, 20);
2367+
CheckCondition(20 == rocksdb_env_get_high_priority_background_threads(e));
2368+
2369+
rocksdb_env_set_low_priority_background_threads(e, 30);
2370+
CheckCondition(30 == rocksdb_env_get_low_priority_background_threads(e));
2371+
2372+
rocksdb_env_set_bottom_priority_background_threads(e, 40);
2373+
CheckCondition(40 == rocksdb_env_get_bottom_priority_background_threads(e));
2374+
2375+
rocksdb_env_destroy(e);
2376+
}
2377+
2378+
StartPhase("universal_compaction_options");
2379+
{
2380+
rocksdb_universal_compaction_options_t* uco;
2381+
uco = rocksdb_universal_compaction_options_create();
2382+
2383+
rocksdb_universal_compaction_options_set_size_ratio(uco, 5);
2384+
CheckCondition(5 ==
2385+
rocksdb_universal_compaction_options_get_size_ratio(uco));
2386+
2387+
rocksdb_universal_compaction_options_set_min_merge_width(uco, 15);
2388+
CheckCondition(
2389+
15 == rocksdb_universal_compaction_options_get_min_merge_width(uco));
2390+
2391+
rocksdb_universal_compaction_options_set_max_merge_width(uco, 25);
2392+
CheckCondition(
2393+
25 == rocksdb_universal_compaction_options_get_max_merge_width(uco));
2394+
2395+
rocksdb_universal_compaction_options_set_max_size_amplification_percent(uco,
2396+
35);
2397+
CheckCondition(
2398+
35 ==
2399+
rocksdb_universal_compaction_options_get_max_size_amplification_percent(
2400+
uco));
2401+
2402+
rocksdb_universal_compaction_options_set_compression_size_percent(uco, 45);
2403+
CheckCondition(
2404+
45 ==
2405+
rocksdb_universal_compaction_options_get_compression_size_percent(uco));
2406+
2407+
rocksdb_universal_compaction_options_set_stop_style(uco, 1);
2408+
CheckCondition(1 ==
2409+
rocksdb_universal_compaction_options_get_stop_style(uco));
2410+
2411+
rocksdb_universal_compaction_options_destroy(uco);
2412+
}
2413+
2414+
StartPhase("fifo_compaction_options");
2415+
{
2416+
rocksdb_fifo_compaction_options_t* fco;
2417+
fco = rocksdb_fifo_compaction_options_create();
2418+
2419+
rocksdb_fifo_compaction_options_set_max_table_files_size(fco, 100000);
2420+
CheckCondition(
2421+
100000 ==
2422+
rocksdb_fifo_compaction_options_get_max_table_files_size(fco));
2423+
2424+
rocksdb_fifo_compaction_options_destroy(fco);
2425+
}
2426+
23582427
StartPhase("backupable_db_option");
23592428
{
23602429
rocksdb_backupable_db_options_t* bdo;

include/rocksdb/c.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,12 +1715,20 @@ extern ROCKSDB_LIBRARY_API rocksdb_env_t* rocksdb_create_default_env();
17151715
extern ROCKSDB_LIBRARY_API rocksdb_env_t* rocksdb_create_mem_env();
17161716
extern ROCKSDB_LIBRARY_API void rocksdb_env_set_background_threads(
17171717
rocksdb_env_t* env, int n);
1718+
extern ROCKSDB_LIBRARY_API int rocksdb_env_get_background_threads(
1719+
rocksdb_env_t* env);
17181720
extern ROCKSDB_LIBRARY_API void
17191721
rocksdb_env_set_high_priority_background_threads(rocksdb_env_t* env, int n);
1722+
extern ROCKSDB_LIBRARY_API int rocksdb_env_get_high_priority_background_threads(
1723+
rocksdb_env_t* env);
17201724
extern ROCKSDB_LIBRARY_API void rocksdb_env_set_low_priority_background_threads(
17211725
rocksdb_env_t* env, int n);
1726+
extern ROCKSDB_LIBRARY_API int rocksdb_env_get_low_priority_background_threads(
1727+
rocksdb_env_t* env);
17221728
extern ROCKSDB_LIBRARY_API void
17231729
rocksdb_env_set_bottom_priority_background_threads(rocksdb_env_t* env, int n);
1730+
extern ROCKSDB_LIBRARY_API int
1731+
rocksdb_env_get_bottom_priority_background_threads(rocksdb_env_t* env);
17241732
extern ROCKSDB_LIBRARY_API void rocksdb_env_join_all_threads(
17251733
rocksdb_env_t* env);
17261734
extern ROCKSDB_LIBRARY_API void rocksdb_env_lower_thread_pool_io_priority(rocksdb_env_t* env);
@@ -1827,21 +1835,39 @@ rocksdb_universal_compaction_options_create();
18271835
extern ROCKSDB_LIBRARY_API void
18281836
rocksdb_universal_compaction_options_set_size_ratio(
18291837
rocksdb_universal_compaction_options_t*, int);
1838+
extern ROCKSDB_LIBRARY_API int
1839+
rocksdb_universal_compaction_options_get_size_ratio(
1840+
rocksdb_universal_compaction_options_t*);
18301841
extern ROCKSDB_LIBRARY_API void
18311842
rocksdb_universal_compaction_options_set_min_merge_width(
18321843
rocksdb_universal_compaction_options_t*, int);
1844+
extern ROCKSDB_LIBRARY_API int
1845+
rocksdb_universal_compaction_options_get_min_merge_width(
1846+
rocksdb_universal_compaction_options_t*);
18331847
extern ROCKSDB_LIBRARY_API void
18341848
rocksdb_universal_compaction_options_set_max_merge_width(
18351849
rocksdb_universal_compaction_options_t*, int);
1850+
extern ROCKSDB_LIBRARY_API int
1851+
rocksdb_universal_compaction_options_get_max_merge_width(
1852+
rocksdb_universal_compaction_options_t*);
18361853
extern ROCKSDB_LIBRARY_API void
18371854
rocksdb_universal_compaction_options_set_max_size_amplification_percent(
18381855
rocksdb_universal_compaction_options_t*, int);
1856+
extern ROCKSDB_LIBRARY_API int
1857+
rocksdb_universal_compaction_options_get_max_size_amplification_percent(
1858+
rocksdb_universal_compaction_options_t*);
18391859
extern ROCKSDB_LIBRARY_API void
18401860
rocksdb_universal_compaction_options_set_compression_size_percent(
18411861
rocksdb_universal_compaction_options_t*, int);
1862+
extern ROCKSDB_LIBRARY_API int
1863+
rocksdb_universal_compaction_options_get_compression_size_percent(
1864+
rocksdb_universal_compaction_options_t*);
18421865
extern ROCKSDB_LIBRARY_API void
18431866
rocksdb_universal_compaction_options_set_stop_style(
18441867
rocksdb_universal_compaction_options_t*, int);
1868+
extern ROCKSDB_LIBRARY_API int
1869+
rocksdb_universal_compaction_options_get_stop_style(
1870+
rocksdb_universal_compaction_options_t*);
18451871
extern ROCKSDB_LIBRARY_API void rocksdb_universal_compaction_options_destroy(
18461872
rocksdb_universal_compaction_options_t*);
18471873

@@ -1850,6 +1876,9 @@ rocksdb_fifo_compaction_options_create();
18501876
extern ROCKSDB_LIBRARY_API void
18511877
rocksdb_fifo_compaction_options_set_max_table_files_size(
18521878
rocksdb_fifo_compaction_options_t* fifo_opts, uint64_t size);
1879+
extern ROCKSDB_LIBRARY_API uint64_t
1880+
rocksdb_fifo_compaction_options_get_max_table_files_size(
1881+
rocksdb_fifo_compaction_options_t* fifo_opts);
18531882
extern ROCKSDB_LIBRARY_API void rocksdb_fifo_compaction_options_destroy(
18541883
rocksdb_fifo_compaction_options_t* fifo_opts);
18551884

0 commit comments

Comments
 (0)