K - the type of the Map entry keysV - the type of the Map entry valuespublic class QueryRecorder<K,V> extends Object implements InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>, ExternalizableLite, PortableObject
QueryRecord object that contains an estimated or actual cost of the query execution for a given filter.
For example, the following code will print a QueryRecord, containing the estimated query cost and corresponding execution steps.
QueryRecorder agent = new QueryRecorder(RecordType.EXPLAIN); QueryRecord record = (QueryRecord) cache.aggregate(filter, agent); System.out.println(record);
| Modifier and Type | Class and Description |
|---|---|
static class |
QueryRecorder.RecordType
RecordType enum specifies whether the
QueryRecorder should be used to produce a QueryRecord object that contains an estimated or an actual cost of the query execution. |
BY_MEMBER, BY_PARTITION, PARALLEL, PRESENT_ONLY, RETAINS_ENTRIES, SERIAL| Constructor and Description |
|---|
QueryRecorder()
Default constructor (necessary for the ExternalizableLite interface).
|
QueryRecorder(QueryRecorder.RecordType type)
Construct a QueryRecorder.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
accumulate(InvocableMap.Entry<? extends K,? extends V> entry)
Accumulate one entry into the result.
|
boolean |
accumulate(Streamer<? extends InvocableMap.Entry<? extends K,? extends V>> streamer)
Accumulate multiple entries into the result.
|
QueryRecord |
aggregate(Set<? extends InvocableMap.Entry<? extends K,? extends V>> setEntries)
Process a set of InvocableMap.Entry objects in order to produce an aggregated result.
|
int |
characteristics()
A bit mask representing the set of characteristics of this aggregator.
|
boolean |
combine(QueryRecord.PartialResult partialResult)
Merge another partial result into the result.
|
QueryRecord |
finalizeResult()
Return the final result of the aggregation.
|
QueryRecord.PartialResult |
getPartialResult()
Return the partial result of the aggregation.
|
QueryRecorder.RecordType |
getType()
Get the record type for this query recorder.
|
void |
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from the passed DataInput object.
|
void |
readExternal(PofReader in)
Restore the contents of a user type instance by reading its state using the specified PofReader object.
|
InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord> |
supply()
Create a new instance of this aggregator.
|
void |
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into the passed DataOutput object.
|
void |
writeExternal(PofWriter out)
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitisByMember, isByPartition, isParallel, isPresentOnly, isRetainsEntries, isSerialpublic QueryRecorder()
public QueryRecorder(QueryRecorder.RecordType type)
type - the type for this aggregatorpublic QueryRecorder.RecordType getType()
public QueryRecord aggregate(Set<? extends InvocableMap.Entry<? extends K,? extends V>> setEntries)
aggregate in interface InvocableMap.EntryAggregator<K,V,QueryRecord>aggregate in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>setEntries - a Set of read-only InvocableMap.Entry objects to aggregatepublic InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord> supply()
InvocableMap.StreamingAggregatorsupply in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>public boolean accumulate(Streamer<? extends InvocableMap.Entry<? extends K,? extends V>> streamer)
InvocableMap.StreamingAggregatorImportant note: The default implementation of this method provides necessary logic for aggregation short-circuiting and should rarely (if ever) be overridden by the custom aggregator implementation.
accumulate in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>streamer - a Streamer that can be used to iterate over entries to addpublic boolean accumulate(InvocableMap.Entry<? extends K,? extends V> entry)
InvocableMap.StreamingAggregatoraccumulate in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>entry - the entry to accumulate into the aggregation resultpublic boolean combine(QueryRecord.PartialResult partialResult)
InvocableMap.StreamingAggregatorcombine in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>partialResult - the partial result to mergepublic QueryRecord.PartialResult getPartialResult()
InvocableMap.StreamingAggregatorgetPartialResult in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>public QueryRecord finalizeResult()
InvocableMap.StreamingAggregatorfinalizeResult in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>public int characteristics()
InvocableMap.StreamingAggregatorBe default, characteristics are a combination of InvocableMap.StreamingAggregator.PARALLEL and InvocableMap.StreamingAggregator.RETAINS_ENTRIES, which is sub-optimal and should be overridden by the aggregator implementation if the aggregator does not need to retain entries (which is often the case).
characteristics in interface InvocableMap.StreamingAggregator<K,V,QueryRecord.PartialResult,QueryRecord>InvocableMap.StreamingAggregator.PARALLEL, InvocableMap.StreamingAggregator.SERIAL, InvocableMap.StreamingAggregator.BY_MEMBER, InvocableMap.StreamingAggregator.BY_PARTITION, InvocableMap.StreamingAggregator.RETAINS_ENTRIES, InvocableMap.StreamingAggregator.PRESENT_ONLYpublic void readExternal(DataInput in) throws IOException
readExternal in interface ExternalizableLitein - the DataInput stream to read data from in order to restore the state of this objectIOException - if an I/O exception occursNotActiveException - if the object is not in its initial state, and therefore cannot be deserialized intopublic void writeExternal(DataOutput out) throws IOException
writeExternal in interface ExternalizableLiteout - the DataOutput stream to write the state of this object toIOException - if an I/O exception occurspublic void readExternal(PofReader in) throws IOException
readExternal in interface PortableObjectin - the PofReader from which to read the object's stateIOException - if an I/O error occurspublic void writeExternal(PofWriter out) throws IOException
writeExternal in interface PortableObjectout - the PofWriter to which to write the object's stateIOException - if an I/O error occurs