A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
|
#include <AdvancedPhysicalAbstractAlgorithm.h>
Public Member Functions | |
AdvancedPhysicalAbstractAlgorithm (const AdvancedPhysicalPipelineNodePtr &handle, const std::string &jobID, bool isProbing, bool isOutput, Handle< SetIdentifier > source, Handle< ComputePlan > computePlan, const LogicalPlanPtr &logicalPlan, const ConfigurationPtr &conf) | |
virtual PhysicalOptimizerResultPtr | generate (int nextStageID, const StatisticsPtr &stats)=0 |
virtual PhysicalOptimizerResultPtr | generatePipelined (int nextStageID, const StatisticsPtr &stats, std::vector< AdvancedPhysicalPipelineNodePtr > &pipesToPipeline) |
virtual AdvancedPhysicalAbstractAlgorithmTypeID | getType ()=0 |
Protected Member Functions | |
virtual DataStatistics | approximateResultSize (const StatisticsPtr &stats) |
void | updateConsumers (const Handle< SetIdentifier > &sink, DataStatistics approxSize, const StatisticsPtr &stats) |
void | includeHashComputation () |
void | extractAtomicComputations () |
void | extractHashSetsToProbe () |
Protected Attributes | |
std::list < AdvancedPhysicalPipelineNodePtr > | pipeline |
std::string | jobID |
list< AtomicComputationPtr > | pipelineComputations |
unordered_map< std::string, std::string > | probingHashSets |
LogicalPlanPtr | logicalPlan |
Handle< ComputePlan > | computePlan |
ConfigurationPtr | conf |
Handle< SetIdentifier > | sink |
Handle< SetIdentifier > | source |
bool | isProbing |
bool | isOutput |
Definition at line 39 of file AdvancedPhysicalAbstractAlgorithm.h.
AdvancedPhysicalAbstractAlgorithm::AdvancedPhysicalAbstractAlgorithm | ( | const AdvancedPhysicalPipelineNodePtr & | handle, |
const std::string & | jobID, | ||
bool | isProbing, | ||
bool | isOutput, | ||
Handle< SetIdentifier > | source, | ||
Handle< ComputePlan > | computePlan, | ||
const LogicalPlanPtr & | logicalPlan, | ||
const ConfigurationPtr & | conf | ||
) |
Definition at line 21 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
protectedvirtual |
Approximates the size of the result of this algorithm. The default implementation simply returns the same size as the source set
Definition at line 77 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
protected |
This method goes through each pipe in the pipeline and extracts all the atomic computations in each pipe and inserts them into the
Definition at line 121 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
protected |
This method goes through each pipe and checks if it is joining.
Definition at line 148 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
pure virtual |
Generates the stages for this algorithm
Implemented in pdb::AdvancedPhysicalShuffledHashsetPipelineAlgorithm, pdb::AdvancedPhysicalAggregationPipelineAlgorithm, pdb::AdvancedPhysicalJoinBroadcastedHashsetAlgorithm, pdb::AdvancedPhysicalPipelineAlgorithm, and pdb::AdvancedPhysicalShuffleSetAlgorithm.
|
virtual |
Generates the stages for pipelined operators
nextStageID | |
pipesToPipeline |
Definition at line 41 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
pure virtual |
Returns the type of the algorithm
Implemented in pdb::AdvancedPhysicalShuffledHashsetPipelineAlgorithm, pdb::AdvancedPhysicalJoinBroadcastedHashsetAlgorithm, pdb::AdvancedPhysicalPipelineAlgorithm, pdb::AdvancedPhysicalAggregationPipelineAlgorithm, and pdb::AdvancedPhysicalShuffleSetAlgorithm.
|
protected |
A join has two sides in case that we generated a pipeline breaker for the probe set of the join (the one we don't use to build the hash map) we have to include it's hash atomic computation into the pipeComputations so we can do that join. (The reason why we have to do this is because TCAP is structured that way)
Definition at line 97 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
protected |
Goes through every consumer and sets the source set of this consumer to be the sink of this algorithm
sourceSetIdentifier | - the set identifier of the new source |
approxSize | - the approximate size of the new source |
Definition at line 55 of file AdvancedPhysicalAbstractAlgorithm.cc.
|
protected |
The ComputePlan generated from input computations and the input TCAP string
Definition at line 138 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
A configuration object for this server node
Definition at line 143 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
Is this an output pipeline
Definition at line 163 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
If pipeline is probing a hash set this is true
Definition at line 158 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
The id of the next stage
Definition at line 118 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
Logical plan generated from the compute plan
Definition at line 133 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
The handle to the node this algorithm is associated with
Definition at line 113 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
Contains all the atomic computations that make-up this pipe
Definition at line 123 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
All the hash sets we are probing in this algorithm
Definition at line 128 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
The sink of this algorithm
Definition at line 148 of file AdvancedPhysicalAbstractAlgorithm.h.
|
protected |
Source set associated with this node.
Definition at line 153 of file AdvancedPhysicalAbstractAlgorithm.h.