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 SummaryNested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelperExternalizableHelper.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.BaseBase.LoggingWriterNested classes/interfaces inherited from interface com.tangosol.net.partition.KeyPartitioningStrategyKeyPartitioningStrategy.PartitionAwareKey
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected PartitionedServiceThe PartitionedService that this strategy is bound to.Fields inherited from class com.tangosol.util.ExternalizableHelperBINARY_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_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, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
- 
Constructor SummaryConstructors
- 
Method SummaryModifier 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.ExternalizableHelperasBinary, 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, isResolving, isSerializable, isSerializerCompatible, 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, writeIntArray2d, writeLong, writeLong, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializableMethods inherited from class com.tangosol.util.BitHelpercountBits, 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.Baseazzert, 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, 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_serviceThe PartitionedService that this strategy is bound to.
 
- 
- 
Constructor Details- 
DefaultKeyPartitioningStrategypublic DefaultKeyPartitioningStrategy()Default constructor.
 
- 
- 
Method Details- 
initInitialize the KeyPartitioningStrategy and bind it to the specified PartitionedService.- Specified by:
- initin interface- KeyPartitioningStrategy
- Parameters:
- service- the PartitionedService that this strategy is being bound to
 
- 
getKeyPartitionDetermine 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 interface- KeyPartitioningStrategy
- Parameters:
- oKey- a key in its Object form
- Returns:
- the partition ID that the specified key is assigned to
- See Also:
 
- 
getAssociatedPartitionsDetermine 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 interface- KeyPartitioningStrategy
- Parameters:
- oKey- a key in its Object form
- Returns:
- the PartitionSet associated with the specified key
 
- 
calculateKeyPartitionDetermine 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 PartitionedService
- oKey- a key in its original (Object) format
- Returns:
- the partition that the corresponding key is assigned to
 
- 
calculateKeyPartitionHashDetermine 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 PartitionedService
- oKey- a key in its original (Object) format
- Returns:
- the partition-hash of the corresponding key
 
- 
calculateBasePartitionHashDetermine 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 PartitionedService
- oKey- a key in its original (Object) format
- Returns:
- the partition-hash of the corresponding key
 
- 
calculatePartitionReturn the partition associated with the specified hash value in the specified PartitionedService.- Parameters:
- service- the PartitionedService
- nHash- the hash value
- Returns:
- the partition-id that the specified hash value belongs to
 
 
-