pub struct ConsistentHashRing { /* private fields */ }Expand description
Consistent hash ring for shard assignment
Implementations§
Source§impl ConsistentHashRing
impl ConsistentHashRing
Sourcepub fn new(config: ShardingConfig) -> Self
pub fn new(config: ShardingConfig) -> Self
Create a new consistent hash ring
Sourcepub fn get_shard(&self, vector_id: &str) -> ShardAssignment
pub fn get_shard(&self, vector_id: &str) -> ShardAssignment
Get the shard assignment for a vector ID
Sourcepub fn get_shards_batch(
&self,
vector_ids: &[String],
) -> HashMap<u32, Vec<String>>
pub fn get_shards_batch( &self, vector_ids: &[String], ) -> HashMap<u32, Vec<String>>
Get shards for a batch of vector IDs
Sourcepub fn register_shard_nodes(&mut self, shard_id: u32, node_ids: Vec<String>)
pub fn register_shard_nodes(&mut self, shard_id: u32, node_ids: Vec<String>)
Register nodes for a shard
Sourcepub fn get_all_shards(&self) -> Vec<u32>
pub fn get_all_shards(&self) -> Vec<u32>
Get all shard IDs
Sourcepub fn get_partition_info(&self) -> Vec<PartitionInfo>
pub fn get_partition_info(&self) -> Vec<PartitionInfo>
Get partition info for all shards
Trait Implementations§
Source§impl Clone for ConsistentHashRing
impl Clone for ConsistentHashRing
Source§fn clone(&self) -> ConsistentHashRing
fn clone(&self) -> ConsistentHashRing
Returns a duplicate of the value. Read more
1.0.0 · 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 ConsistentHashRing
impl RefUnwindSafe for ConsistentHashRing
impl Send for ConsistentHashRing
impl Sync for ConsistentHashRing
impl Unpin for ConsistentHashRing
impl UnsafeUnpin for ConsistentHashRing
impl UnwindSafe for ConsistentHashRing
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
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