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

#include <PipelineStage.h>

+ Collaboration diagram for pdb::PipelineStage:

Public Member Functions

 ~PipelineStage ()
 
 PipelineStage (Handle< TupleSetJobStage > stage, SharedMemPtr shm, PDBLoggerPtr logger, ConfigurationPtr conf, NodeID nodeId, size_t batchSize, int numThreads)
 
bool storeShuffleData (Handle< Vector< Handle< Object >>> data, std::string databaseName, std::string setName, std::string address, int port, bool whetherToPersiste, std::string &errMsg)
 
bool storeCompressedShuffleData (char *bytes, size_t numBytes, std::string databaseName, std::string setName, std::string address, int port, std::string &errMsg)
 
bool sendData (PDBCommunicatorPtr conn, void *bytes, size_t size, std::string databaseName, std::string setName, std::string &errMsg)
 
size_t getBackendCircularBufferSize (bool &success, std::string &errMsg)
 
std::vector
< PageCircularBufferIteratorPtr
getUserSetIterators (HermesExecutionServer *server, int numThreads, bool &success, std::string &errMsg)
 
void feedSharedBuffers (HermesExecutionServer *server, std::vector< PageCircularBufferPtr > &sourceBuffers, int numPartitions, int &counter, PDBBuzzerPtr tempBuzzer, bool &success, std::string &errMsg)
 
DataProxyPtr createProxy (int i, pthread_mutex_t connection_mutex, std::string &errMsg)
 
void executePipelineWork (int i, SetSpecifierPtr outputSet, std::vector< PageCircularBufferIteratorPtr > &iterators, PartitionedHashSetPtr hashSet, DataProxyPtr proxy, std::vector< PageCircularBufferPtr > &sinkBuffers, HermesExecutionServer *server, std::string &errMsg)
 
Handle< TupleSetJobStage > & getJobStage ()
 
int getNumThreads ()
 
void runPipeline (HermesExecutionServer *server, std::vector< PageCircularBufferPtr > combinerBuffers, SetSpecifierPtr outputSet)
 
void runPipeline (HermesExecutionServer *server)
 
void runPipelineWithShuffleSink (HermesExecutionServer *server)
 
void runPipelineWithBroadcastSink (HermesExecutionServer *server)
 
void runPipelineWithHashPartitionSink (HermesExecutionServer *server)
 

Private Attributes

Handle< TupleSetJobStagejobStage
 
size_t batchSize
 
int numThreads
 
NodeID nodeId
 
PDBLoggerPtr logger
 
ConfigurationPtr conf
 
SharedMemPtr shm
 
OperatorID id
 
std::vector< int > nodeIds
 

Detailed Description

Definition at line 64 of file PipelineStage.h.

Constructor & Destructor Documentation

pdb::PipelineStage::~PipelineStage ( )

Definition at line 57 of file PipelineStage.cc.

pdb::PipelineStage::PipelineStage ( Handle< TupleSetJobStage stage,
SharedMemPtr  shm,
PDBLoggerPtr  logger,
ConfigurationPtr  conf,
NodeID  nodeId,
size_t  batchSize,
int  numThreads 
)

Definition at line 61 of file PipelineStage.cc.

Member Function Documentation

DataProxyPtr pdb::PipelineStage::createProxy ( int  i,
pthread_mutex_t  connection_mutex,
std::string &  errMsg 
)

Definition at line 323 of file PipelineStage.cc.

+ Here is the caller graph for this function:

void pdb::PipelineStage::executePipelineWork ( int  i,
SetSpecifierPtr  outputSet,
std::vector< PageCircularBufferIteratorPtr > &  iterators,
PartitionedHashSetPtr  hashSet,
DataProxyPtr  proxy,
std::vector< PageCircularBufferPtr > &  sinkBuffers,
HermesExecutionServer server,
std::string &  errMsg 
)

