public class JoinStats extends Object implements Serializable
JoinTask
. Each JoinTask
handles a single index
partition, so the JoinStats
for those index partitions need to be
aggregated by the JoinMasterTask
.Modifier and Type | Field and Description |
---|---|
long |
accessPathCount
The #of
IAccessPath s read. |
long |
accessPathDups
The #of duplicate
IAccessPath s that were eliminated by a
JoinTask . |
long |
bindingSetChunksIn
The #of binding set chunks read from all source
JoinTask s. |
long |
bindingSetChunksOut
The #of
IBindingSet chunks written onto the next join
dimension (aka the #of solutions written iff this is the last join
dimension in the evaluation order). |
long |
bindingSetsIn
The #of binding sets read from all source
JoinTask s. |
long |
bindingSetsOut
The #of
IBindingSet s written onto the next join dimension
(aka the #of solutions written iff this is the last join dimension). |
long |
chunkCount
#of chunks visited over all access paths.
|
long |
elementCount
#of elements visited over all chunks.
|
int |
fanIn
The maximum observed fan in for this join dimension (maximum #of sources
observed writing on any join task for this join dimension).
|
int |
fanOut
The maximum observed fan out for this join dimension (maximum #of sinks
on which any join task is writing for this join dimension).
|
AtomicLong |
mutationCount
The mutationCount is the #of solutions output by a
JoinTask (s)
for the last join dimension of a mutation operation that were not
already present in the target relation. |
int |
orderIndex
The index in the evaluation order whose statistics are reported here.
|
int |
partitionCount
The #of index partitions for which join tasks were created for this join
dimension.
|
int |
partitionId
The index partition for which these statistics were collected or -1
if the statistics are aggregated across index partitions.
|
long |
startTime
The timestamp associated with the start of execution for the join
dimension.
|
Constructor and Description |
---|
JoinStats(int orderIndex)
Ctor variant used by the
JoinMasterTask to aggregate
statistics across the index partitions for a given join dimension. |
JoinStats(int partitionId,
int orderIndex)
Ctor variant used by a
JoinTask to self-report. |
Modifier and Type | Method and Description |
---|---|
String |
toString() |
static StringBuilder |
toString(IRule rule,
IRuleState ruleState,
JoinStats[] a)
Formats the array of
JoinStats into a CSV table view. |
public final long startTime
JoinStats
object is created. That corresponds either to the start
of the distributed JoinMasterTask
execution (aggregated level) or
to the start of some specific JoinTask
(detail level).public final int partitionId
public final int orderIndex
public int fanIn
public int fanOut
public int partitionCount
public long bindingSetChunksIn
JoinTask
s.public long bindingSetsIn
JoinTask
s.public long accessPathCount
IAccessPath
s read. This will differ from
#bindingSetIn
iff the same IBindingSet
is read from
more than one source and the JoinTask
is able to recognize
the duplication and collapse it by removing the duplicate(s).public long accessPathDups
IAccessPath
s that were eliminated by a
JoinTask
. Duplicate IAccessPath
s arise when the
source JoinTask
(s) generate the bindings on the
IPredicate
for a join dimension. Duplicates are detected by a
JoinTask
when it generates chunk of distinct
JoinTask.AccessPathTask
s from a chunk of IBindingSet
s read
from its source(s) JoinTask
s.
Note: While the IPredicate
s for those tasks may have the
same bindings, the source IBindingSet
s typically (always?)
have variety not represented in the bound IPredicate
and
therefore are combined under a single JoinTask.AccessPathTask
. This
reduces redundant reads on an IAccessPath
while producing
exactly the same output IBindingSet
s that would have been
produced if we did not identify the duplicate IAccessPath
s.
public long chunkCount
public long elementCount
public long bindingSetsOut
IBindingSet
s written onto the next join dimension
(aka the #of solutions written iff this is the last join dimension).
Note: An IBindingSet
can be written onto more than one index
partition for the next join dimension, so one generated
IBindingSet
MAY result in N GTE ONE "binding sets out". This
occurs when the IAccessPath
required to read on the next
IPredicate
in the evaluation order spans more than one index
partition.
public long bindingSetChunksOut
IBindingSet
chunks written onto the next join
dimension (aka the #of solutions written iff this is the last join
dimension in the evaluation order).public AtomicLong mutationCount
JoinTask
(s)
for the last join dimension of a mutation operation that were not
already present in the target relation. This value is always zero
(0L) for query.
Note: The mutationCount MUST be obtained from IBuffer.flush()
for the buffer on which the JoinTask
(s) for the last join
dimension write their solutions. For mutation, this buffer is
obligated to report the #of elements whose state was changed in the
target relation. Failure to correctly obey this contract can result
in non-termination of fix point closure operations.
RuleStats.mutationCount
public JoinStats(int orderIndex)
JoinMasterTask
to aggregate
statistics across the index partitions for a given join dimension.orderIndex
- The index in the evaluation order.public JoinStats(int partitionId, int orderIndex)
JoinTask
to self-report.partitionId
- The index partition identifier.orderIndex
- The index in the evaluation order.public static StringBuilder toString(IRule rule, IRuleState ruleState, JoinStats[] a)
JoinStats
into a CSV table view.rule
- The IRule
whose JoinStats
are being reported.ruleState
- Contains details about evaluation order for the
IPredicate
s in the tail of the rule, the access
paths that were used, etc.a
- The JoinStats
.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.