diff --git a/Libplanet.RocksDBStore/RocksDBStore.cs b/Libplanet.RocksDBStore/RocksDBStore.cs index b76adce0dc..514e1fa5fb 100644 --- a/Libplanet.RocksDBStore/RocksDBStore.cs +++ b/Libplanet.RocksDBStore/RocksDBStore.cs @@ -69,11 +69,17 @@ private readonly Dictionary, lon /// The capacity of the block cache. /// The capacity of the transaction cache. /// The capacity of the states cache. + /// The number to configure max_total_wal_size RocksDB option. + /// + /// The number to configure keep_log_file_num RocksDB option. + /// public RocksDBStore( string path, int blockCacheSize = 512, int txCacheSize = 1024, - int statesCacheSize = 10000 + int statesCacheSize = 10000, + ulong? maxTotalWalSize = null, + ulong? keepLogFileNum = null ) { _logger = Log.ForContext(); @@ -102,6 +108,16 @@ public RocksDBStore( _options = new DbOptions() .SetCreateIfMissing(); + if (maxTotalWalSize is ulong maxTotalWalSizeValue) + { + _options = _options.SetMaxTotalWalSize(maxTotalWalSizeValue); + } + + if (keepLogFileNum is ulong keepLogFileNumValue) + { + _options = _options.SetKeepLogFileNum(keepLogFileNumValue); + } + _blockDb = RocksDBUtils.OpenRocksDb(_options, RocksDbPath(BlockDbName)); _txDb = RocksDBUtils.OpenRocksDb(_options, RocksDbPath(TxDbName)); _stateDb = RocksDBUtils.OpenRocksDb(_options, RocksDbPath(StateDbName));