Definition at line 342 of file PipelineStage.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::PipelineStage::feedSharedBuffers ( HermesExecutionServer server,
std::vector< PageCircularBufferPtr > &  sourceBuffers,
int  numPartitions,
int &  counter,
PDBBuzzerPtr  tempBuzzer,
bool &  success,
std::string &  errMsg 
)

Definition at line 277 of file PipelineStage.cc.

+ Here is the call graph for this function:

size_t pdb::PipelineStage::getBackendCircularBufferSize ( bool &  success,
std::string &  errMsg 
)

Definition at line 215 of file PipelineStage.cc.

+ Here is the caller graph for this function:

Handle< TupleSetJobStage > & pdb::PipelineStage::getJobStage ( )

Definition at line 83 of file PipelineStage.cc.

int pdb::PipelineStage::getNumThreads ( )

Definition at line 88 of file PipelineStage.cc.

std::vector< PageCircularBufferIteratorPtr > pdb::PipelineStage::getUserSetIterators ( HermesExecutionServer server,
int  numThreads,
bool &  success,
std::string &  errMsg 
)

Definition at line 236 of file PipelineStage.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::PipelineStage::runPipeline ( HermesExecutionServer server,
std::vector< PageCircularBufferPtr combinerBuffers,
SetSpecifierPtr  outputSet 
)

Definition at line 868 of file PipelineStage.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::PipelineStage::runPipeline ( HermesExecutionServer server)

Definition at line 853 of file PipelineStage.cc.

+ Here is the call graph for this function:

void pdb::PipelineStage::runPipelineWithBroadcastSink ( HermesExecutionServer server)

Definition at line 1359 of file PipelineStage.cc.

+ Here is the call graph for this function:

void pdb::PipelineStage::runPipelineWithHashPartitionSink ( HermesExecutionServer server)

Definition at line 1495 of file PipelineStage.cc.

+ Here is the call graph for this function:

void pdb::PipelineStage::runPipelineWithShuffleSink ( HermesExecutionServer server)

Definition at line 1074 of file PipelineStage.cc.

+ Here is the call graph for this function:

bool pdb::PipelineStage::sendData ( PDBCommunicatorPtr  conn,
void *  bytes,
size_t  size,
std::string  databaseName,
std::string  setName,
std::string &  errMsg 
)

Definition at line 166 of file PipelineStage.cc.

+ Here is the caller graph for this function:

bool pdb::PipelineStage::storeCompressedShuffleData ( char *  bytes,
size_t  numBytes,
std::string  databaseName,
std::string  setName,
std::string  address,
int  port,
std::string &  errMsg 
)

Definition at line 128 of file PipelineStage.cc.

+ Here is the caller graph for this function:

bool pdb::PipelineStage::storeShuffleData ( Handle< Vector< Handle< Object >>>  data,
std::string  databaseName,
std::string  setName,
std::string  address,
int  port,
bool  whetherToPersiste,
std::string &  errMsg 
)

Definition at line 93 of file PipelineStage.cc.

+ Here is the caller graph for this function:

Member Data Documentation

size_t pdb::PipelineStage::batchSize
private

Definition at line 71 of file PipelineStage.h.

ConfigurationPtr pdb::PipelineStage::conf
private

Definition at line 83 of file PipelineStage.h.

OperatorID pdb::PipelineStage::id
private

Definition at line 89 of file PipelineStage.h.

Handle<TupleSetJobStage> pdb::PipelineStage::jobStage
private

Definition at line 68 of file PipelineStage.h.

PDBLoggerPtr pdb::PipelineStage::logger
private

Definition at line 80 of file PipelineStage.h.

NodeID pdb::PipelineStage::nodeId
private

Definition at line 77 of file PipelineStage.h.

std::vector<int> pdb::PipelineStage::nodeIds
private

Definition at line 92 of file PipelineStage.h.

int pdb::PipelineStage::numThreads
private

Definition at line 74 of file PipelineStage.h.

SharedMemPtr pdb::PipelineStage::shm
private

Definition at line 86 of file PipelineStage.h.


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