This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 191adfc  adjust default rocksDbBlockCache size to 10%/numberOfLedgers 
of direct memory (#2643)
191adfc is described below

commit 191adfc22c67285927d60da61b4a8f6567ebdb9f
Author: hangc0276 <[email protected]>
AuthorDate: Fri Mar 19 02:15:22 2021 +0800

    adjust default rocksDbBlockCache size to 10%/numberOfLedgers of direct 
memory (#2643)
    
    * adjust default rocksDbBlockCache size to 10%/numberOfLedgers of direct 
memory instead of 10% of direct memory
    
    * update bk_server configuration doc
    
    Co-authored-by: Matteo Merli <[email protected]>
---
 .../apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDB.java | 5 +++--
 conf/bk_server.conf                                                  | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDB.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDB.java
index c274791..6a71009 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDB.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDB.java
@@ -103,8 +103,9 @@ public class KeyValueStorageRocksDB implements 
KeyValueStorage {
             options.setCreateIfMissing(true);
 
             if (dbConfigType == DbConfigType.Huge) {
-                // Set default RocksDB block-cache size to 10% of direct mem, 
unless override
-                long defaultRocksDBBlockCacheSizeBytes = 
PlatformDependent.maxDirectMemory() / 10;
+                // Set default RocksDB block-cache size to 10% / 
numberOfLedgers of direct memory, unless override
+                int ledgerDirsSize = conf.getLedgerDirNames().length;
+                long defaultRocksDBBlockCacheSizeBytes = 
PlatformDependent.maxDirectMemory() / ledgerDirsSize / 10;
                 long blockCacheSize = 
DbLedgerStorage.getLongVariableOrDefault(conf, ROCKSDB_BLOCK_CACHE_SIZE,
                         defaultRocksDBBlockCacheSizeBytes);
 
diff --git a/conf/bk_server.conf b/conf/bk_server.conf
index c6e6937..e325a9f 100755
--- a/conf/bk_server.conf
+++ b/conf/bk_server.conf
@@ -684,8 +684,8 @@ ledgerDirectories=/tmp/bk-data
 # Size of RocksDB block-cache. For best performance, this cache
 # should be big enough to hold a significant portion of the index
 # database which can reach ~2GB in some cases
-# Default is 256 MBytes
-# dbStorage_rocksDB_blockCacheSize=268435456
+# Default is to use 10% / numberOfLedgers of the direct memory size
+# dbStorage_rocksDB_blockCacheSize=
 
 # Other RocksDB specific tunables
 # dbStorage_rocksDB_writeBufferSizeMB=64

Reply via email to