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.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
pdb::AdvancedPhysicalNodeFactory Class Reference

#include <AdvancedPhysicalNodeFactory.h>

+ Inheritance diagram for pdb::AdvancedPhysicalNodeFactory:
+ Collaboration diagram for pdb::AdvancedPhysicalNodeFactory:

Public Member Functions

 AdvancedPhysicalNodeFactory (const string &jobId, const Handle< ComputePlan > &computePlan, const ConfigurationPtr &conf)
 
vector< AbstractPhysicalNodePtrgenerateAnalyzerGraph (std::vector< AtomicComputationPtr > sources) override
 
- Public Member Functions inherited from pdb::AbstractPhysicalNodeFactory
 AbstractPhysicalNodeFactory (const Handle< ComputePlan > &computePlan)
 

Protected Member Functions

void transverseTCAPGraph (AtomicComputationPtr curNode)
 
void setConsumers (shared_ptr< AdvancedPhysicalAbstractPipe > node)
 
void connectThePipes ()
 
template<class T >
void createPhysicalPipeline ()
 

Protected Attributes

std::string jobId
 
size_t currentNodeIndex
 
ConfigurationPtr conf
 
std::set< AtomicComputationPtrvisitedNodes
 
std::vector< AtomicComputationPtrcurrentPipe
 
std::map< std::string,
AdvancedPhysicalPipelineNodePtr
physicalNodes
 
std::vector
< AbstractPhysicalNodePtr
physicalSourceNodes
 
std::map< std::string,
AdvancedPhysicalPipelineNodePtr
startsWith
 
std::map< std::string,
std::vector< std::string > > 
consumedBy
 
std::vector
< AdvancedPhysicalPipelineNodePtr
sources
 
- Protected Attributes inherited from pdb::AbstractPhysicalNodeFactory
Handle< ComputePlancomputePlan
 
LogicalPlanPtr logicalPlan
 
AtomicComputationList computationGraph
 

Detailed Description

Definition at line 28 of file AdvancedPhysicalNodeFactory.h.

Constructor & Destructor Documentation

pdb::AdvancedPhysicalNodeFactory::AdvancedPhysicalNodeFactory ( const string &  jobId,
const Handle< ComputePlan > &  computePlan,
const ConfigurationPtr conf 
)

Definition at line 26 of file AdvancedPhysicalNodeFactory.cc.

Member Function Documentation

void pdb::AdvancedPhysicalNodeFactory::connectThePipes ( )
protected

After we create all the pipes we we need to connect them to create a graph consisting of pipes

Definition at line 159 of file AdvancedPhysicalNodeFactory.cc.

+ Here is the caller graph for this function:

template<class T >
void pdb::AdvancedPhysicalNodeFactory::createPhysicalPipeline ( )
inlineprotected

This method creates a straight pipe and adds it to the physicalNodes

Definition at line 67 of file AdvancedPhysicalNodeFactory.h.

+ Here is the call graph for this function:

vector< AbstractPhysicalNodePtr > pdb::AdvancedPhysicalNodeFactory::generateAnalyzerGraph ( std::vector< AtomicComputationPtr sources)
overridevirtual
Parameters
sources
Returns

Implements pdb::AbstractPhysicalNodeFactory.

Definition at line 32 of file AdvancedPhysicalNodeFactory.cc.

+ Here is the call graph for this function:

void pdb::AdvancedPhysicalNodeFactory::setConsumers ( shared_ptr< AdvancedPhysicalAbstractPipe node)
protected

This method updates the

See Also
consumedBy for the node we provide. This method assumes that the last AtomicComputation belonging to this node is stored at
currentPipe
Parameters
node- the node we are updating the consumedBy for

Definition at line 134 of file AdvancedPhysicalNodeFactory.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::AdvancedPhysicalNodeFactory::transverseTCAPGraph ( AtomicComputationPtr  curNode)
protected
Parameters
curNode

Definition at line 60 of file AdvancedPhysicalNodeFactory.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

ConfigurationPtr pdb::AdvancedPhysicalNodeFactory::conf
protected

A configuration object for this cluster node

Definition at line 115 of file AdvancedPhysicalNodeFactory.h.

std::map<std::string, std::vector<std::string> > pdb::AdvancedPhysicalNodeFactory::consumedBy
protected

Maps each pipe to the list of atomic computations that consume it

Definition at line 146 of file AdvancedPhysicalNodeFactory.h.

size_t pdb::AdvancedPhysicalNodeFactory::currentNodeIndex
protected

The current node index

Definition at line 110 of file AdvancedPhysicalNodeFactory.h.

std::vector<AtomicComputationPtr> pdb::AdvancedPhysicalNodeFactory::currentPipe
protected

All the nodes that are in the current pipeline

Definition at line 125 of file AdvancedPhysicalNodeFactory.h.

std::string pdb::AdvancedPhysicalNodeFactory::jobId
protected

The id of the job we are trying to generate a physical plan for

Definition at line 105 of file AdvancedPhysicalNodeFactory.h.

std::map<std::string, AdvancedPhysicalPipelineNodePtr> pdb::AdvancedPhysicalNodeFactory::physicalNodes
protected

The physical nodes we created

Definition at line 130 of file AdvancedPhysicalNodeFactory.h.

std::vector<AbstractPhysicalNodePtr> pdb::AdvancedPhysicalNodeFactory::physicalSourceNodes
protected

Source physical nodes we created

Definition at line 135 of file AdvancedPhysicalNodeFactory.h.

std::vector<AdvancedPhysicalPipelineNodePtr> pdb::AdvancedPhysicalNodeFactory::sources
protected

All the source nodes we return them from the

See Also
generateAnalyzerGraph

Definition at line 151 of file AdvancedPhysicalNodeFactory.h.

std::map<std::string, AdvancedPhysicalPipelineNodePtr> pdb::AdvancedPhysicalNodeFactory::startsWith
protected

Maps each pipe to the atomic computation it starts with. The key is the name of the atomic computation the value is the pipe

Definition at line 141 of file AdvancedPhysicalNodeFactory.h.

std::set<AtomicComputationPtr> pdb::AdvancedPhysicalNodeFactory::visitedNodes
protected

All the nodes we already visited

Definition at line 120 of file AdvancedPhysicalNodeFactory.h.


The documentation for this class was generated from the following files: