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::SimplePhysicalNodeFactory Class Reference

#include <SimplePhysicalNodeFactory.h>

+ Inheritance diagram for pdb::SimplePhysicalNodeFactory:
+ Collaboration diagram for pdb::SimplePhysicalNodeFactory:

Public Member Functions

 SimplePhysicalNodeFactory (const string &jobId, const Handle< ComputePlan > &computePlan, const ConfigurationPtr &conf)
 
AbstractPhysicalNodePtr createAnalyzerNode (AtomicComputationPtr tcapNode)
 
- Public Member Functions inherited from pdb::AbstractPhysicalNodeFactory
 AbstractPhysicalNodeFactory (const Handle< ComputePlan > &computePlan)
 

Private Member Functions

std::vector
< AbstractPhysicalNodePtr
generateAnalyzerGraph (std::vector< AtomicComputationPtr > sources) override
 
void generateConsumerNode (AbstractPhysicalNodePtr source, AtomicComputationPtr node)
 

Private Attributes

std::map< std::string,
AbstractPhysicalNodePtr
nodes
 
std::string jobId
 
ConfigurationPtr conf
 

Additional Inherited Members

- Protected Attributes inherited from pdb::AbstractPhysicalNodeFactory
Handle< ComputePlancomputePlan
 
LogicalPlanPtr logicalPlan
 
AtomicComputationList computationGraph
 

Detailed Description

This class is a factory for the nodes of a SimplePhysicalNode graph

Definition at line 31 of file SimplePhysicalNodeFactory.h.

Constructor & Destructor Documentation

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

Definition at line 24 of file SimplePhysicalNodeFactory.cc.

Member Function Documentation

AbstractPhysicalNodePtr pdb::SimplePhysicalNodeFactory::createAnalyzerNode ( AtomicComputationPtr  tcapNode)

Depending on the type of the tcapNode we are dealing with create the appropriate SimplePhysicalNode Currently we are differentiating between three types of nodes :

  1. ApplyAggTypeID -> SimplePhysicalAggregationNode
  2. ApplyJoinTypeID -> SimplePhysicalJoinNode
  3. Any other node -> SimplePhysicalNode
Parameters
tcapNodethe TCAP node we are analyzing
Returns
the created node

Definition at line 30 of file SimplePhysicalNodeFactory.cc.

+ Here is the caller graph for this function:

std::vector< AbstractPhysicalNodePtr > pdb::SimplePhysicalNodeFactory::generateAnalyzerGraph ( std::vector< AtomicComputationPtr sources)
overrideprivatevirtual

This method is used to generate a TCAP analyzer graph, it is recursing

Parameters
sources
Returns

Implements pdb::AbstractPhysicalNodeFactory.

Definition at line 52 of file SimplePhysicalNodeFactory.cc.

+ Here is the call graph for this function:

void pdb::SimplePhysicalNodeFactory::generateConsumerNode ( AbstractPhysicalNodePtr  source,
AtomicComputationPtr  node 
)
private

This method generates the node that is consuming this source and adds it to the list of its consumers

Parameters
source- the source AbstractPhysicalNode we are coming from
node- the AtomicComputation from which we are going to create the consumer node

Definition at line 78 of file SimplePhysicalNodeFactory.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

ConfigurationPtr pdb::SimplePhysicalNodeFactory::conf
private

A configuration object for this cluster node

Definition at line 82 of file SimplePhysicalNodeFactory.h.

std::string pdb::SimplePhysicalNodeFactory::jobId
private

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

Definition at line 77 of file SimplePhysicalNodeFactory.h.

std::map<std::string, AbstractPhysicalNodePtr> pdb::SimplePhysicalNodeFactory::nodes
private

This map is used to store nodes we created to avoid creating duplicates. The key is the outputName of the AtomicComputation the value is the created node.

Definition at line 71 of file SimplePhysicalNodeFactory.h.


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