pub struct ConsistentHashAssigner {
pub vnodes_per_core: u32,
pub seed: u64,
}Expand description
Consistent-hash based partition assigner.
Uses virtual nodes proportional to each node’s core count for weighted distribution. The hash ring is deterministic given the same set of nodes (fixed seed).
Fields§
§vnodes_per_core: u32Number of virtual nodes per core.
seed: u64Fixed seed for deterministic hashing.
Implementations§
Trait Implementations§
Source§impl Debug for ConsistentHashAssigner
impl Debug for ConsistentHashAssigner
Source§impl Default for ConsistentHashAssigner
impl Default for ConsistentHashAssigner
Source§impl PartitionAssigner for ConsistentHashAssigner
impl PartitionAssigner for ConsistentHashAssigner
Source§fn initial_assignment(
&self,
num_partitions: u32,
nodes: &[NodeInfo],
constraints: &AssignmentConstraints,
) -> AssignmentPlan
fn initial_assignment( &self, num_partitions: u32, nodes: &[NodeInfo], constraints: &AssignmentConstraints, ) -> AssignmentPlan
Generate an initial assignment for the given number of partitions.
Source§fn rebalance(
&self,
current: &HashMap<u32, NodeId>,
nodes: &[NodeInfo],
constraints: &AssignmentConstraints,
) -> AssignmentPlan
fn rebalance( &self, current: &HashMap<u32, NodeId>, nodes: &[NodeInfo], constraints: &AssignmentConstraints, ) -> AssignmentPlan
Generate a rebalance plan given the current assignments and new node set.
Source§fn validate_plan(
&self,
plan: &AssignmentPlan,
nodes: &[NodeInfo],
constraints: &AssignmentConstraints,
) -> Vec<String>
fn validate_plan( &self, plan: &AssignmentPlan, nodes: &[NodeInfo], constraints: &AssignmentConstraints, ) -> Vec<String>
Validate that an assignment plan satisfies the given constraints.
Auto Trait Implementations§
impl Freeze for ConsistentHashAssigner
impl RefUnwindSafe for ConsistentHashAssigner
impl Send for ConsistentHashAssigner
impl Sync for ConsistentHashAssigner
impl Unpin for ConsistentHashAssigner
impl UnsafeUnpin for ConsistentHashAssigner
impl UnwindSafe for ConsistentHashAssigner
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.