public class EdgeSample extends SampleBase
Modifier and Type | Field and Description |
---|---|
long |
adjCard
The adjusted cardinality estimate for the cutoff join (this is
outputCount as adjusted for a variety of edge conditions). |
long |
estRead
Estimated tuples read if the operator were fully executed.
|
double |
f
The ratio of the #of input samples consumed to the #of output samples
generated (the join hit ratio or scale factor).
|
int |
inputCount
The #of binding sets out of the source sample vertex sample which were
consumed.
|
long |
outputCount
The #of binding sets generated before the join was cutoff.
|
SampleBase |
sourceSample
The source sample used to compute the cutoff join.
|
long |
sumRangeCount
The sum of the fast range count for each access path tested.
|
long |
tuplesRead
The #of tuples read from the access path when processing the cutoff join.
|
estCard, estimateEnum, limit
Constructor and Description |
---|
EdgeSample(SampleBase sourceSample,
int inputCount,
long tuplesRead,
long sumRangeCount,
long outputCount,
long adjustedCard,
double f,
long estCard,
long estRead,
int limit,
EstimateEnum estimateEnum,
IBindingSet[] sample)
Create an object which encapsulates a sample of an edge.
|
Modifier and Type | Method and Description |
---|---|
protected void |
toString(StringBuilder sb)
Hook for extending
SampleBase.toString() . |
getSample, isExact, isUnderflow, toString
public final SampleBase sourceSample
public final int inputCount
public final long tuplesRead
public final long outputCount
Note: If the outputCount is zero then this is a good indicator that there is an error in the query such that the join will not select anything. This is not 100%, merely indicative.
public final long adjCard
outputCount
as adjusted for a variety of edge conditions).public final double f
public final long sumRangeCount
Note: We use pipeline joins to sample cutoff joins so there will be one access path read for each solution in. However, a hash join could be used when the operator is fully executed. The hash join will have one access path on which we read for all input solutions and the range count of the access path will be larger since the access path will be less constrained.
public final long estRead
SampleBase.estCard
, which is the estimated output
cardinality if the operator were fully executed.
TODO The actual IOs depend on the join type (hash join versus pipeline
join) and whether or not the file has index order (segment versus
journal). A hash join will read once on the AP. A pipeline join will read
once per input solution. A key-range read on a segment uses multi-block
IO while a key-range read on a journal uses random IO. Also, remote
access path reads are more expensive than sharded or hash partitioned
access path reads in scale-out.public EdgeSample(SampleBase sourceSample, int inputCount, long tuplesRead, long sumRangeCount, long outputCount, long adjustedCard, double f, long estCard, long estRead, int limit, EstimateEnum estimateEnum, IBindingSet[] sample)
sourceSample
- The input sample.limit
- The limit used to sample the edge (this is the limit on the
#of solutions generated by the cutoff join used when this
sample was taken).inputCount
- The #of binding sets out of the source sample vertex sample
which were consumed.tuplesRead
- The #of tuples read from the access path when processing the
cutoff join.outputCount
- The #of binding sets generated before the join was cutoff.adjustedCard
- The adjusted cardinality estimate for the cutoff join (this is
outputCount as adjusted for a variety of edge
conditions).protected void toString(StringBuilder sb)
SampleBase
SampleBase.toString()
.toString
in class SampleBase
sb
- The buffer into which the implementation can write additional
information.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.