Package com.tangosol.util.filter
Class PartitionedFilter<T>
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.BitHelper
com.tangosol.util.ExternalizableHelper
com.tangosol.util.filter.PartitionedFilter<T>
- All Implemented Interfaces:
- ExternalizableLite,- PortableObject,- Filter<T>,- EntryFilter<Object,,- T> - Serializable
public class PartitionedFilter<T>
extends ExternalizableHelper
implements Filter<T>, EntryFilter<Object,T>, ExternalizableLite, PortableObject 
Filter which limits the scope of another filter to those entries that have
 keys that belong to the specified partition set.
 
This filter is intended to be used in advanced scenarios, when a caller wants to retrieve the results of parallel processing restricted to a subset of partitions. This approach may somewhat complicate the client code, but can dramatically reduce the memory footprint used by the requestor.
Below are two examples of PartitionedFilter usage:
-  Run a parallel query partition-by-partition:
   void executeByPartitions(NamedCache cache, Filter filter) { DistributedCacheService service = (DistributedCacheService) cache.getCacheService(); int cPartitions = service.getPartitionCount(); PartitionSet parts = new PartitionSet(cPartitions); for (int iPartition = 0; iPartition < cPartitions; iPartition++) { parts.add(iPartition); Filter filterPart = new PartitionedFilter(filter, parts); Set setEntriesPart = cache.entrySet(filterPart); // process the entries ... parts.remove(iPartition); } }
-  Run a parallel query member-by-member:
   void executeByMembers(NamedCache cache, Filter f) { DistributedCacheService service = (DistributedCacheService) cache.getCacheService(); int cPartitions = service.getPartitionCount(); PartitionSet partsProcessed = new PartitionSet(cPartitions); for (Iterator iter = service.getStorageEnabledMembers().iterator(); iter.hasNext();) { Member member = (Member) iter.next(); PartitionSet partsMember = service.getOwnedPartitions(member); // due to a redistribution some partitions may have already been processed partsMember.remove(partsProcessed); Filter filterPart = new PartitionedFilter(filter, partsMember); Set setEntriesPart = cache.entrySet(filterPart); // process the entries ... partsProcessed.add(partsMember); } // due to a possible redistribution, some partitions may have been skipped if (!partsProcessed.isFull()) { partsProcessed.invert(); Filter filter = new PartitionedFilter(filter, partsProcessed); // process the remaining entries ... } }
 To iterate through a query on a partition-by-partition or member-by-member
 basis, use the PartitionedIterator class.
- Since:
- Coherence 3.4
- Author:
- gg 2008.02.06
- See Also:
- 
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.LoggingWriter
- 
Field SummaryFields 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 SummaryConstructorsConstructorDescriptionDefault constructor (necessary for the ExternalizableLite interface).PartitionedFilter(Filter<T> filter, PartitionSet partitions) Construct a PartitionedFilter.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanCompare the PartitionedFilter with another object to determine equality.booleanApply the test to the input argument.booleanevaluateEntry(Map.Entry entry) Apply the test to a Map Entry.Obtain the wrapped Filter.Obtain the PartitionSet that specifies what partitions the wrapped filter will be applied to.inthashCode()Determine a hash value for the PartitionedFilter object according to the generalObject.hashCode()contract.voidRestore the contents of a user type instance by reading its state using the specified PofReader object.voidRestore the contents of this object by loading the object's state from the passed DataInput object.toString()Return a human-readable description for this Filter.voidwriteExternal(PofWriter out) Save the contents of a POF user type instance by writing its state using the specified PofWriter object.voidwriteExternal(DataOutput out) Save the contents of this object by storing the object's state into the passed DataOutput object.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, 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, 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, waitMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.tangosol.util.Filterand, asLimitFilter, associatedWith, forKeys, forPartitions, or, xor
- 
Constructor Details- 
PartitionedFilterpublic PartitionedFilter()Default constructor (necessary for the ExternalizableLite interface).
- 
PartitionedFilterConstruct a PartitionedFilter.- Parameters:
- filter- the underlying (wrapped) filter
- partitions- the subset of partitions the filter should run against
 
 
- 
- 
Method Details- 
evaluateApply the test to the input argument.
- 
evaluateEntryApply the test to a Map Entry.- Specified by:
- evaluateEntryin interface- EntryFilter<Object,- T> 
- Parameters:
- entry- the Map Entry to evaluate; never null
- Returns:
- true if the test passes, false otherwise
 
- 
getFilterObtain the wrapped Filter.- Returns:
- the wrapped filter object
 
- 
getPartitionSetObtain the PartitionSet that specifies what partitions the wrapped filter will be applied to.- Returns:
- the partition set
 
- 
equalsCompare the PartitionedFilter with another object to determine equality. Two PartitionedFilter objects are considered equal iff the wrapped filters and partition sets are equal.
- 
hashCodepublic int hashCode()Determine a hash value for the PartitionedFilter object according to the generalObject.hashCode()contract.
- 
toStringReturn a human-readable description for this Filter.
- 
readExternalRestore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
- readExternalin interface- ExternalizableLite
- Parameters:
- in- the DataInput stream to read data from in order to restore the state of this object
- Throws:
- IOException- if an I/O exception occurs
 
- 
writeExternalSave the contents of this object by storing the object's state into the passed DataOutput object.- Specified by:
- writeExternalin interface- ExternalizableLite
- Parameters:
- out- the DataOutput stream to write the state of this object to
- Throws:
- IOException- if an I/O exception occurs
 
- 
readExternalRestore the contents of a user type instance by reading its state using the specified PofReader object.- Specified by:
- readExternalin interface- PortableObject
- Parameters:
- in- the PofReader from which to read the object's state
- Throws:
- IOException- if an I/O error occurs
 
- 
writeExternalSave the contents of a POF user type instance by writing its state using the specified PofWriter object.- Specified by:
- writeExternalin interface- PortableObject
- Parameters:
- out- the PofWriter to which to write the object's state
- Throws:
- IOException- if an I/O error occurs
 
 
-