-
Notifications
You must be signed in to change notification settings - Fork 312
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
Feature:Online Query and Dynamic Modification of Table-level RocksDB Options #1511
Conversation
… RocksDB Options (apache#1488) apache#1488 Complete the dynamic setting function of num_levels and write_buffer_size option.I use rocksdb.write_buffer_size as a dynamically modifiable parameter and rocksdb.num_levels as a non-dynamically modifiable parameter to test my idea. Pegasus shell case: create lpf -e rocksdb.num_levels=12,rocksdb.write_buffer_size=100 create lpf -e rocksdb.num_levels=5,rocksdb.write_buffer_size=100 create lpf -e rocksdb.num_levels=5,rocksdb.write_buffer_size=33554432 set_app_envs rocksdb.write_buffer_size 67108864 set_app_envs rocksdb.num_levels 4 get_app_envs
…Options (apache#1488) apache#1488 Currently, I only perform strict validation of app envs during the create_app command process. However, in the set_app_envs command, there is no validation for invalid envs, and they are simply not processed. - Manual test (add detailed scripts or steps below) Pegasus shell case: create lpf -e rocksdb.num_levels=12,rocksdb.write_buffer_size=100 create lpf -e rocksdb.num_levels=5,rocksdb.write_buffer_size=100 create lpf -e rocksdb.num_levels=5,rocksdb.write_buffer_size=33554432 set_app_envs rocksdb.write_buffer_size 67108864 set_app_envs rocksdb.write_buffer_size 100 get_app_envs
Seems you are using me but didn't get OPENAI_API_KEY seted in Variables/Secrets for this repo. you could follow readme for more information |
…d adjusted my code.
Seems you are using me but didn't get OPENAI_API_KEY seted in Variables/Secrets for this repo. you could follow readme for more information |
ea1ed49
to
2ac14c2
Compare
…ode. Mainly the following aspects: 1. Improve the unit test to ensure that the new option can also be added correctly. 2. Add getter and setter methods for option.
5c90ad5
to
5d94ede
Compare
f494be6
to
8b32c78
Compare
6625e4a
to
c31bd00
Compare
ROCKSDB_NUM_LEVELS, | ||
}; | ||
|
||
const std::unordered_map<std::string, cf_opts_setter> cf_opts_setters = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you checked the functions provided by rocksdb here? I guess it's not needed to check the options ourselves.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I didn't see this function before. Can i solve this problem in next PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's OK to me, thanks!
What problem does this PR solve?
Feature:Online Query and Dynamic Modification of Table-level RocksDB Options (#1488)
#1488
Complete the dynamic setting function of num_levels and write_buffer_size option.I use rocksdb.write_buffer_size as a dynamically modifiable parameter and rocksdb.num_levels as a non-dynamically modifiable parameter to test my idea.
What is changed and how does it work?
config.ini
file.create
orset_app_envs
command.create
command.app env
), only the RocksDB options set through thecreate
orset_app_envs
command will be available for online querying.[pegasus.server]
section of theconfig.ini
file.Tests
Unit test is add in meta_app_envs_test.update_app_envs_test
Pegasus shell case:
create lpf -e rocksdb.num_levels=12,rocksdb.write_buffer_size=100
create lpf -e rocksdb.num_levels=5,rocksdb.write_buffer_size=100
create lpf -e rocksdb.num_levels=5,rocksdb.write_buffer_size=33554432
set_app_envs rocksdb.write_buffer_size 67108864
set_app_envs rocksdb.num_levels 4
get_app_envs