From: Haomai Wang Date: Sun, 17 Jan 2016 16:57:32 +0000 (+0800) Subject: RocksDB: add block cache size option to RocksDB X-Git-Tag: v10.0.4~81^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb5d9095c105a6d67dc069c87546d8e603176d39;p=ceph.git RocksDB: add block cache size option to RocksDB Signed-off-by: Haomai Wang --- diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 89d697f6dd76..95c1cf9650a8 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -793,6 +793,8 @@ OPTION(kinetic_use_ssl, OPT_BOOL, false) // whether to secure kinetic traffic wi OPTION(rocksdb_separate_wal_dir, OPT_BOOL, false) // use $path.wal for wal OPTION(rocksdb_db_paths, OPT_STR, "") // path,size( path,size)* OPTION(rocksdb_log_to_ceph_log, OPT_BOOL, true) // log to ceph log +OPTION(rocksdb_cache_size, OPT_INT, 128*1024*1024) // default leveldb cache size +OPTION(rocksdb_block_size, OPT_INT, 4*1024) // default rocksdb block size // rocksdb options that will be used for omap(if omap_backend is rocksdb) OPTION(filestore_rocksdb_options, OPT_STR, "") // rocksdb options that will be used in monstore diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index 649daf7775de..672feada22a1 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -218,6 +218,14 @@ int RocksDBStore::do_open(ostream &out, bool create_if_missing) opt.env = static_cast(priv); } + auto cache = rocksdb::NewLRUCache(g_conf->rocksdb_cache_size); + rocksdb::BlockBasedTableOptions bbt_opts; + bbt_opts.block_size = 32 * 1024; + bbt_opts.block_cache = cache; + opt.table_factory.reset(rocksdb::NewBlockBasedTableFactory(bbt_opts)); + dout(10) << __func__ << " set block size to " << g_conf->rocksdb_block_size + << " cache size to " << g_conf->rocksdb_cache_size << dendl; + status = rocksdb::DB::Open(opt, path, &db); if (!status.ok()) { derr << status.ToString() << dendl;