From: Xiaoxi Chen Date: Wed, 10 Jun 2015 04:49:45 +0000 (+0800) Subject: os/LevelDBStore:Drop buffer_list and key_list in transaction. X-Git-Tag: v9.0.3~101^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=42a3ab95ec459042e92198fb061c8393146bd1b4;p=ceph.git os/LevelDBStore:Drop buffer_list and key_list in transaction. We dont need to keep this inside the transaction. Signed-off-by: Xiaoxi Chen --- diff --git a/src/os/LevelDBStore.cc b/src/os/LevelDBStore.cc index a56cd21ad87e..1aaa168a3464 100644 --- a/src/os/LevelDBStore.cc +++ b/src/os/LevelDBStore.cc @@ -162,21 +162,19 @@ void LevelDBStore::LevelDBTransactionImpl::set( const string &k, const bufferlist &to_set_bl) { - 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())), - leveldb::Slice(bl.c_str(), bl.length())); + //bufferlist::c_str() is non-constant, so we need to make a copy + bufferlist val = to_set_bl; + bat.Delete(leveldb::Slice(key)); + bat.Put(leveldb::Slice(key), + leveldb::Slice(val.c_str(), val.length())); } 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) @@ -186,8 +184,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 ae23fdd0cfac..06ea071b4a40 100644 --- a/src/os/LevelDBStore.h +++ b/src/os/LevelDBStore.h @@ -177,10 +177,7 @@ public: class LevelDBTransactionImpl : public KeyValueDB::TransactionImpl { public: leveldb::WriteBatch bat; - list buffers; - list keys; LevelDBStore *db; - LevelDBTransactionImpl(LevelDBStore *db) : db(db) {} void set( const string &prefix,