pub struct VersionedReadEntry {
pub engine: EngineTag,
pub collection: String,
pub key: ReadKeyIdent,
pub read_version: WriteVersion,
pub home_vshard: Option<u32>,
}Expand description
One versioned, predicate-aware read observed by a transaction, carried on
the replicated Calvin TxClass so participants can validate it at the
commit serialization point.
read_version is a data-group log position, so any replica of the read’s
vShard validates it. The enclosing TxClass scopes the tenant;
per-database scoping is carried by the transaction as a whole.
Fields§
§engine: EngineTagWhich engine served the read.
collection: StringThe collection the read observed.
key: ReadKeyIdentPoint-key or collection-scoped-predicate identity of the observation.
read_version: WriteVersionThe version of what the read observed on its home vShard.
home_vshard: Option<u32>The vShard whose write versions validate this read. None homes the
read to its collection’s vShard. A graph read names the key vShard it
read edges on, because edges live on their endpoints’ vShards. A homed
read with an empty collection observed every collection there, so it
validates against the vShard’s latest version.
Trait Implementations§
Source§impl Clone for VersionedReadEntry
impl Clone for VersionedReadEntry
Source§impl Debug for VersionedReadEntry
impl Debug for VersionedReadEntry
Source§impl<'de> Deserialize<'de> for VersionedReadEntry
impl<'de> Deserialize<'de> for VersionedReadEntry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for VersionedReadEntry
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for VersionedReadEntry
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for VersionedReadEntry
Source§impl PartialEq for VersionedReadEntry
impl PartialEq for VersionedReadEntry
Source§impl Serialize for VersionedReadEntry
impl Serialize for VersionedReadEntry
impl StructuralPartialEq for VersionedReadEntry
Source§impl ToMessagePack for VersionedReadEntry
impl ToMessagePack for VersionedReadEntry
Source§fn write<W: Write>(&self, writer: &mut W) -> Result<(), Error>
fn write<W: Write>(&self, writer: &mut W) -> Result<(), Error>
Source§fn size_hint(&self) -> Option<TrustedSizeHint>
fn size_hint(&self) -> Option<TrustedSizeHint>
Self::write, or None when it cannot be determined cheaply. Read moreAuto Trait Implementations§
impl Freeze for VersionedReadEntry
impl RefUnwindSafe for VersionedReadEntry
impl Send for VersionedReadEntry
impl Sync for VersionedReadEntry
impl Unpin for VersionedReadEntry
impl UnsafeUnpin for VersionedReadEntry
impl UnwindSafe for VersionedReadEntry
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> FromMessagePackOwned for Twhere
T: for<'a> FromMessagePack<'a>,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.