public class LatencyAwarePolicy extends Object implements ChainableLoadBalancingPolicy
LatencyAwarePolicy.Builder class and methods for more details on the
possible parameters of this policy.| Modifier and Type | Class and Description |
|---|---|
static class |
LatencyAwarePolicy.Builder
Helper builder object to create a latency aware policy.
|
static class |
LatencyAwarePolicy.Snapshot
An immutable snapshot of the per-host scores (and stats in general)
maintained by
LatencyAwarePolicy to base its decision upon. |
| Modifier and Type | Method and Description |
|---|---|
static LatencyAwarePolicy.Builder |
builder(LoadBalancingPolicy childPolicy)
Creates a new latency aware policy builder given the child policy
that the resulting policy should wrap.
|
void |
close()
Gets invoked at cluster shutdown.
|
HostDistance |
distance(Host host)
Returns the HostDistance for the provided host.
|
LoadBalancingPolicy |
getChildPolicy()
Returns the child policy.
|
LatencyAwarePolicy.Snapshot |
getScoresSnapshot()
Returns a snapshot of the scores (latency averages) maintained by this
policy.
|
void |
init(Cluster cluster,
Collection<Host> hosts)
Initialize this load balancing policy.
|
Iterator<Host> |
newQueryPlan(String loggedKeyspace,
Statement statement)
Returns the hosts to use for a new query.
|
void |
onAdd(Host host)
Called when a new node is added to the cluster.
|
void |
onDown(Host host)
Called when a node is determined to be down.
|
void |
onRemove(Host host)
Called when a node is removed from the cluster.
|
void |
onUp(Host host)
Called when a node is determined to be up.
|
public LoadBalancingPolicy getChildPolicy()
ChainableLoadBalancingPolicygetChildPolicy in interface ChainableLoadBalancingPolicypublic static LatencyAwarePolicy.Builder builder(LoadBalancingPolicy childPolicy)
childPolicy - the load balancing policy to wrap with latency
awareness.public void init(Cluster cluster, Collection<Host> hosts)
LoadBalancingPolicyinit in interface LoadBalancingPolicycluster - the Cluster instance for which the policy is created.hosts - the initial hosts to use.public HostDistance distance(Host host)
distance in interface LoadBalancingPolicyhost - the host of which to return the distance of.host as returned by the wrapped policy.public Iterator<Host> newQueryPlan(String loggedKeyspace, Statement statement)
exclusionThreshold * minLatency
(where minLatency is the (averaged) latency of the fastest
host).
The hosts that are initially excluded due to their latency will be returned
by this iterator, but only only after all non-excluded hosts of the
child policy have been returned.newQueryPlan in interface LoadBalancingPolicyloggedKeyspace - the currently logged keyspace.statement - the statement for which to build the plan.public LatencyAwarePolicy.Snapshot getScoresSnapshot()
LatencyAwarePolicy.Snapshot object containing the current
latency scores maintained by this policy.public void onUp(Host host)
LoadBalancingPolicyonUp in interface LoadBalancingPolicyhost - the host that has been detected up.public void onDown(Host host)
LoadBalancingPolicyonDown in interface LoadBalancingPolicyhost - the host that has been detected down.public void onAdd(Host host)
LoadBalancingPolicyonAdd in interface LoadBalancingPolicyhost - the host that has been newly added.public void onRemove(Host host)
LoadBalancingPolicyonRemove in interface LoadBalancingPolicyhost - the removed host.public void close()
LoadBalancingPolicyclose in interface LoadBalancingPolicyCopyright © 2012–2017. All rights reserved.