--- a/src/os/LevelDBStore.cc +++ b/src/os/LevelDBStore.cc @@ -156,9 +156,8 @@ void LevelDBStore::LevelDBTransactionImpl::set( buffers.push_back(to_set_bl); bufferlist &bl = *(buffers.rbegin()); string key = combine_strings(prefix, k); - keys.push_back(key); - bat.Delete(leveldb::Slice(*(keys.rbegin()))); - bat.Put(leveldb::Slice(*(keys.rbegin())), + bat.Delete(leveldb::Slice(key)); + bat.Put(leveldb::Slice(key), leveldb::Slice(bl.c_str(), bl.length())); } @@ -166,8 +165,7 @@ void LevelDBStore::LevelDBTransactionImpl::rmkey(const string &prefix, const string &k) { string key = combine_strings(prefix, k); - keys.push_back(key); - bat.Delete(leveldb::Slice(*(keys.rbegin()))); + bat.Delete(leveldb::Slice(key)); } void LevelDBStore::LevelDBTransactionImpl::rmkeys_by_prefix(const string &prefix) @@ -177,8 +175,7 @@ void LevelDBStore::LevelDBTransactionImpl::rmkeys_by_prefix(const string &prefix it->valid(); it->next()) { string key = combine_strings(prefix, it->key()); - keys.push_back(key); - bat.Delete(*(keys.rbegin())); + bat.Delete(key); } } diff --git a/src/os/LevelDBStore.h b/src/os/LevelDBStore.h index 4617c5c..dd248dd 100644 --- a/src/os/LevelDBStore.h +++ b/src/os/LevelDBStore.h @@ -175,7 +175,6 @@ public: public: leveldb::WriteBatch bat; list buffers; - list keys; LevelDBStore *db; LevelDBTransactionImpl(LevelDBStore *db) : db(db) {}