public interface LoadBalancingPolicy extends Host.StateListener
distance(com.datastax.driver.core.Host): returns the "distance" of an host for that balancing policy.
newQueryPlan(java.lang.String, com.datastax.driver.core.Statement): it is used for each query to find which host to query first, and which hosts to use as failover.
Host.StateListenerand is thus informed of hosts up/down events. For efficiency purposes, the policy is expected to exclude down hosts from query plans.
|Modifier and Type||Method and Description|
Returns the distance assigned by this policy to the provided host.
Initialize this load balancing policy.
Returns the hosts to use for a new query.
onAdd, onDown, onRemove, onSuspected, onUp
void init(Cluster cluster, Collection<Host> hosts)
Clusterinstance for which the policy is created.
hosts- the initial hosts to use.
HostDistance distance(Host host)
HostDistance). A policy should assign a
LOCALdistance to nodes that are susceptible to be returned first by
newQueryPlanand it is useless for
newQueryPlanto return hosts to which it assigns an
IGNOREDdistance. The host distance is primarily used to prevent keeping too many connections to host in remote datacenters when the policy itself always picks host in the local datacenter first.
host- the host of which to return the distance of.
Iterator<Host> newQueryPlan(String loggedKeyspace, Statement statement)
Iteratorare down, the query will fail.
loggedKeyspace- the currently logged keyspace (the one set through either
Cluster.connect(String)or by manually doing a
USEquery) for the session on which this plan need to be built. This can be
nullif the corresponding session has no keyspace logged in.
statement- the query for which to build a plan.