Package com.tangosol.net.partition
Class DefaultKeyPartitioningStrategy
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.BitHelper
com.tangosol.util.ExternalizableHelper
com.tangosol.net.partition.DefaultKeyPartitioningStrategy
- All Implemented Interfaces:
KeyPartitioningStrategy
- Direct Known Subclasses:
BroadKeyPartitioningStrategy
public class DefaultKeyPartitioningStrategy
extends ExternalizableHelper
implements KeyPartitioningStrategy
DefaultKeyPartitioningStrategy provides a simple strategy for assigning keys
to partitions which is based on the hash code of keys in internal
(serialized to Binary) form.
- Since:
- Coherence 3.6
- Author:
- gg 2010.05.19
-
Nested Class Summary
Nested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelper
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCacheNested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriterNested classes/interfaces inherited from interface com.tangosol.net.partition.KeyPartitioningStrategy
KeyPartitioningStrategy.PartitionAwareKey -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PartitionedServiceThe PartitionedService that this strategy is bound to.Fields inherited from class com.tangosol.util.ExternalizableHelper
BINARY_SIZE, CHUNK_SIZE, CHUNK_THRESHOLD, CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, DECO_BACKUP, DECO_CUSTOM, DECO_EXPIRY, DECO_ID_MAX, DECO_ID_MIN, DECO_JCACHE, DECO_JCACHE_SYNTHETIC, DECO_MEMCACHED, DECO_PUSHREP, DECO_QUEUE_METADATA, DECO_RSVD_1, DECO_STORE, DECO_TOPLINK, DECO_TX, DECO_VALUE, DECO_WLS, EMPTY_BINARY_ARRAY, FMT_B_ARRAY, FMT_BIN_DECO, FMT_BIN_EXT_DECO, FMT_BINARY, FMT_BOOLEAN, FMT_BYTE, FMT_DECIMAL, FMT_DOUBLE, FMT_EXT, FMT_FLOAT, FMT_IDO, FMT_INT, FMT_INTEGER, FMT_LONG, FMT_NONE, FMT_NULL, FMT_OBJ_EXT, FMT_OBJ_SER, FMT_OPT, FMT_OPT_DOUBLE, FMT_OPT_INT, FMT_OPT_LONG, FMT_SHORT, FMT_STRING, FMT_UNKNOWN, FMT_XML_BEAN, FMT_XML_SER, FORCE_RESOLVING_STREAMS, LAMBDA_SERIALIZATION, MAX_DECO_HEADER_BYTES, PACKED_INT_SIZE, PACKED_LONG_SIZE, PROPERTY_CONFIG, s_streamfactory, s_tloInEHDeserialize, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic intcalculateBasePartitionHash(PartitionedService service, Object oKey) Determine the partition-hash of the given key.static intcalculateKeyPartition(PartitionedService service, Object oKey) Determine the partition to which the given key should be assigned for the specified PartitionService, taking into consideration the associations provided by the service's KeyAssociator.static intcalculateKeyPartitionHash(PartitionedService service, Object oKey) Determine the partition-hash of the given key.static intcalculatePartition(PartitionedService service, int nHash) Return the partition associated with the specified hash value in the specified PartitionedService.Determine the set of partitions that all keys associated with the specified key are assigned to.intgetKeyPartition(Object oKey) Determine the partition to which a particular key should be assigned.voidinit(PartitionedService service) Initialize the KeyPartitioningStrategy and bind it to the specified PartitionedService.Methods inherited from class com.tangosol.util.ExternalizableHelper
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, checkObjectInputFilter, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getConfigSerialFilter, getConfigSerialFilterFactory, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectInputFilter, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isPatchCompatible, isPatchCompatible, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readBooleanArray, readByteArray, readCharArray, readCharArray, readCollection, readDate, readDoubleArray, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readFloatArray, readInt, readInt, readIntArray, readIntArray, readIntArray2d, readLargeBooleanArray, readLargeByteArray, readLargeCharArray, readLargeDoubleArray, readLargeFloatArray, readLargeIntArray, readLargeLongArray, readLargeObjectArray, readLargeStringArray, readLong, readLong, readLongArray, readLongArray, readMap, readMap, readObject, readObject, readObjectArray, readObjectArray, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, validateLoadArray, validateLoadClass, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray, writeIntArray2d, writeLong, writeLong, writeLongArray, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializableMethods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLongMethods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, newHashMap, newHashMap, newHashSet, newHashSet, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
-
Field Details
-
m_service
The PartitionedService that this strategy is bound to.
-
-
Constructor Details
-
DefaultKeyPartitioningStrategy
public DefaultKeyPartitioningStrategy()Default constructor.
-
-
Method Details
-
init
Initialize the KeyPartitioningStrategy and bind it to the specified PartitionedService.- Specified by:
initin interfaceKeyPartitioningStrategy- Parameters:
service- the PartitionedService that this strategy is being bound to
-
getKeyPartition
Determine the partition to which a particular key should be assigned.In general, implementations are expected to respect the associations provided by the service's KeyAssociator in such a way that keys that return the same
associated keywould be assigned to the same partition. Furthermore, implementations are also expected to respect explicit partition-assignments dictated by theKeyPartitioningStrategy.PartitionAwareKeyinterface. Naturally, those two interfaces should not be combined for a given key.The resulting partition must be in the range [0..N-1], where N is the value returned from
PartitionedService.getPartitionCount().- Specified by:
getKeyPartitionin interfaceKeyPartitioningStrategy- Parameters:
oKey- a key in its Object form- Returns:
- the partition ID that the specified key is assigned to
- See Also:
-
getAssociatedPartitions
Determine the set of partitions that all keys associated with the specified key are assigned to. Most commonly, this method returns a partition set containing a single partition returned by thegetKeyPartitionmethod.- Specified by:
getAssociatedPartitionsin interfaceKeyPartitioningStrategy- Parameters:
oKey- a key in its Object form- Returns:
- the PartitionSet associated with the specified key
-
calculateKeyPartition
Determine the partition to which the given key should be assigned for the specified PartitionService, taking into consideration the associations provided by the service's KeyAssociator.The resulting partition will be in the range [0..N), where N is the value returned from the
PartitionedService.getPartitionCount()method.- Parameters:
service- the PartitionedServiceoKey- a key in its original (Object) format- Returns:
- the partition that the corresponding key is assigned to
-
calculateKeyPartitionHash
Determine the partition-hash of the given key. The partition-hash is a property of the key identity itself, irrespective of the associated PartitionService's configured partition-count. The returned partition-hash is calculated by taking into consideration the associations provided by the service's KeyAssociator.- Parameters:
service- the PartitionedServiceoKey- a key in its original (Object) format- Returns:
- the partition-hash of the corresponding key
-
calculateBasePartitionHash
Determine the partition-hash of the given key. The partition-hash is a property of the key identity itself, irrespective of the associated PartitionService's configured partition-count.- Parameters:
service- the PartitionedServiceoKey- a key in its original (Object) format- Returns:
- the partition-hash of the corresponding key
-
calculatePartition
Return the partition associated with the specified hash value in the specified PartitionedService.- Parameters:
service- the PartitionedServicenHash- the hash value- Returns:
- the partition-id that the specified hash value belongs to
-