pub struct ColumnarEngineSnapshot {
pub collection: String,
pub schema: ColumnarSchema,
pub memtable_columns: Vec<ColumnDataSnapshot>,
pub memtable_surrogates: Vec<Option<Surrogate>>,
pub pk_index_bytes: Vec<u8>,
pub delete_bitmaps: Vec<(u64, Vec<u8>)>,
pub memtable_delete_bitmap_bytes: Vec<u8>,
pub flushed_segments: Vec<Vec<u8>>,
pub flushed_surrogates: FlushedSurrogateTable,
pub next_segment_id: u64,
pub memtable_segment_id: u64,
pub memtable_row_counter: u32,
}Expand description
Complete serialisable snapshot of one MutationEngine instance.
Map-encoded (#[msgpack(map)]) so new fields can be added with
#[msgpack(default)] / #[serde(default)] and older snapshots
decode without a migration — new optional fields should carry
#[msgpack(default)] and #[serde(default)] and their type must
implement Default.
Fields§
§collection: StringCollection name.
schema: ColumnarSchemaSchema at export time.
memtable_columns: Vec<ColumnDataSnapshot>Projected memtable columns (parallel to schema.columns).
memtable_surrogates: Vec<Option<Surrogate>>Per-row surrogates (parallel to memtable rows).
pk_index_bytes: Vec<u8>Serialised PkIndex bytes (via PkIndex::to_bytes()).
delete_bitmaps: Vec<(u64, Vec<u8>)>Serialised delete bitmaps for FLUSHED segments only.
Excludes the entry keyed by memtable_segment_id; that is
stored separately in memtable_delete_bitmap_bytes.
memtable_delete_bitmap_bytes: Vec<u8>Serialised delete bitmap for the memtable’s virtual segment, or empty bytes if no rows have been deleted from the memtable.
flushed_segments: Vec<Vec<u8>>Raw NDBS segment blobs for every flushed segment, in segment-ID order (index 0 == segment_id 1 by convention).
flushed_surrogates: FlushedSurrogateTablePer-row cross-engine surrogates for each flushed segment, parallel to
flushed_segments (outer index == segment index, segment_id == index+1;
inner Vec is per-row). Empty when decoded from a pre-surrogate snapshot.
next_segment_id: u64Next segment ID to be assigned on flush.
memtable_segment_id: u64Virtual segment ID currently used for memtable rows.
memtable_row_counter: u32Row counter within the current memtable (resets on flush).
Trait Implementations§
Source§impl Clone for ColumnarEngineSnapshot
impl Clone for ColumnarEngineSnapshot
Source§fn clone(&self) -> ColumnarEngineSnapshot
fn clone(&self) -> ColumnarEngineSnapshot
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 ColumnarEngineSnapshot
impl Debug for ColumnarEngineSnapshot
Source§impl<'de> Deserialize<'de> for ColumnarEngineSnapshot
impl<'de> Deserialize<'de> for ColumnarEngineSnapshot
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<'__msgpack_de> FromMessagePack<'__msgpack_de> for ColumnarEngineSnapshot
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for ColumnarEngineSnapshot
Source§impl Serialize for ColumnarEngineSnapshot
impl Serialize for ColumnarEngineSnapshot
Auto Trait Implementations§
impl Freeze for ColumnarEngineSnapshot
impl RefUnwindSafe for ColumnarEngineSnapshot
impl Send for ColumnarEngineSnapshot
impl Sync for ColumnarEngineSnapshot
impl Unpin for ColumnarEngineSnapshot
impl UnsafeUnpin for ColumnarEngineSnapshot
impl UnwindSafe for ColumnarEngineSnapshot
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>,
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,
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.