1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Fix creating rocksdb cache (#989)

Co-authored-by: SpyCheese <mikle98@yandex.ru>
This commit is contained in:
EmelyanenkoK 2024-05-13 14:54:57 +03:00 committed by GitHub
parent 1433f23eff
commit c7fd75ce56
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 11 additions and 5 deletions

View file

@ -64,10 +64,14 @@ Result<RocksDb> RocksDb::open(std::string path, RocksDbOptions options) {
{
rocksdb::Options db_options;
static auto cache = rocksdb::NewLRUCache(options.block_cache_size);
static auto cache = rocksdb::NewLRUCache(1 << 30);
rocksdb::BlockBasedTableOptions table_options;
table_options.block_cache = cache;
if (options.block_cache_size) {
table_options.block_cache = rocksdb::NewLRUCache(options.block_cache_size.value());
} else {
table_options.block_cache = cache;
}
db_options.table_factory.reset(rocksdb::NewBlockBasedTableFactory(table_options));
db_options.manual_wal_flush = true;

View file

@ -24,6 +24,7 @@
#include "td/db/KeyValue.h"
#include "td/utils/Status.h"
#include "td/utils/optional.h"
namespace rocksdb {
class OptimisticTransactionDB;
@ -37,7 +38,7 @@ namespace td {
struct RocksDbOptions {
std::shared_ptr<rocksdb::Statistics> statistics = nullptr;
uint64 block_cache_size = 1 << 30;
optional<uint64> block_cache_size; // Default - one 1G cache for all RocksDb
};
class RocksDb : public KeyValue {