public class DefaultConnectionFactory extends SpyObject implements ConnectionFactory
This implementation creates connections where the operation queue is an
ArrayBlockingQueue and the read and write queues are unbounded
LinkedBlockingQueues. The Redistribute
FailureMode is always
used. If other FailureModes are needed, look at the ConnectionFactoryBuilder.
Modifier and Type | Field and Description |
---|---|
static long |
DEFAULT_AUTH_WAIT_TIME
The time to wait for the authentication to complete when a operation
is written in milliseconds.
|
static FailureMode |
DEFAULT_FAILURE_MODE
Default failure mode.
|
static HashAlgorithm |
DEFAULT_HASH
Default hash algorithm.
|
static long |
DEFAULT_MAX_RECONNECT_DELAY
Maximum amount of time (in seconds) to wait between reconnect attempts.
|
static int |
DEFAULT_MAX_TIMEOUTEXCEPTION_THRESHOLD
Maximum number + 2 of timeout exception for shutdown connection.
|
static MetricType |
DEFAULT_METRIC_TYPE
Turn off metric collection by default.
|
static int |
DEFAULT_OP_QUEUE_LEN
Maximum length of the operation queue returned by this connection factory.
|
static long |
DEFAULT_OP_QUEUE_MAX_BLOCK_TIME
The maximum time to block waiting for op queue operations to complete, in
milliseconds.
|
static long |
DEFAULT_OPERATION_TIMEOUT
Default operation timeout in milliseconds.
|
static int |
DEFAULT_READ_BUFFER_SIZE
The read buffer size for each server connection from this factory.
|
protected int |
opQueueLen |
Constructor and Description |
---|
DefaultConnectionFactory()
Create a DefaultConnectionFactory with the default parameters.
|
DefaultConnectionFactory(int qLen,
int bufSize)
Create a DefaultConnectionFactory with the given maximum operation queue
length, and the given read buffer size.
|
DefaultConnectionFactory(int qLen,
int bufSize,
HashAlgorithm hash)
Construct a DefaultConnectionFactory with the given parameters.
|
Modifier and Type | Method and Description |
---|---|
MemcachedConnection |
createConnection(List<InetSocketAddress> addrs)
Create a MemcachedConnection for the given SocketAddresses.
|
NodeLocator |
createLocator(List<MemcachedNode> nodes)
Create a NodeLocator instance for the given list of nodes.
|
MemcachedNode |
createMemcachedNode(SocketAddress sa,
SocketChannel c,
int bufSize)
Create a new memcached node.
|
BlockingQueue<Operation> |
createOperationQueue()
Create a BlockingQueue for operations for a connection.
|
BlockingQueue<Operation> |
createReadOperationQueue()
Create a BlockingQueue for the operations currently expecting to read
responses from memcached.
|
BlockingQueue<Operation> |
createWriteOperationQueue()
Create a BlockingQueue for the operations currently expecting to write
requests to memcached.
|
MetricType |
enableMetrics()
If true, metric collections are enabled.
|
AuthDescriptor |
getAuthDescriptor()
Authenticate connections using the given auth descriptor.
|
long |
getAuthWaitTime()
The time to wait until authentication completes when an operation is
inserted.
|
Transcoder<Object> |
getDefaultTranscoder()
Get the default transcoder to be used in connections created by this
factory.
|
FailureMode |
getFailureMode()
Get the default failure mode for the underlying connection.
|
HashAlgorithm |
getHashAlg()
Get the hash algorithm to be used.
|
Collection<ConnectionObserver> |
getInitialObservers()
Observers that should be established at the time of connection
instantiation.
|
ExecutorService |
getListenerExecutorService()
Returns the stored
ExecutorService for listeners. |
long |
getMaxReconnectDelay()
Maximum number of milliseconds to wait between reconnect attempts.
|
MetricCollector |
getMetricCollector()
The currently active
MetricCollector . |
protected String |
getName() |
OperationFactory |
getOperationFactory()
Get the operation factory for connections built by this connection factory.
|
long |
getOperationTimeout()
Get the operation timeout used by this connection.
|
int |
getOpQueueLen()
Get the op queue length set at construct time.
|
long |
getOpQueueMaxBlockTime()
Get the maximum amount of time (in milliseconds) a client is willing to
wait to add a new item to a queue.
|
int |
getReadBufSize() |
int |
getTimeoutExceptionThreshold()
Maximum number of timeout exception for shutdown connection.
|
boolean |
isDaemon()
If true, the IO thread should be a daemon thread.
|
boolean |
isDefaultExecutorService()
Returns true if the default provided
ExecutorService has not been
overriden through the builder. |
boolean |
shouldOptimize()
If true, low-level optimization is in effect.
|
String |
toString() |
boolean |
useNagleAlgorithm()
If true, the nagle algorithm will be used on connected sockets.
|
public static final FailureMode DEFAULT_FAILURE_MODE
public static final HashAlgorithm DEFAULT_HASH
public static final int DEFAULT_OP_QUEUE_LEN
public static final long DEFAULT_OP_QUEUE_MAX_BLOCK_TIME
public static final int DEFAULT_READ_BUFFER_SIZE
public static final long DEFAULT_OPERATION_TIMEOUT
public static final long DEFAULT_MAX_RECONNECT_DELAY
public static final int DEFAULT_MAX_TIMEOUTEXCEPTION_THRESHOLD
public static final MetricType DEFAULT_METRIC_TYPE
public static final long DEFAULT_AUTH_WAIT_TIME
protected final int opQueueLen
public DefaultConnectionFactory(int qLen, int bufSize, HashAlgorithm hash)
qLen
- the queue length.bufSize
- the buffer sizehash
- the algorithm to use for hashingpublic DefaultConnectionFactory(int qLen, int bufSize)
public DefaultConnectionFactory()
public MemcachedNode createMemcachedNode(SocketAddress sa, SocketChannel c, int bufSize)
ConnectionFactory
createMemcachedNode
in interface ConnectionFactory
public MemcachedConnection createConnection(List<InetSocketAddress> addrs) throws IOException
ConnectionFactory
createConnection
in interface ConnectionFactory
addrs
- the addresses of the memcached serversIOException
- for problems initializing the memcached connectionspublic FailureMode getFailureMode()
ConnectionFactory
getFailureMode
in interface ConnectionFactory
public BlockingQueue<Operation> createOperationQueue()
ConnectionFactory
createOperationQueue
in interface ConnectionFactory
public BlockingQueue<Operation> createReadOperationQueue()
ConnectionFactory
createReadOperationQueue
in interface ConnectionFactory
public BlockingQueue<Operation> createWriteOperationQueue()
ConnectionFactory
createWriteOperationQueue
in interface ConnectionFactory
public NodeLocator createLocator(List<MemcachedNode> nodes)
ConnectionFactory
createLocator
in interface ConnectionFactory
public int getOpQueueLen()
public long getOpQueueMaxBlockTime()
ConnectionFactory
getOpQueueMaxBlockTime
in interface ConnectionFactory
public long getAuthWaitTime()
ConnectionFactory
getAuthWaitTime
in interface ConnectionFactory
public ExecutorService getListenerExecutorService()
ExecutorService
for listeners.
By default, a ThreadPoolExecutor
is used that acts exactly
like a default cachedThreadPool, but defines the upper limit of
Threads to be created as the number of available processors to
prevent resource exhaustion.getListenerExecutorService
in interface ConnectionFactory
ExecutorService
.public boolean isDefaultExecutorService()
ConnectionFactory
ExecutorService
has not been
overriden through the builder.isDefaultExecutorService
in interface ConnectionFactory
public int getReadBufSize()
getReadBufSize
in interface ConnectionFactory
public HashAlgorithm getHashAlg()
ConnectionFactory
getHashAlg
in interface ConnectionFactory
public OperationFactory getOperationFactory()
ConnectionFactory
getOperationFactory
in interface ConnectionFactory
public long getOperationTimeout()
ConnectionFactory
getOperationTimeout
in interface ConnectionFactory
public boolean isDaemon()
ConnectionFactory
isDaemon
in interface ConnectionFactory
public Collection<ConnectionObserver> getInitialObservers()
ConnectionFactory
getInitialObservers
in interface ConnectionFactory
public Transcoder<Object> getDefaultTranscoder()
ConnectionFactory
getDefaultTranscoder
in interface ConnectionFactory
public boolean useNagleAlgorithm()
ConnectionFactory
See Socket.setTcpNoDelay(boolean)
for more information.
useNagleAlgorithm
in interface ConnectionFactory
public boolean shouldOptimize()
ConnectionFactory
shouldOptimize
in interface ConnectionFactory
public long getMaxReconnectDelay()
ConnectionFactory
getMaxReconnectDelay
in interface ConnectionFactory
public AuthDescriptor getAuthDescriptor()
ConnectionFactory
getAuthDescriptor
in interface ConnectionFactory
public int getTimeoutExceptionThreshold()
ConnectionFactory
getTimeoutExceptionThreshold
in interface ConnectionFactory
public MetricType enableMetrics()
ConnectionFactory
enableMetrics
in interface ConnectionFactory
public MetricCollector getMetricCollector()
ConnectionFactory
MetricCollector
.getMetricCollector
in interface ConnectionFactory
protected String getName()
Copyright © 2016. All rights reserved.