]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kv/RocksDBStore: implement rm_single_delete
authorJianjian Huo <jianjian.huo@ssi.samsung.com>
Mon, 4 Apr 2016 21:44:53 +0000 (14:44 -0700)
committerJianjian Huo <jianjian.huo@ssi.samsung.com>
Tue, 26 Apr 2016 00:03:07 +0000 (17:03 -0700)
Use SingleDelete to delete keys which were never overwritten.

Signed-off-by: Jianjian Huo <jianjian.huo@ssi.samsung.com>
src/kv/RocksDBStore.cc
src/kv/RocksDBStore.h

index bd0acd6ad40fbfa4b7ea59f7b46d8bd77388e2d2..d8be1fe5dc08d44aa328d4a3f6af5328b8cc1214 100644 (file)
@@ -437,6 +437,12 @@ void RocksDBStore::RocksDBTransactionImpl::rmkey(const string &prefix,
   bat->Delete(combine_strings(prefix, k));
 }
 
+void RocksDBStore::RocksDBTransactionImpl::rm_single_key(const string &prefix,
+                                                        const string &k)
+{
+  bat->SingleDelete(combine_strings(prefix, k));
+}
+
 void RocksDBStore::RocksDBTransactionImpl::rmkeys_by_prefix(const string &prefix)
 {
   KeyValueDB::Iterator it = db->get_iterator(prefix);
index 79897248c4dd0125a0b2029669bf2897216c98be..4953ac0d02eeb63fccacadca1ed89aa093922098 100644 (file)
@@ -147,17 +147,20 @@ public:
     void set(
       const string &prefix,
       const string &k,
-      const bufferlist &bl);
+      const bufferlist &bl) override;
     void rmkey(
       const string &prefix,
-      const string &k);
+      const string &k) override;
+    void rm_single_key(
+      const string &prefix,
+      const string &k) override;
     void rmkeys_by_prefix(
       const string &prefix
-      );
+      ) override;
     void merge(
       const string& prefix,
       const string& k,
-      const bufferlist &bl);
+      const bufferlist &bl) override;
   };
 
   KeyValueDB::Transaction get_transaction() {