|
|
|
@ -313,18 +313,7 @@ Status TableCache::Get(const ReadOptions& options, |
|
|
|
|
t = GetTableReaderFromHandle(handle); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (s.ok()) { |
|
|
|
|
get_context->SetReplayLog(row_cache_entry); // nullptr if no cache.
|
|
|
|
|
s = t->Get(options, k, get_context, skip_filters); |
|
|
|
|
get_context->SetReplayLog(nullptr); |
|
|
|
|
} else if (options.read_tier == kBlockCacheTier && s.IsIncomplete()) { |
|
|
|
|
// Couldn't find Table in cache but treat as kFound if no_io set
|
|
|
|
|
get_context->MarkKeyMayExist(); |
|
|
|
|
s = Status::OK(); |
|
|
|
|
done = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!done && s.ok() && get_context->range_del_agg() != nullptr && |
|
|
|
|
if (s.ok() && get_context->range_del_agg() != nullptr && |
|
|
|
|
!options.ignore_range_deletions) { |
|
|
|
|
std::unique_ptr<InternalIterator> range_del_iter( |
|
|
|
|
t->NewRangeTombstoneIterator(options)); |
|
|
|
@ -336,6 +325,17 @@ Status TableCache::Get(const ReadOptions& options, |
|
|
|
|
std::move(range_del_iter)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (s.ok()) { |
|
|
|
|
get_context->SetReplayLog(row_cache_entry); // nullptr if no cache.
|
|
|
|
|
s = t->Get(options, k, get_context, skip_filters); |
|
|
|
|
get_context->SetReplayLog(nullptr); |
|
|
|
|
} else if (options.read_tier == kBlockCacheTier && s.IsIncomplete()) { |
|
|
|
|
// Couldn't find Table in cache but treat as kFound if no_io set
|
|
|
|
|
get_context->MarkKeyMayExist(); |
|
|
|
|
s = Status::OK(); |
|
|
|
|
done = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef ROCKSDB_LITE |
|
|
|
|
// Put the replay log in row cache only if something was found.
|
|
|
|
|