Struct mz_persist_client::cli::args::ReadOnly
source · struct ReadOnly<T> {
store: T,
ignored_write: AtomicBool,
}
Expand description
Wrap a lower-level service (Blob or Consensus) to make it read only. This is probably not elaborate enough to work in general – folks may expect to read their own writes, among other things – but it should handle the case of GC, where all reads finish before the writes begin.
Fields§
§store: T
§ignored_write: AtomicBool
Implementations§
Trait Implementations§
source§impl Blob for ReadOnly<Arc<dyn Blob>>
impl Blob for ReadOnly<Arc<dyn Blob>>
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 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. Read more
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. Read more
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. Read more
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 Consensus for ReadOnly<Arc<dyn Consensus>>
impl Consensus for ReadOnly<Arc<dyn Consensus>>
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<T> !Freeze for ReadOnly<T>
impl<T> RefUnwindSafe for ReadOnly<T>where
T: RefUnwindSafe,
impl<T> Send for ReadOnly<T>where
T: Send,
impl<T> Sync for ReadOnly<T>where
T: Sync,
impl<T> Unpin for ReadOnly<T>where
T: Unpin,
impl<T> UnwindSafe for ReadOnly<T>where
T: UnwindSafe,
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
.