From: Jianjian Huo Date: Mon, 4 Apr 2016 21:44:53 +0000 (-0700) Subject: kv/RocksDBStore: implement rm_single_delete X-Git-Tag: v11.0.0~826^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2089cff5b516d5d579f416c4d311d668fe707b1c;p=ceph.git kv/RocksDBStore: implement rm_single_delete Use SingleDelete to delete keys which were never overwritten. Signed-off-by: Jianjian Huo --- diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index bd0acd6ad40f..d8be1fe5dc08 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -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); diff --git a/src/kv/RocksDBStore.h b/src/kv/RocksDBStore.h index 79897248c4dd..4953ac0d02ee 100644 --- a/src/kv/RocksDBStore.h +++ b/src/kv/RocksDBStore.h @@ -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() {