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
Fields inherited from class net.spy.memcached.DefaultConnectionFactory
DEFAULT_AUTH_WAIT_TIME, DEFAULT_CLIENT_MODE, 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) 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(ClientMode clientMode, int qLen, int bufSize, long opQueueMaxBlockTime) Create a KetamaConnectionFactory with the given maximum operation queue length, and the given read buffer size. -
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, getClientMode, getDefaultTranscoder, getDynamicModePollingInterval, getFailureMode, getHashAlg, getHostnameForTlsVerification, getInitialObservers, getKeepAlive, getListenerExecutorService, getMaxReconnectDelay, getMetricCollector, getName, getOperationFactory, getOperationTimeout, getOpQueueLen, getOpQueueMaxBlockTime, getReadBufSize, getSSLContext, getTimeoutExceptionThreshold, isDaemon, isDefaultExecutorService, setClientMode, shouldOptimize, skipTlsHostnameVerification, toString, useNagleAlgorithm
-
Constructor Details
-
KetamaConnectionFactory
public KetamaConnectionFactory(ClientMode clientMode, 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) -
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:ConnectionFactoryCreate a NodeLocator instance for the given list of nodes.- Specified by:
createLocatorin interfaceConnectionFactory- Overrides:
createLocatorin classDefaultConnectionFactory
-
getKetamaNodeKeyFormat
- Returns:
- the ketamaNodeKeyFormat
-
getWeights
- Returns:
- the ketama node weights
-