From bf4177d04199678517c4bc83cfaeaae58f86ffbc Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 13 Jan 2020 07:56:38 -0600 Subject: [PATCH] use omap_rmkey() where appropriate Signed-off-by: Sage Weil --- src/os/FuseStore.cc | 4 +--- src/osd/OSD.cc | 4 +--- .../ObjectStoreTransactionBenchmark.cc | 18 ++++++++---------- src/test/objectstore/store_test.cc | 4 +--- src/tools/ceph_objectstore_tool.cc | 9 ++------- 5 files changed, 13 insertions(+), 26 deletions(-) diff --git a/src/os/FuseStore.cc b/src/os/FuseStore.cc index 02ea9fdcbdf..2fcfb6cac1c 100644 --- a/src/os/FuseStore.cc +++ b/src/os/FuseStore.cc @@ -1008,9 +1008,7 @@ static int os_unlink(const char *path) switch (f) { case FN_OBJECT_OMAP_VAL: { - set keys; - keys.insert(key); - t.omap_rmkeys(cid, oid, keys); + t.omap_rmkey(cid, oid, key); } break; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 6d82e52e19c..9b1e86e820f 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6001,11 +6001,9 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store, ss << "ok"; } else if (command == "rmomapkey") { string key; - set keys; cmd_getval(service->cct, cmdmap, "key", key); - keys.insert(key); - t.omap_rmkeys(coll_t(pgid), ghobject_t(obj), keys); + t.omap_rmkey(coll_t(pgid), ghobject_t(obj), key); r = store->queue_transaction(service->meta_ch, std::move(t)); if (r < 0) ss << "error=" << r; diff --git a/src/test/objectstore/ObjectStoreTransactionBenchmark.cc b/src/test/objectstore/ObjectStoreTransactionBenchmark.cc index 5e248cbe21f..414608e0420 100644 --- a/src/test/objectstore/ObjectStoreTransactionBenchmark.cc +++ b/src/test/objectstore/ObjectStoreTransactionBenchmark.cc @@ -41,7 +41,7 @@ class Transaction { count++; } }; - static Tick write_ticks, setattr_ticks, omap_setkeys_ticks, omap_rmkeys_ticks; + static Tick write_ticks, setattr_ticks, omap_setkeys_ticks, omap_rmkey_ticks; static Tick encode_ticks, decode_ticks, iterate_ticks; void write(coll_t cid, const ghobject_t& oid, uint64_t off, uint64_t len, @@ -63,11 +63,11 @@ class Transaction { t.omap_setkeys(cid, oid, attrset); omap_setkeys_ticks.add(Cycles::rdtsc() - start_time); } - void omap_rmkeys(coll_t cid, const ghobject_t &oid, - const set &keys) { + void omap_rmkey(coll_t cid, const ghobject_t &oid, + const string &key) { uint64_t start_time = Cycles::rdtsc(); - t.omap_rmkeys(cid, oid, keys); - omap_rmkeys_ticks.add(Cycles::rdtsc() - start_time); + t.omap_rmkey(cid, oid, key); + omap_rmkey_ticks.add(Cycles::rdtsc() - start_time); } void apply_encode_decode() { @@ -130,7 +130,7 @@ class Transaction { cerr << " write op: " << Cycles::to_microseconds(write_ticks.ticks) << "us count: " << write_ticks.count << std::endl; cerr << " setattr op: " << Cycles::to_microseconds(setattr_ticks.ticks) << "us count: " << setattr_ticks.count << std::endl; cerr << " omap_setkeys op: " << Cycles::to_microseconds(Transaction::omap_setkeys_ticks.ticks) << "us count: " << Transaction::omap_setkeys_ticks.count << std::endl; - cerr << " omap_rmkeys op: " << Cycles::to_microseconds(Transaction::omap_rmkeys_ticks.ticks) << "us count: " << Transaction::omap_rmkeys_ticks.count << std::endl; + cerr << " omap_rmkey op: " << Cycles::to_microseconds(Transaction::omap_rmkey_ticks.ticks) << "us count: " << Transaction::omap_rmkey_ticks.count << std::endl; cerr << " encode op: " << Cycles::to_microseconds(Transaction::encode_ticks.ticks) << "us count: " << Transaction::encode_ticks.count << std::endl; cerr << " decode op: " << Cycles::to_microseconds(Transaction::decode_ticks.ticks) << "us count: " << Transaction::decode_ticks.count << std::endl; cerr << " iterate op: " << Cycles::to_microseconds(Transaction::iterate_ticks.ticks) << "us count: " << Transaction::iterate_ticks.count << std::endl; @@ -207,15 +207,13 @@ class PerfCase { Transaction t; map pglog_attrset; map info_attrset; - set keys; - keys.insert(pglog_attr); pglog_attrset[pglog_attr] = data[pglog_attr]; info_attrset[info_epoch_attr] = data[info_epoch_attr]; info_attrset[info_info_attr] = data[info_info_attr]; start_time = Cycles::rdtsc(); t.omap_setkeys(meta_cid, pglog_oid, pglog_attrset); t.omap_setkeys(meta_cid, info_oid, info_attrset); - t.omap_rmkeys(meta_cid, pglog_oid, keys); + t.omap_rmkey(meta_cid, pglog_oid, pglog_attr); t.apply_encode_decode(); t.apply_iterate(); ticks += Cycles::rdtsc() - start_time; @@ -233,7 +231,7 @@ const coll_t PerfCase::meta_cid; const coll_t PerfCase::cid; const ghobject_t PerfCase::pglog_oid(hobject_t(sobject_t(object_t("cid_pglog"), 0))); const ghobject_t PerfCase::info_oid(hobject_t(sobject_t(object_t("infos"), 0))); -Transaction::Tick Transaction::write_ticks, Transaction::setattr_ticks, Transaction::omap_setkeys_ticks, Transaction::omap_rmkeys_ticks; +Transaction::Tick Transaction::write_ticks, Transaction::setattr_ticks, Transaction::omap_setkeys_ticks, Transaction::omap_rmkey_ticks; Transaction::Tick Transaction::encode_ticks, Transaction::decode_ticks, Transaction::iterate_ticks; void usage(const string &name) { diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 6a460a3ab10..f296a61711d 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -5099,9 +5099,7 @@ TEST_P(StoreTest, OMapTest) { } string to_remove = attrs.begin()->first; - set keys_to_remove; - keys_to_remove.insert(to_remove); - t.omap_rmkeys(cid, hoid, keys_to_remove); + t.omap_rmkey(cid, hoid, to_remove); r = queue_transaction(store, ch, std::move(t)); ASSERT_EQ(r, 0); diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 229c9f628ee..77c929feb51 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -1972,9 +1972,7 @@ int ObjectStoreTool::do_import(ObjectStore *store, OSDSuperblock& sb, cerr << "done, clearing removal flag" << std::endl; if (!dry_run) { - set remove; - remove.insert("_remove"); - t.omap_rmkeys(coll, pgid.make_pgmeta_oid(), remove); + t.omap_rmkey(coll, pgid.make_pgmeta_oid(), "_remove"); wait_until_done(&t, [&] { store->queue_transaction(ch, std::move(t)); // make sure we flush onreadable items before mapper/driver are destroyed. @@ -2395,9 +2393,6 @@ int do_rm_omap(ObjectStore *store, coll_t coll, { ObjectStore::Transaction tran; ObjectStore::Transaction *t = &tran; - set keys; - - keys.insert(key); if (debug) cerr << "Rm_omap " << ghobj << std::endl; @@ -2405,7 +2400,7 @@ int do_rm_omap(ObjectStore *store, coll_t coll, if (dry_run) return 0; - t->omap_rmkeys(coll, ghobj, keys); + t->omap_rmkey(coll, ghobj, key); auto ch = store->open_collection(coll); store->queue_transaction(ch, std::move(*t)); -- 2.39.5