mirror of https://github.com/facebook/rocksdb.git
Get() Does Not Reserve space for to_delete memtables
Summary: It seems to be a decision tradeoff in current codes: we make a malloc for every Get() to reduce one malloc for a flush inside mutex. It takes about 5% of CPU time in readrandom tests. We might consider the tradeoff to be the other way around. Test Plan: make all check Reviewers: dhruba, haobo, igor Reviewed By: dhruba CC: leveldb Differential Revision: https://reviews.facebook.net/D14697
This commit is contained in:
parent
417b453fa6
commit
a8b8b11dc4
|
@ -2597,7 +2597,6 @@ Status DBImpl::GetImpl(const ReadOptions& options,
|
|||
StopWatch sw(env_, options_.statistics.get(), DB_GET);
|
||||
SequenceNumber snapshot;
|
||||
std::vector<MemTable*> to_delete;
|
||||
to_delete.reserve(options_.max_write_buffer_number);
|
||||
mutex_.Lock();
|
||||
if (options.snapshot != nullptr) {
|
||||
snapshot = reinterpret_cast<const SnapshotImpl*>(options.snapshot)->number_;
|
||||
|
@ -2665,7 +2664,6 @@ std::vector<Status> DBImpl::MultiGet(const ReadOptions& options,
|
|||
StopWatch sw(env_, options_.statistics.get(), DB_MULTIGET);
|
||||
SequenceNumber snapshot;
|
||||
std::vector<MemTable*> to_delete;
|
||||
to_delete.reserve(options_.max_write_buffer_number);
|
||||
|
||||
mutex_.Lock();
|
||||
if (options.snapshot != nullptr) {
|
||||
|
|
Loading…
Reference in New Issue