pub enum DistributionStrategy {
Broadcast,
RoundRobin,
Discovery {
is_responsive: bool,
},
Tracemap,
}Expand description
How tasks should be distributed to workers
Variants§
Broadcast
Broadcast tasks to all probing workers simultaneously (LACeS, and unicast-only latency)
RoundRobin
Send tasks to probing workers in round-robin fashion (catchment mode)
Discovery
Send discovery tasks round-robin, with follow-up task interleaving (latency, traceroute, responsive modes)
Fields
Tracemap
Seed binary-search trace sessions round-robin, with follow-up task interleaving (tracemap mode)
Implementations§
Source§impl DistributionStrategy
impl DistributionStrategy
Sourcepub fn select(m_def: &ScheduleMeasurement) -> Self
pub fn select(m_def: &ScheduleMeasurement) -> Self
Select the distribution strategy for a measurement definition.
- catchment → RoundRobin: one probe per target
- tracemap → Tracemap
- anycast-traceroute → Discovery: find the catching worker first
- latency with an anycast origin → Discovery: measure from the catching worker
- latency with only unicast origins → Broadcast: every worker measures from its own unicast address (no discovery needed)
- laces → Broadcast
--responsivegates either broadcast probes or multi-target hitlist probing.
Sourcepub fn is_gated_broadcast(&self) -> bool
pub fn is_gated_broadcast(&self) -> bool
Whether follow-up probes are broadcast to all workers, rather than sent by the worker that caught the discovery probe.
Auto Trait Implementations§
impl Freeze for DistributionStrategy
impl RefUnwindSafe for DistributionStrategy
impl Send for DistributionStrategy
impl Sync for DistributionStrategy
impl Unpin for DistributionStrategy
impl UnsafeUnpin for DistributionStrategy
impl UnwindSafe for DistributionStrategy
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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
§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>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].