pub struct SegmentMetaInfo {
pub num_docs: u32,
pub ancestors: Vec<String>,
pub generation: u32,
pub reordered: bool,
pub bp_converged: bool,
pub bp_unconverged_passes: u32,
}Expand description
Per-segment metadata stored in index metadata This allows merge decisions without loading segment files
Fields§
§num_docs: u32Number of documents in this segment
ancestors: Vec<String>Parent segment IDs that were merged to produce this segment (empty for fresh segments)
generation: u32Merge generation: 0 for fresh segments, max(parent generations) + 1 for merged segments
reordered: boolWhether this segment has been reordered via Recursive Graph Bisection (BP). Fresh segments and block-copy merges are not reordered. Only segments that have been explicitly reordered (via background optimizer or reorder command) are marked true.
bp_converged: boolWhether the last BP reorder pass ran to natural convergence. False when a wall-clock BP budget ended the pass early — the segment is ordered better than before, and a later warm-started pass can deepen it. Old metadata (field absent) deserializes as converged.
bp_unconverged_passes: u32Number of consecutive budget-exhausted BP rewrites in this segment’s current reordered lineage. Carried across replacement IDs so the optimizer can impose a hard follow-up bound instead of rewriting forever.
Trait Implementations§
Source§impl Clone for SegmentMetaInfo
impl Clone for SegmentMetaInfo
Source§fn clone(&self) -> SegmentMetaInfo
fn clone(&self) -> SegmentMetaInfo
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 SegmentMetaInfo
impl Debug for SegmentMetaInfo
Source§impl<'de> Deserialize<'de> for SegmentMetaInfo
impl<'de> Deserialize<'de> for SegmentMetaInfo
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>,
Auto Trait Implementations§
impl Freeze for SegmentMetaInfo
impl RefUnwindSafe for SegmentMetaInfo
impl Send for SegmentMetaInfo
impl Sync for SegmentMetaInfo
impl Unpin for SegmentMetaInfo
impl UnsafeUnpin for SegmentMetaInfo
impl UnwindSafe for SegmentMetaInfo
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
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<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<E> ResultError for E
impl<T> ResultType 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.