com.netflix.astyanax.connectionpool.impl
Class RoundRobinConnectionPoolImpl<CL>

java.lang.Object
  extended by com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool<CL>
      extended by com.netflix.astyanax.connectionpool.impl.RoundRobinConnectionPoolImpl<CL>
Type Parameters:
CL -
All Implemented Interfaces:
ConnectionPool<CL>, SimpleHostConnectionPool.Listener<CL>

public class RoundRobinConnectionPoolImpl<CL>
extends AbstractHostPartitionConnectionPool<CL>

Connection pool implementation using simple round robin.

It maintains a rotating index over a collection of HostConnectionPool(s) maintained using a Topology that reflects the given partitioned set of pools. Note that the impl uses the pinned host on the operation if it finds one. If there is none, then it uses all the host connection pools in the topology.

See Also:
RoundRobinExecuteWithFailover} for more details on how failover works with round robin connections., Topology} for details on where the collection of {@link HostConnectionPool}(s) are maintained., AbstractHostPartitionConnectionPool} for the base impl of {@link ConnectionPool}

Field Summary
 
Fields inherited from class com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool
config, factory, hosts, monitor, partitioner, topology
 
Constructor Summary
RoundRobinConnectionPoolImpl(ConnectionPoolConfiguration config, ConnectionFactory<CL> factory, ConnectionPoolMonitor monitor)
           
 
Method Summary
<R> ExecuteWithFailover<CL,R>
newExecuteWithFailover(Operation<CL,R> operation)
          Return a new failover context.
 
Methods inherited from class com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool
addHost, executeWithFailover, getActivePools, getHostPool, getPartitioner, getPools, getTopology, hasHost, isHostUp, newHostConnectionPool, onHostDown, onHostUp, rebuildPartitions, removeHost, setHosts, shutdown, start
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RoundRobinConnectionPoolImpl

public RoundRobinConnectionPoolImpl(ConnectionPoolConfiguration config,
                                    ConnectionFactory<CL> factory,
                                    ConnectionPoolMonitor monitor)
Method Detail

newExecuteWithFailover

public <R> ExecuteWithFailover<CL,R> newExecuteWithFailover(Operation<CL,R> operation)
                                                 throws ConnectionException
Description copied from class: AbstractHostPartitionConnectionPool
Return a new failover context. The context captures the connection pool state and implements the necessary failover logic.

Specified by:
newExecuteWithFailover in class AbstractHostPartitionConnectionPool<CL>
Returns:
Throws:
ConnectionException