/
LoadBalancingPolicy.java
33 lines (28 loc) · 1.06 KB
/
LoadBalancingPolicy.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package me.prettyprint.cassandra.connection;
import java.io.Serializable;
import java.util.Collection;
import java.util.Set;
import me.prettyprint.cassandra.connection.factory.HClientFactory;
import me.prettyprint.cassandra.service.CassandraHost;
/**
* Default interface for all load balancing policies.
*
*/
public interface LoadBalancingPolicy extends Serializable {
/**
* Retrieves a pool from the collection of <code>pools</code> excluding <code>excludeHosts</code>.
*
* @param pools collection of all available pools
* @param excludeHosts excluded pools
* @return a pool based on this load balancing policy
*/
HClientPool getPool(Collection<HClientPool> pools, Set<CassandraHost> excludeHosts);
/**
* Creates a connection pool for <code>host</code>.
*
* @param clientFactory an instance of {@link HClientFactory}
* @param host an instance of {@link CassandraHost} representing the host this pool will represent
* @return a connection pool
*/
HClientPool createConnection(HClientFactory clientFactory, CassandraHost host);
}