]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Added rocksdb bloom filter settings for kstore. 13053/head
authorTed-Chang <ted.g.zhang@live.com>
Sun, 22 Jan 2017 10:49:51 +0000 (05:49 -0500)
committerTed-Chang <ted.g.zhang@live.com>
Sun, 22 Jan 2017 10:49:51 +0000 (05:49 -0500)
Signed-off-by: Ted-Chang <ted.g.zhang@live.com>
src/common/config_opts.h
src/kv/RocksDBStore.cc

index b37d10c20b098caaf608fb964a17761da01812b8..78c7600b1e5180d5762c55e8fbdf9e6851ce3065 100644 (file)
@@ -1037,6 +1037,7 @@ OPTION(kstore_max_ops, OPT_U64, 512)
 OPTION(kstore_max_bytes, OPT_U64, 64*1024*1024)
 OPTION(kstore_backend, OPT_STR, "rocksdb")
 OPTION(kstore_rocksdb_options, OPT_STR, "compression=kNoCompression")
+OPTION(kstore_rocksdb_bloom_bits_per_key, OPT_INT, 0)
 OPTION(kstore_fsck_on_mount, OPT_BOOL, false)
 OPTION(kstore_nid_prealloc, OPT_U64, 1024)
 OPTION(kstore_sync_transaction, OPT_BOOL, false)
index 989a375e5171665c786abb3b75a60ba3f52aa36c..1c1301d1e6522c111e57ab8f2c1414cfc34935bc 100644 (file)
@@ -282,6 +282,11 @@ int RocksDBStore::do_open(ostream &out, bool create_if_missing)
   rocksdb::BlockBasedTableOptions bbt_opts;
   bbt_opts.block_size = g_conf->rocksdb_block_size;
   bbt_opts.block_cache = cache;
+  if (g_conf->kstore_rocksdb_bloom_bits_per_key > 0) {
+    dout(10) << __func__ << " set bloom filter bits per key to "
+            << g_conf->kstore_rocksdb_bloom_bits_per_key << dendl;
+    bbt_opts.filter_policy.reset(rocksdb::NewBloomFilterPolicy(g_conf->kstore_rocksdb_bloom_bits_per_key));
+  }
   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