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:
parent
1433f23eff
commit
c7fd75ce56
4 changed files with 11 additions and 5 deletions
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -3971,7 +3971,8 @@ int main(int argc, char *argv[]) {
|
|||
acts.push_back([&x]() { td::actor::send_closure(x, &ValidatorEngine::set_nonfinal_ls_queries_enabled); });
|
||||
});
|
||||
p.add_checked_option(
|
||||
'\0', "celldb-cache-size", "block cache size for RocksDb in CellDb, in bytes (default: 1G)",
|
||||
'\0', "celldb-cache-size",
|
||||
"block cache size for RocksDb in CellDb, in bytes (default: 1G cache shared by archive DB)",
|
||||
[&](td::Slice s) -> td::Status {
|
||||
TRY_RESULT(v, td::to_integer_safe<td::uint64>(s));
|
||||
if (v == 0) {
|
||||
|
|
|
@ -92,7 +92,7 @@ void CellDbIn::start_up() {
|
|||
db_options.statistics = statistics_;
|
||||
if (opts_->get_celldb_cache_size()) {
|
||||
db_options.block_cache_size = opts_->get_celldb_cache_size().value();
|
||||
LOG(WARNING) << "Set CellDb block cache size to " << td::format::as_size(db_options.block_cache_size);
|
||||
LOG(WARNING) << "Set CellDb block cache size to " << td::format::as_size(db_options.block_cache_size.value());
|
||||
}
|
||||
cell_db_ = std::make_shared<td::RocksDb>(td::RocksDb::open(path_, std::move(db_options)).move_as_ok());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue