From: Pan Liu Date: Mon, 7 Aug 2017 14:21:57 +0000 (+0800) Subject: kv/RocksDBStore: extract common code from set function. X-Git-Tag: v13.0.0~128^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6b86ca6b810757b71b4f8acc92ff4e23e2ec8ccf;p=ceph.git kv/RocksDBStore: extract common code from set function. Signed-off-by: Pan Liu --- diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index a13c47291c86..2c604ea95a94 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -610,13 +610,11 @@ RocksDBStore::RocksDBTransactionImpl::RocksDBTransactionImpl(RocksDBStore *_db) db = _db; } -void RocksDBStore::RocksDBTransactionImpl::set( - const string &prefix, - const string &k, +static void put_bat( + rocksdb::WriteBatch& bat, + const string &key, const bufferlist &to_set_bl) { - string key = combine_strings(prefix, k); - // bufferlist::c_str() is non-constant, so we can't call c_str() if (to_set_bl.is_contiguous() && to_set_bl.length() > 0) { bat.Put(rocksdb::Slice(key), @@ -630,6 +628,16 @@ void RocksDBStore::RocksDBTransactionImpl::set( } } +void RocksDBStore::RocksDBTransactionImpl::set( + const string &prefix, + const string &k, + const bufferlist &to_set_bl) +{ + string key = combine_strings(prefix, k); + + put_bat(bat, key, to_set_bl); +} + void RocksDBStore::RocksDBTransactionImpl::set( const string &prefix, const char *k, size_t keylen, @@ -638,17 +646,7 @@ void RocksDBStore::RocksDBTransactionImpl::set( string key; combine_strings(prefix, k, keylen, &key); - // bufferlist::c_str() is non-constant, so we can't call c_str() - if (to_set_bl.is_contiguous() && to_set_bl.length() > 0) { - bat.Put(rocksdb::Slice(key), - rocksdb::Slice(to_set_bl.buffers().front().c_str(), - to_set_bl.length())); - } else { - rocksdb::Slice key_slice(key); - vector value_slices(to_set_bl.buffers().size()); - bat.Put(nullptr, rocksdb::SliceParts(&key_slice, 1), - prepare_sliceparts(to_set_bl, &value_slices)); - } + put_bat(bat, key, to_set_bl); } void RocksDBStore::RocksDBTransactionImpl::rmkey(const string &prefix,