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 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 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(java.util.List<java.net.InetSocketAddress> addrs)
Create a MemcachedConnection for the given SocketAddresses.
|
NodeLocator |
createLocator(java.util.List<MemcachedNode> nodes)
Create a NodeLocator instance for the given list of nodes.
|
MemcachedNode |
createMemcachedNode(java.net.SocketAddress sa,
java.nio.channels.SocketChannel c,
int bufSize)
Create a new memcached node.
|
java.util.concurrent.BlockingQueue<Operation> |
createOperationQueue()
Create a BlockingQueue for operations for a connection.
|
java.util.concurrent.BlockingQueue<Operation> |
createReadOperationQueue()
Create a BlockingQueue for the operations currently expecting to read
responses from memcached.
|
java.util.concurrent.BlockingQueue<Operation> |
createWriteOperationQueue()
Create a BlockingQueue for the operations currently expecting to write
requests to memcached.
|
AuthDescriptor |
getAuthDescriptor()
Authenticate connections using the given auth descriptor.
|
Transcoder<java.lang.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.
|
java.util.Collection<ConnectionObserver> |
getInitialObservers()
Observers that should be established at the time of connection
instantiation.
|
long |
getMaxReconnectDelay()
Maximum number of milliseconds to wait between reconnect attempts.
|
protected java.lang.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 |
shouldOptimize()
If true, low-level optimization is in effect.
|
java.lang.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
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(java.net.SocketAddress sa, java.nio.channels.SocketChannel c, int bufSize)
ConnectionFactory
createMemcachedNode
in interface ConnectionFactory
public MemcachedConnection createConnection(java.util.List<java.net.InetSocketAddress> addrs) throws java.io.IOException
ConnectionFactory
createConnection
in interface ConnectionFactory
addrs
- the addresses of the memcached serversjava.io.IOException
- for problems initializing the memcached connectionspublic FailureMode getFailureMode()
ConnectionFactory
getFailureMode
in interface ConnectionFactory
public java.util.concurrent.BlockingQueue<Operation> createOperationQueue()
ConnectionFactory
createOperationQueue
in interface ConnectionFactory
public java.util.concurrent.BlockingQueue<Operation> createReadOperationQueue()
ConnectionFactory
createReadOperationQueue
in interface ConnectionFactory
public java.util.concurrent.BlockingQueue<Operation> createWriteOperationQueue()
ConnectionFactory
createWriteOperationQueue
in interface ConnectionFactory
public NodeLocator createLocator(java.util.List<MemcachedNode> nodes)
ConnectionFactory
createLocator
in interface ConnectionFactory
public int getOpQueueLen()
public long getOpQueueMaxBlockTime()
ConnectionFactory
getOpQueueMaxBlockTime
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 java.util.Collection<ConnectionObserver> getInitialObservers()
ConnectionFactory
getInitialObservers
in interface ConnectionFactory
public Transcoder<java.lang.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
protected java.lang.String getName()
public java.lang.String toString()
toString
in class java.lang.Object
Copyright © 2006-2009 Dustin Sallings, 2009-2013 Couchbase, Inc.