I think we can start a new discussion about the modification. The modification method can be done better. we automatically calculate the blockCacheSize through the configuration started by bin/bookkeeper, and then update conf/entry_location_rocksdb.conf, or I also mention a pr to make a scheme comparison ? Or make this function a switch to choose the implementation
On 2022/10/09 15:03:01 Hang Chen wrote: > I found the PR https://github.com/apache/bookkeeper/pull/3056 has > changed the rocksDB default cache size from 10% of direct memory to > 206150041(196MB), which will lead to entry read performance decrease > when there are huge number of entries stored in the ledger directory. > It will have a huge impact on the read performance when the BookKeeper > cluster upgrades from 4.14.x to 4.15.x. > > The motivation of PR 3056 is to change RocksDB configuration to a > single configuration file, and it introduces the following drawbacks. > 1. Most users, especially those unfamiliar with RocksDB, will be > confused about tuning RocksDB performance due to lack of guidance on > some important key parameters. > 2. The RocksDB blockCacheSize configuration can only be set to a fixed > value, not a percentage of direct memory. > > In order to simplify the RocksDB configuration and make it easy to > tune the performance of the RocksDB, I prefer to separate the RocksDB > configuration into two parts. > 1. The most important configurations, which is usually changed to tune > RocksDB performance, will be located in conf/bk_server.conf > 2. Other advanced configuration will be in a separate RocksDB configuration > file > > For the default RocksDB blockCacheSize change, Do you need to trigger > a new release to change it back? Current Pulsar master branch uses > BookKeeper 4.14.x, and we can change the default value back to 10% of > direct memory to avoid the entry read performance degradation caused > by upgrading Pulsar's BookKeeper dependency to 4.15.x. > > Do you guys have any suggestions? > > Thanks, > Hang >