Struct mz_persist::location::Tasked
source · pub struct Tasked<A>(pub Arc<A>);
Expand description
Wraps all calls to a backing store in a new tokio task. This adds extra overhead, but insulates the system from callers who fail to drive futures promptly to completion, which can cause timeouts or resource exhaustion in a store.
Tuple Fields§
§0: Arc<A>
Implementations§
Trait Implementations§
source§impl<A: Blob + 'static> Blob for Tasked<A>
impl<A: Blob + 'static> Blob for Tasked<A>
source§fn list_keys_and_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
key_prefix: &'life1 str,
f: &'life2 mut (dyn FnMut(BlobMetadata<'_>) + Send + Sync),
) -> Pin<Box<dyn Future<Output = Result<(), ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_keys_and_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
key_prefix: &'life1 str,
f: &'life2 mut (dyn FnMut(BlobMetadata<'_>) + Send + Sync),
) -> Pin<Box<dyn Future<Output = Result<(), ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
List all of the keys in the map with metadata about the entry.
Can be optionally restricted to only list keys starting with a given prefix.
source§fn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
value: Bytes,
) -> Pin<Box<dyn Future<Output = Result<(), ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
value: Bytes,
) -> Pin<Box<dyn Future<Output = Result<(), ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Inserts a key-value pair into the map.
source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove a key from the map.
Returns Some and the size of the deleted blob if if exists. Succeeds and returns None if it does not exist.
source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SegmentedBytes>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SegmentedBytes>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns a reference to the value corresponding to the key.
source§fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restores a previously-deleted key to the map, if possible. Read more
source§impl<A: Consensus + 'static> Consensus for Tasked<A>
impl<A: Consensus + 'static> Consensus for Tasked<A>
source§fn list_keys(&self) -> ResultStream<'_, String>
fn list_keys(&self) -> ResultStream<'_, String>
Returns all the keys ever created in the consensus store.
source§fn head<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<VersionedData>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn head<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<VersionedData>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns a recent version of
data
, and the corresponding sequence number, if
one exists at this location.source§fn compare_and_set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
expected: Option<SeqNo>,
new: VersionedData,
) -> Pin<Box<dyn Future<Output = Result<CaSResult, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn compare_and_set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
expected: Option<SeqNo>,
new: VersionedData,
) -> Pin<Box<dyn Future<Output = Result<CaSResult, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update the VersionedData stored at this location to
new
, iff the
current sequence number is exactly expected
and new
’s sequence
number > the current sequence number. Read moresource§fn scan<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
from: SeqNo,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<VersionedData>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn scan<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
from: SeqNo,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<VersionedData>, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Return
limit
versions of data stored for this key
at sequence numbers >= from
,
in ascending order of sequence number. Read moresource§fn truncate<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
seqno: SeqNo,
) -> Pin<Box<dyn Future<Output = Result<usize, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn truncate<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
seqno: SeqNo,
) -> Pin<Box<dyn Future<Output = Result<usize, ExternalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deletes all historical versions of the data stored at
key
that are <
seqno
, iff seqno
<= the current sequence number. Read moreAuto Trait Implementations§
impl<A> Freeze for Tasked<A>
impl<A> RefUnwindSafe for Tasked<A>where
A: RefUnwindSafe,
impl<A> Send for Tasked<A>
impl<A> Sync for Tasked<A>
impl<A> Unpin for Tasked<A>
impl<A> UnwindSafe for Tasked<A>where
A: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
Creates a shared type from an unshared type.
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.