ruojieranyishen opened a new issue, #1488:
URL: https://github.com/apache/incubator-pegasus/issues/1488
### Background
Currently, in the Pegasus 2.4.1 version, dynamic querying and modification
of RocksDB options at the table level are not supported. While the Pegasus
shell provides commands like `set_app_envs `and `create` for configuring
certain table-level options, it does not include RocksDB options. Consequently,
adding the configure table-level RocksDB options ability would enhance the app
configuration flexibility in Pegasus.
### Goals
This issue aims to achieve the following goals:
1. Provide online modification functionality for table-level RocksDB
configuration.
2. Provide online query functionality for table-level RocksDB configuration.
3. Research on the principles, interdependencies, and modification risks of
the rocksdb options used in Pegasus with rocksdb-6.6.4 version, and compile a
comprehensive documentation on the usage of table-level rocksdb options.
4. By modifying the logic of the Usage Scenario feature, unify the approach
for setting table-level RocksDB options.
### Solution
Here are the solutions for goals 1 and 2.
The storage location of rocksdb option is as follows:
1. Utilize the config.ini file to provide default global RocksDB options
information.
2. Store table-specific RocksDB options in the envs section of the app_info
in ZooKeeper (zk).
Three scenarios to set specific rocksdb option:
1. [Create a replica with specific rocksdb option]
Set specify option by `create appname -e rocksdb.options ` command
If a replica is not created, use the app envs rocksdb option from metaserver
to create. For a already created replica, because the app envs is not
transmitted from the metaserver, use options from the RocksDB OPTION file as
the reference.
2. [Modify a specific rocksdb option of an online replica]
Set specify option by `set_app_envs rocksdb.options` command
3. [Query the modified option online]
Get specify option by `get_app_envs` command
To validate the feasibility of the proposed solution, I will use
rocksdb.write_buffer_size as a dynamically modifiable parameter and
rocksdb.num_levels as a non-dynamically modifiable parameter to test my idea.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]