From 495f6c3fd9760cbfec6f1c7397917d4264ec5a69 Mon Sep 17 00:00:00 2001 From: Martin Sumner Date: Mon, 20 Nov 2017 20:31:13 +0000 Subject: [PATCH] Re-introduce missing shortcut Can't discover missing keys sooner by reporting missing on a zero hash. --- src/leveled_cdb.erl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/leveled_cdb.erl b/src/leveled_cdb.erl index 00d3d80..6c71071 100644 --- a/src/leveled_cdb.erl +++ b/src/leveled_cdb.erl @@ -1368,6 +1368,8 @@ search_hash_table(Handle, UpdTimings = update_fetchtimings(Timings, CycleCount), {UpdTimings, KV} end; + 0 -> + {Timings, missing}; _ -> search_hash_table(Handle, {FirstHashPosition, @@ -1850,6 +1852,13 @@ cyclecount_test() -> lists:foreach(fun({K, V}) -> ?assertMatch({K, V}, cdb_get(P2, K)) end, KVL2), + % Test many missing keys + lists:foreach(fun(X) -> + K = "NotKey" ++ integer_to_list(X), + ?assertMatch(missing, cdb_get(P2, K)) + end, + lists:seq(1, 5000)), + ok = cdb_close(P2), ok = file:delete("../test/cycle_count.cdb").