Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
know t k
returns true iff the key is present in the memory table or the disk.
Return value if it is found in-memory, or else on disk. Otherwise fail with error Missing_data
.
val fetch :
t ->
?peer:Tezos_base.P2p_peer.Id.t ->
?timeout:Tezos_base.Time.System.Span.t ->
key ->
param ->
(value, Tezos_error_monad.TzCore.error list) result Lwt.t
fetch t ?peer ?timeout k param
returns the value when it is known. It can fail with Timeout k
if timeout
is provided and the value isn't know before the timeout expires. It can fail with Cancel
if the request is canceled.
The key is first looked up in memory, then on disk. If not present and not already requested, it schedules a request, and blocks until the requester is notified with notify
. param
is used to validate the notified value once it is received. (see also PRECHECK
and notify
).
Requests are re-sent via a 1.5 exponential back-off, with initial delay set to Request.initial_delay
. If the function is called multiple time with the same key but with distinct peers, the internal scheduler randomly chooses the requested peer (at each retry).