Avoid pinning when row cache is accessed

Summary:
With row cache being enabled, table cache is doing a short circuit for reading data. This path needs to be updated to take advantage of pinnable slice. In the meanwhile we disabling pinning in this path.
Closes https://github.com/facebook/rocksdb/pull/2237

Differential Revision: D4982389

Pulled By: maysamyabandeh

fbshipit-source-id: 542630d0cf23cfb1f0c397da82e7053df7966591
This commit is contained in:
Maysam Yabandeh 2017-05-01 17:43:52 -07:00 committed by Facebook Github Bot
parent aeaba07b2a
commit 47a09b0a88

View File

@ -182,7 +182,6 @@ bool GetContext::SaveValue(const ParsedInternalKey& parsed_key,
void replayGetContextLog(const Slice& replay_log, const Slice& user_key, void replayGetContextLog(const Slice& replay_log, const Slice& user_key,
GetContext* get_context) { GetContext* get_context) {
#ifndef ROCKSDB_LITE #ifndef ROCKSDB_LITE
static Cleanable nonToClean;
Slice s = replay_log; Slice s = replay_log;
while (s.size()) { while (s.size()) {
auto type = static_cast<ValueType>(*s.data()); auto type = static_cast<ValueType>(*s.data());
@ -195,8 +194,7 @@ void replayGetContextLog(const Slice& replay_log, const Slice& user_key,
// Since SequenceNumber is not stored and unknown, we will use // Since SequenceNumber is not stored and unknown, we will use
// kMaxSequenceNumber. // kMaxSequenceNumber.
get_context->SaveValue( get_context->SaveValue(
ParsedInternalKey(user_key, kMaxSequenceNumber, type), value, ParsedInternalKey(user_key, kMaxSequenceNumber, type), value, nullptr);
&nonToClean);
} }
#else // ROCKSDB_LITE #else // ROCKSDB_LITE
assert(false); assert(false);