Don't time fetches due to SQN checks

SQN checks are all background processes
This commit is contained in:
Martin Sumner 2022-03-10 11:42:33 +00:00
parent 656900e9ec
commit fb490b9af7

View file

@ -1450,7 +1450,8 @@ roll_memory(State, true) ->
%% the result tuple includes the level at which the result was found.
timed_fetch_mem(Key, Hash, Manifest, L0Cache, L0Index, Timings) ->
SW = os:timestamp(),
{R, Level} = fetch_mem(Key, Hash, Manifest, L0Cache, L0Index),
{R, Level} =
fetch_mem(Key, Hash, Manifest, L0Cache, L0Index, fun timed_sst_get/4),
UpdTimings = update_timings(SW, Timings, R, Level),
{R, UpdTimings}.
@ -1462,10 +1463,10 @@ timed_fetch_mem(Key, Hash, Manifest, L0Cache, L0Index, Timings) ->
%% Fetch the result from the penciller, starting by looking in the memory,
%% and if it is not found looking down level by level through the LSM tree.
plain_fetch_mem(Key, Hash, Manifest, L0Cache, L0Index) ->
R = fetch_mem(Key, Hash, Manifest, L0Cache, L0Index),
R = fetch_mem(Key, Hash, Manifest, L0Cache, L0Index, fun sst_get/4),
element(1, R).
fetch_mem(Key, Hash, Manifest, L0Cache, L0Index) ->
fetch_mem(Key, Hash, Manifest, L0Cache, L0Index, FetchFun) ->
PosList =
case L0Index of
none ->
@ -1476,7 +1477,7 @@ fetch_mem(Key, Hash, Manifest, L0Cache, L0Index) ->
L0Check = leveled_pmem:check_levelzero(Key, Hash, PosList, L0Cache),
case L0Check of
{false, not_found} ->
fetch(Key, Hash, Manifest, 0, fun timed_sst_get/4);
fetch(Key, Hash, Manifest, 0, FetchFun);
{true, KV} ->
{KV, memory}
end.
@ -1515,6 +1516,9 @@ timed_sst_get(PID, Key, Hash, Level) ->
T0 = timer:now_diff(os:timestamp(), SW),
log_slowfetch(T0, R, PID, Level, ?SLOW_FETCH).
sst_get(PID, Key, Hash, Level) ->
leveled_sst:sst_get(PID, Key, Hash).
log_slowfetch(T0, R, PID, Level, FetchTolerance) ->
case {T0, R} of
{T, R} when T < FetchTolerance ->