pub struct PartitionState {
pub partition: PartitionKey,
pub available_bytes: u64,
pub nodes: Vec<NodeDiskUsage>,
}Expand description
State of one partition that hosts node data: how much space is free and which running nodes live on it (with their measured sizes).
Fields§
§partition: PartitionKey§available_bytes: u64Free bytes available on the partition.
nodes: Vec<NodeDiskUsage>Running nodes whose data directory lives on this partition.
Implementations§
Source§impl PartitionState
impl PartitionState
Sourcepub fn eviction_candidate(&self) -> Option<&NodeDiskUsage>
pub fn eviction_candidate(&self) -> Option<&NodeDiskUsage>
The node that should be evicted first to reclaim space on this partition.
Selection rule: the smallest data directory wins, because evicting a node forces the
network to re-replicate everything it held — so we minimise that cascade by dropping the
node that holds the least. Ties are broken by preferring the newest node (highest id,
least established in the network). Returns None if the partition hosts no nodes.
Trait Implementations§
Source§impl Clone for PartitionState
impl Clone for PartitionState
Source§fn clone(&self) -> PartitionState
fn clone(&self) -> PartitionState
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PartitionState
impl RefUnwindSafe for PartitionState
impl Send for PartitionState
impl Sync for PartitionState
impl Unpin for PartitionState
impl UnsafeUnpin for PartitionState
impl UnwindSafe for PartitionState
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
Mutably borrows from an owned value. Read more
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,
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>
Converts
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>
Converts
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