I find the reason of it, but I don't understand why don't find key with going to disk.
Status DBImpl::GetImpl( ...) {
...
if (!done) {
//s = Status::TryAgain(); // don't go to disk. See what happens with the latency
//return s;
PERF_TIMER_GUARD(get_from_output_files_time);
sv->current->Get(read_options, lkey, pinnable_val, &s, &merge_context,
&range_del_agg, value_found);
RecordTick(stats_, MEMTABLE_MISS);
s = Status::TryAgain();
//READ from DISK <-- shouldn't do this. Should return and re-schedule in a different queue.
}
...
}
I find the reason of it, but I don't understand why don't find key with going to disk.
remove
s = Status::TryAgain();
can run normally.