pub struct SplitPolicy {
pub max_whole_move_bytes: u64,
pub hot_traffic_threshold: u64,
}Expand description
The thresholds that decide whether a range is small enough to move whole or must be split first.
The two are independent and either trips a split: a range can be small on disk yet a traffic hotspot, or quiet yet too large to copy and cut over as one unit. Splitting in either case lets the move shed only a subrange instead of relocating the whole load at once.
Fields§
§max_whole_move_bytes: u64A range strictly above this many bytes is “large” — too big to copy and cut over whole, so it is split and only a subrange moves.
hot_traffic_threshold: u64A range serving at or above this much read+write traffic in the observation window is “hot” — split so the move relocates only part of the traffic.
Trait Implementations§
Source§impl Clone for SplitPolicy
impl Clone for SplitPolicy
Source§fn clone(&self) -> SplitPolicy
fn clone(&self) -> SplitPolicy
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 moreimpl Copy for SplitPolicy
Source§impl Debug for SplitPolicy
impl Debug for SplitPolicy
Source§impl Default for SplitPolicy
impl Default for SplitPolicy
Source§fn default() -> SplitPolicy
fn default() -> SplitPolicy
Returns the “default value” for a type. Read more
impl Eq for SplitPolicy
Source§impl PartialEq for SplitPolicy
impl PartialEq for SplitPolicy
Source§fn eq(&self, other: &SplitPolicy) -> bool
fn eq(&self, other: &SplitPolicy) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SplitPolicy
Auto Trait Implementations§
impl Freeze for SplitPolicy
impl RefUnwindSafe for SplitPolicy
impl Send for SplitPolicy
impl Sync for SplitPolicy
impl Unpin for SplitPolicy
impl UnsafeUnpin for SplitPolicy
impl UnwindSafe for SplitPolicy
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request