Package net.spy.memcached
Class KetamaConnectionFactory
java.lang.Object
net.spy.memcached.compat.SpyObject
net.spy.memcached.DefaultConnectionFactory
net.spy.memcached.KetamaConnectionFactory
- All Implemented Interfaces:
ConnectionFactory
ConnectionFactory instance that sets up a ketama compatible connection.
This implementation piggy-backs on the functionality of the
DefaultConnectionFactory
in terms of connections and queue
handling. Where it differs is that it uses both the
KetamaNodeLocator
and the HashAlgorithm.KETAMA_HASH
to
provide consistent node hashing.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final KetamaNodeKeyFormatter.Format
private Map
<InetSocketAddress, Integer> Fields inherited from class net.spy.memcached.DefaultConnectionFactory
DEFAULT_AUTH_WAIT_TIME, DEFAULT_FAILURE_MODE, DEFAULT_HASH, DEFAULT_MAX_RECONNECT_DELAY, DEFAULT_MAX_TIMEOUTEXCEPTION_THRESHOLD, DEFAULT_METRIC_TYPE, DEFAULT_OP_QUEUE_LEN, DEFAULT_OP_QUEUE_MAX_BLOCK_TIME, DEFAULT_OPERATION_TIMEOUT, DEFAULT_READ_BUFFER_SIZE, opQueueLen
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a KetamaConnectionFactory with the default parameters.KetamaConnectionFactory
(int qLen, int bufSize, long opQueueMaxBlockTime) Create a KetamaConnectionFactory with the given maximum operation queue length, and the given read buffer size.KetamaConnectionFactory
(int qLen, int bufSize, long opQueueMaxBlockTime, HashAlgorithm hash, KetamaNodeKeyFormatter.Format nodeKeyFormat, Map<InetSocketAddress, Integer> weights) Create a KetamaConnectionFactory with the maximum operation queue length, the given read buffer size, the maximum time to block waiting operations, a specific hash algorithm, a set ring key format, and a given set of weights. -
Method Summary
Modifier and TypeMethodDescriptioncreateLocator
(List<MemcachedNode> nodes) Create a NodeLocator instance for the given list of nodes.Methods inherited from class net.spy.memcached.DefaultConnectionFactory
createConnection, createMemcachedNode, createOperationQueue, createReadOperationQueue, createWriteOperationQueue, enableMetrics, getAuthDescriptor, getAuthWaitTime, getDefaultTranscoder, getFailureMode, getHashAlg, getInitialObservers, getListenerExecutorService, getMaxReconnectDelay, getMetricCollector, getName, getOperationFactory, getOperationTimeout, getOpQueueLen, getOpQueueMaxBlockTime, getReadBufSize, getTimeoutExceptionThreshold, isDaemon, isDefaultExecutorService, shouldOptimize, toString, useNagleAlgorithm
-
Field Details
-
ketamaNodeKeyFormat
-
weights
-
-
Constructor Details
-
KetamaConnectionFactory
public KetamaConnectionFactory(int qLen, int bufSize, long opQueueMaxBlockTime) Create a KetamaConnectionFactory with the given maximum operation queue length, and the given read buffer size.- Parameters:
opQueueMaxBlockTime
- the maximum time to block waiting for op queue operations to complete, in milliseconds
-
KetamaConnectionFactory
public KetamaConnectionFactory(int qLen, int bufSize, long opQueueMaxBlockTime, HashAlgorithm hash, KetamaNodeKeyFormatter.Format nodeKeyFormat, Map<InetSocketAddress, Integer> weights) Create a KetamaConnectionFactory with the maximum operation queue length, the given read buffer size, the maximum time to block waiting operations, a specific hash algorithm, a set ring key format, and a given set of weights. -
KetamaConnectionFactory
public KetamaConnectionFactory()Create a KetamaConnectionFactory with the default parameters.
-
-
Method Details
-
createLocator
Description copied from interface:ConnectionFactory
Create a NodeLocator instance for the given list of nodes.- Specified by:
createLocator
in interfaceConnectionFactory
- Overrides:
createLocator
in classDefaultConnectionFactory
-
getKetamaNodeKeyFormat
- Returns:
- the ketamaNodeKeyFormat
-
getWeights
- Returns:
- the ketama node weights
-