pub struct ShardManifest {
pub shard_id: Option<Uuid>,
pub version: u64,
pub shard_spec_id: u32,
pub writer_epoch: u64,
pub replay_after_wal_entry_position: u64,
pub wal_entry_position_last_seen: u64,
pub current_generation: u64,
pub flushed_generations: Vec<FlushedGeneration>,
}Expand description
Shard manifest containing epoch-based fencing and WAL state. Each shard has exactly one active writer at any time.
Fields§
§shard_id: Option<Uuid>Shard identifier (UUID v4).
version: u64Manifest version number. Matches the version encoded in the filename.
shard_spec_id: u32Shard spec ID this shard was created with. Set at shard creation and immutable thereafter. A value of 0 indicates a manually-created shard not governed by any spec.
writer_epoch: u64Writer fencing token - monotonically increasing. A writer must increment this when claiming the shard.
replay_after_wal_entry_position: u64The most recent WAL entry position (0-based) that has been flushed to a MemTable. During recovery, replay starts from replay_after_wal_entry_position + 1.
wal_entry_position_last_seen: u64The most recent WAL entry position (0-based) at the time manifest was updated. This is a hint, not authoritative - recovery must list files to find actual state.
current_generation: u64Next generation ID to create (incremented after each MemTable flush).
flushed_generations: Vec<FlushedGeneration>List of flushed MemTable generations and their directory paths.
Trait Implementations§
Source§impl Clone for ShardManifest
impl Clone for ShardManifest
Source§fn clone(&self) -> ShardManifest
fn clone(&self) -> ShardManifest
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 ShardManifest
impl Debug for ShardManifest
Source§impl Default for ShardManifest
impl Default for ShardManifest
Source§impl Message for ShardManifest
impl Message for ShardManifest
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl Name for ShardManifest
impl Name for ShardManifest
Source§const NAME: &'static str = "ShardManifest"
const NAME: &'static str = "ShardManifest"
Message.
This name is the same as it appears in the source .proto file, e.g. FooBar.Source§const PACKAGE: &'static str = "lance.table"
const PACKAGE: &'static str = "lance.table"
., e.g. google.protobuf.Source§fn full_name() -> String
fn full_name() -> String
Message.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.Source§impl PartialEq for ShardManifest
impl PartialEq for ShardManifest
Source§fn eq(&self, other: &ShardManifest) -> bool
fn eq(&self, other: &ShardManifest) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ShardManifest
Auto Trait Implementations§
impl Freeze for ShardManifest
impl RefUnwindSafe for ShardManifest
impl Send for ShardManifest
impl Sync for ShardManifest
impl Unpin for ShardManifest
impl UnsafeUnpin for ShardManifest
impl UnwindSafe for ShardManifest
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more