Search the loader's mock cache .. (#354)
... in the correct direction - otherwise frequently updated objects may not be indexed correctly on reload.
This commit is contained in:
parent
4ec8d3e25c
commit
70ebb62a61
2 changed files with 81 additions and 16 deletions
|
@ -2281,7 +2281,7 @@ recalcfor_ledgercache(_InkTag,
|
|||
case check_in_ledgercache(LK, KeyH, LedgerCache, loader) of
|
||||
false ->
|
||||
leveled_penciller:pcl_fetch(Penciller, LK, KeyH, true);
|
||||
{value, KV} ->
|
||||
KV ->
|
||||
KV
|
||||
end,
|
||||
OldMetadata =
|
||||
|
@ -2341,7 +2341,7 @@ addto_ledgercache({H, SQN, KeyChanges}, Cache, loader) ->
|
|||
leveled_codec:segment_hash(),
|
||||
ledger_cache(),
|
||||
loader) ->
|
||||
false | {value, leveled_codec:ledger_kv()}.
|
||||
false | leveled_codec:ledger_kv().
|
||||
%% @doc
|
||||
%% Check the ledger cache for a Key, when the ledger cache is in loader mode
|
||||
%% and so is populating a queue not an ETS table
|
||||
|
@ -2350,18 +2350,9 @@ check_in_ledgercache(PK, Hash, Cache, loader) ->
|
|||
[] ->
|
||||
false;
|
||||
_ ->
|
||||
search(fun({K,_V}) -> K == PK end,
|
||||
lists:reverse(Cache#ledger_cache.load_queue))
|
||||
lists:keyfind(PK, 1, Cache#ledger_cache.load_queue)
|
||||
end.
|
||||
|
||||
-spec search(fun((any()) -> boolean()), list()) -> {value, any()}|false.
|
||||
search(Pred, [Hd|Tail]) ->
|
||||
case Pred(Hd) of
|
||||
true -> {value, Hd};
|
||||
false -> search(Pred, Tail)
|
||||
end;
|
||||
search(Pred, []) when is_function(Pred, 1) ->
|
||||
false.
|
||||
|
||||
-spec maybepush_ledgercache(integer(), ledger_cache(), pid())
|
||||
-> {ok|returned, ledger_cache()}.
|
||||
|
@ -3302,10 +3293,6 @@ sqnorder_mutatefold_test() ->
|
|||
|
||||
ok = book_destroy(Bookie1).
|
||||
|
||||
search_test() ->
|
||||
?assertMatch({value, 5}, search(fun(X) -> X == 5 end, lists:seq(1, 10))),
|
||||
?assertMatch(false, search(fun(X) -> X == 55 end, lists:seq(1, 10))).
|
||||
|
||||
check_notfound_test() ->
|
||||
ProbablyFun = fun() -> probably end,
|
||||
MissingFun = fun() -> missing end,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue