Struct scylla::transport::load_balancing::DefaultPolicy

source ·
pub struct DefaultPolicy { /* private fields */ }
Expand description

The default load balancing policy.

It can be configured to be datacenter-aware, rack-aware and token-aware. Datacenter failover (sending query to a node from a remote datacenter) for queries with non local consistency mode is also supported.

Latency awareness is available, although not recommended: the penalisation mechanism it involves may interact badly with other mechanisms, such as LWT optimisation. Also, the very tactics of penalising nodes for recently measures latencies is believed to not be very stable and beneficial. The number of in-flight requests, for instance, seems to be a better metric showing how (over)loaded a target node/shard is. For now, however, we don’t have an implementation of the in-flight-requests-aware policy.

Implementations§

source§

impl DefaultPolicy

source

pub fn builder() -> DefaultPolicyBuilder

Creates a builder used to customise configuration of a new DefaultPolicy.

Trait Implementations§

source§

impl Debug for DefaultPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for DefaultPolicy

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl LoadBalancingPolicy for DefaultPolicy

source§

fn pick<'a>( &'a self, query: &'a RoutingInfo<'_>, cluster: &'a ClusterData, ) -> Option<(NodeRef<'a>, Option<Shard>)>

Returns the first node to contact for a given query.
source§

fn fallback<'a>( &'a self, query: &'a RoutingInfo<'_>, cluster: &'a ClusterData, ) -> FallbackPlan<'a>

Returns all contact-appropriate nodes for a given query.
source§

fn name(&self) -> String

Returns the name of load balancing policy.
source§

fn on_query_success( &self, _routing_info: &RoutingInfo<'_>, latency: Duration, node: NodeRef<'_>, )

Invoked each time a query succeeds.
source§

fn on_query_failure( &self, _routing_info: &RoutingInfo<'_>, latency: Duration, node: NodeRef<'_>, error: &QueryError, )

Invoked each time a query fails.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> ErasedDestructor for T
where T: 'static,