pub struct GossipDiscovery { /* private fields */ }Expand description
Gossip-based discovery using the chitchat protocol.
Implementations§
Source§impl GossipDiscovery
impl GossipDiscovery
Sourcepub fn new(config: GossipDiscoveryConfig) -> Self
pub fn new(config: GossipDiscoveryConfig) -> Self
Create a new gossip discovery instance.
Sourcepub fn chitchat_handle(&self) -> Option<&ChitchatHandle>
pub fn chitchat_handle(&self) -> Option<&ChitchatHandle>
Borrow the underlying chitchat handle, if the discovery has been started. Enables other cluster components (barrier coordinator, shuffle peer registry) to share the same chitchat instance rather than spawning their own.
Source§impl GossipDiscovery
impl GossipDiscovery
Sourcepub async fn start_with_transport<T>(
&mut self,
transport: &T,
) -> Result<(), DiscoveryError>where
T: Transport,
pub async fn start_with_transport<T>(
&mut self,
transport: &T,
) -> Result<(), DiscoveryError>where
T: Transport,
Start with a caller-provided chitchat transport. Test harnesses
use this to inject a filtering / fault-injecting transport
wrapper (see
cluster::testing::PartitionableTransport).
The regular Discovery::start just delegates here with a
default UdpTransport.
§Errors
Same as Discovery::start.
§Panics
Panics via unwrap on an internal assertion if called twice
concurrently from the same GossipDiscovery — the started
flag check makes the second call a no-op.
Trait Implementations§
Source§impl Debug for GossipDiscovery
impl Debug for GossipDiscovery
Source§impl Discovery for GossipDiscovery
impl Discovery for GossipDiscovery
Source§async fn start(&mut self) -> Result<(), DiscoveryError>
async fn start(&mut self) -> Result<(), DiscoveryError>
Start the discovery service. Read more
Source§async fn peers(&self) -> Result<Vec<NodeInfo>, DiscoveryError>
async fn peers(&self) -> Result<Vec<NodeInfo>, DiscoveryError>
Get the current set of known peers (excluding self).
Source§async fn announce(&self, info: NodeInfo) -> Result<(), DiscoveryError>
async fn announce(&self, info: NodeInfo) -> Result<(), DiscoveryError>
Announce this node’s updated information to the cluster.
Auto Trait Implementations§
impl Freeze for GossipDiscovery
impl !RefUnwindSafe for GossipDiscovery
impl Send for GossipDiscovery
impl Sync for GossipDiscovery
impl Unpin for GossipDiscovery
impl UnsafeUnpin for GossipDiscovery
impl !UnwindSafe for GossipDiscovery
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.