]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
use omap_rmkey() where appropriate
authorSage Weil <sage@redhat.com>
Mon, 13 Jan 2020 13:56:38 +0000 (07:56 -0600)
committerKefu Chai <kchai@redhat.com>
Tue, 14 Jan 2020 06:25:20 +0000 (14:25 +0800)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/FuseStore.cc
src/osd/OSD.cc
src/test/objectstore/ObjectStoreTransactionBenchmark.cc
src/test/objectstore/store_test.cc
src/tools/ceph_objectstore_tool.cc

index 02ea9fdcbdfe4cceb54918ad6a514373ba1151e7..2fcfb6cac1cbc5478e6a28b00c367c9cc2ad4efe 100644 (file)
@@ -1008,9 +1008,7 @@ static int os_unlink(const char *path)
   switch (f) {
   case FN_OBJECT_OMAP_VAL:
     {
-      set<string> keys;
-      keys.insert(key);
-      t.omap_rmkeys(cid, oid, keys);
+      t.omap_rmkey(cid, oid, key);
     }
     break;
 
index 6d82e52e19ce76d92f917837faecdd3267e43af6..9b1e86e820fbb5362b7659acf6954ccb2ee123af 100644 (file)
@@ -6001,11 +6001,9 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store,
         ss << "ok";
     } else if (command == "rmomapkey") {
       string key;
-      set<string> 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;
index 5e248cbe21f4d1d7a94fd97841007589128afc4d..414608e042028feb3bf39ec527078ca4571a099d 100644 (file)
@@ -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<string> &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<string, bufferlist> pglog_attrset;
         map<string, bufferlist> info_attrset;
-        set<string> 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) {
index 6a460a3ab10bf699446bff20fe9ee1b948bfa955..f296a61711d7387ad5fdf0e0adc73c200e334574 100644 (file)
@@ -5099,9 +5099,7 @@ TEST_P(StoreTest, OMapTest) {
     }
 
     string to_remove = attrs.begin()->first;
-    set<string> 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);
 
index 229c9f628eee1e0ea0970e481fcd93297dbe4f96..77c929feb510e6ac3db70ac302760786c008aa24 100644 (file)
@@ -1972,9 +1972,7 @@ int ObjectStoreTool::do_import(ObjectStore *store, OSDSuperblock& sb,
     cerr << "done, clearing removal flag" << std::endl;
 
   if (!dry_run) {
-    set<string> 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<string> 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));