pub struct CloneOrigin {
pub source_database: DatabaseId,
pub source_collection: String,
pub as_of_lsn: Lsn,
pub clone_created_at: Lsn,
pub kv_surrogate_ceiling: Option<u32>,
}Expand description
Identifies the source of a copy-on-write database clone.
Stored on each cloned StoredCollection; the read and write planners
consult it to decide whether source delegation is needed.
Fields§
§source_database: DatabaseIdThe source database this collection was cloned from.
source_collection: StringCollection name in the source database (scoped to source_database).
as_of_lsn: LsnWAL LSN up to which source rows are delegated on reads.
Rows in the source with LSN > as_of_lsn are invisible through
this clone regardless of query time.
clone_created_at: LsnWAL LSN at the moment this clone was created. Used to detect bitemporal queries that pre-date the clone.
kv_surrogate_ceiling: Option<u32>Surrogate high-water captured from the source’s SurrogateAssigner
at clone-create time. KV bindings allocated AFTER this value
belong strictly to source-side writes that must not be visible
from the resulting clone — the lazy KV read path uses this
ceiling to filter source-delegated rows. None on legacy clones
created before this field existed (no isolation enforced —
matches the prior behaviour).
Trait Implementations§
Source§impl Archive for CloneOrigin
impl Archive for CloneOrigin
Source§const COPY_OPTIMIZATION: CopyOptimization<Self>
const COPY_OPTIMIZATION: CopyOptimization<Self>
serialize. Read moreSource§type Archived = ArchivedCloneOrigin
type Archived = ArchivedCloneOrigin
Source§type Resolver = CloneOriginResolver
type Resolver = CloneOriginResolver
Source§impl Clone for CloneOrigin
impl Clone for CloneOrigin
Source§fn clone(&self) -> CloneOrigin
fn clone(&self) -> CloneOrigin
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CloneOrigin
impl Debug for CloneOrigin
Source§impl<'de> Deserialize<'de> for CloneOrigin
impl<'de> Deserialize<'de> for CloneOrigin
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>,
Source§impl<__D: Fallible + ?Sized> Deserialize<CloneOrigin, __D> for Archived<CloneOrigin>where
DatabaseId: Archive,
<DatabaseId as Archive>::Archived: Deserialize<DatabaseId, __D>,
String: Archive,
<String as Archive>::Archived: Deserialize<String, __D>,
Lsn: Archive,
<Lsn as Archive>::Archived: Deserialize<Lsn, __D>,
Option<u32>: Archive,
<Option<u32> as Archive>::Archived: Deserialize<Option<u32>, __D>,
impl<__D: Fallible + ?Sized> Deserialize<CloneOrigin, __D> for Archived<CloneOrigin>where
DatabaseId: Archive,
<DatabaseId as Archive>::Archived: Deserialize<DatabaseId, __D>,
String: Archive,
<String as Archive>::Archived: Deserialize<String, __D>,
Lsn: Archive,
<Lsn as Archive>::Archived: Deserialize<Lsn, __D>,
Option<u32>: Archive,
<Option<u32> as Archive>::Archived: Deserialize<Option<u32>, __D>,
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<CloneOrigin, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<CloneOrigin, <__D as Fallible>::Error>
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for CloneOrigin
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for CloneOrigin
Source§impl PartialEq for CloneOrigin
impl PartialEq for CloneOrigin
Source§fn eq(&self, other: &CloneOrigin) -> bool
fn eq(&self, other: &CloneOrigin) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for CloneOrigin
impl Serialize for CloneOrigin
Source§impl ToMessagePack for CloneOrigin
impl ToMessagePack for CloneOrigin
impl Eq for CloneOrigin
impl StructuralPartialEq for CloneOrigin
Auto Trait Implementations§
impl Freeze for CloneOrigin
impl RefUnwindSafe for CloneOrigin
impl Send for CloneOrigin
impl Sync for CloneOrigin
impl Unpin for CloneOrigin
impl UnsafeUnpin for CloneOrigin
impl UnwindSafe for CloneOrigin
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> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.Source§impl<T, S> SerializeUnsized<S> for T
impl<T, S> SerializeUnsized<S> 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.