From: Varada Kari Date: Wed, 18 Jan 2017 09:10:51 +0000 (+0530) Subject: os/bluestore: Add unittest to test kvdb dump stats X-Git-Tag: v12.0.0~97^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=eb3561106d23c764ea0caa495eeca6002b943328;p=ceph.git os/bluestore: Add unittest to test kvdb dump stats Signed-off-by: Varada Kari --- diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 38447f39b66..f047951b605 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -5689,6 +5689,54 @@ TEST_P(StoreTest, KVDBHistogramTest) { cout << std::endl; } +TEST_P(StoreTest, KVDBStatsTest) { + if (string(GetParam()) != "bluestore") + return; + + g_conf->set_val("rocksdb_perf", "true"); + g_conf->set_val("rocksdb_collect_compaction_stats", "true"); + g_conf->set_val("rocksdb_collect_extended_stats","true"); + g_conf->set_val("rocksdb_collect_memory_stats","true"); + g_ceph_context->_conf->apply_changes(NULL); + int r = store->umount(); + ASSERT_EQ(r, 0); + r = store->mount(); //to force rocksdb stats + ASSERT_EQ(r, 0); + + ObjectStore::Sequencer osr("test"); + int NUM_OBJS = 200; + coll_t cid; + string base("testobj."); + bufferlist a; + bufferptr ap(0x1000); + memset(ap.c_str(), 'a', 0x1000); + a.append(ap); + { + ObjectStore::Transaction t; + t.create_collection(cid, 0); + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + for (int i = 0; i < NUM_OBJS; ++i) { + ObjectStore::Transaction t; + char buf[100]; + snprintf(buf, sizeof(buf), "%d", i); + ghobject_t hoid(hobject_t(sobject_t(base + string(buf), CEPH_NOSNAP))); + t.write(cid, hoid, 0, 0x1000, a); + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + + Formatter *f = Formatter::create("store_test", "json-pretty", "json-pretty"); + store->get_db_statistics(f); + f->flush(cout); + cout << std::endl; + g_conf->set_val("rocksdb_perf", "false"); + g_conf->set_val("rocksdb_collect_compaction_stats", "false"); + g_conf->set_val("rocksdb_collect_extended_stats","false"); + g_conf->set_val("rocksdb_collect_memory_stats","false"); +} + int main(int argc, char **argv) { vector args; argv_to_vec(argc, (const char **)argv, args);