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
TupleSetJobStageBuilder.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * *
3  * Copyright 2018 Rice University *
4  * *
5  * Licensed under the Apache License, Version 2.0 (the "License"); *
6  * you may not use this file except in compliance with the License. *
7  * You may obtain a copy of the License at *
8  * *
9  * http://www.apache.org/licenses/LICENSE-2.0 *
10  * *
11  * Unless required by applicable law or agreed to in writing, software *
12  * distributed under the License is distributed on an "AS IS" BASIS, *
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14  * See the License for the specific language governing permissions and *
15  * limitations under the License. *
16  * *
17  *****************************************************************************/
18 #ifndef PDB_TUPLESETJOBSTAGE_H
19 #define PDB_TUPLESETJOBSTAGE_H
20 
21 #include "Handle.h"
22 #include "TupleSetJobStage.h"
23 
24 namespace pdb {
25 
27 typedef std::shared_ptr<TupleSetJobStageBuilder> TupleSetJobStageBuilderPtr;
28 
30 
31 public:
32 
37 
42  void setJobId(const std::string &jobId);
43 
48  void setJobStageId(int jobStageId);
49 
54  void setComputePlan(const Handle<ComputePlan> &plan);
55 
60  void setSourceTupleSetName(const std::string &sourceTupleSetSpecifier);
61 
66  void setTargetTupleSetName(const std::string &targetTupleSetName);
67 
73  void setTargetComputationName(const std::string &targetComputationSpecifier);
74 
79  void addTupleSetToBuildPipeline(const std::string &buildMe);
80 
86  void addHashSetToProbe(const std::string &outputName, const std::string &hashSetName);
87 
94 
101 
106  void setOutputTypeName(const std::string &outputTypeName);
107 
112  void setProbing(bool isProbing);
113 
119 
125  void setRepartitionJoin(bool repartitionJoinOrNot);
126 
127 
133  void setRepartitionVector(bool repartitionVectorOrNot);
134 
135 
140  void setBroadcasting(bool broadcastOrNot);
141 
146  void setRepartition(bool repartitionOrNot);
147 
153  void setCollectAsMap(bool collectAsMapOrNot);
154 
160 
167 
173 
178  bool isPipelineProbing();
179 
186 
192  const std::string &getSourceTupleSetName() const;
193 
199  const std::string &getLastSetThatBuildsPipeline() const;
200 
206 
207 private:
208 
212  std::string jobId;
213 
218 
222  std::string sourceTupleSetName;
223 
227  std::string targetTupleSetName;
228 
234 
239 
244  std::vector<std::string> buildTheseTupleSets;
245 
249  std::string outputTypeName;
250 
256 
262 
268 
273 
278 
283 
289 
295 
296 
300  bool isProbing;
301 
306 
312 
318 
324 
325 };
326 
327 }
328 
329 #endif //PDB_TUPLESETJOBSTAGE_H
void setSourceContext(const Handle< SetIdentifier > &sourceContext)
Handle< SetIdentifier > sinkContext
void setComputePlan(const Handle< ComputePlan > &plan)
AllocatorPolicy
Definition: Allocator.h:130
void setBroadcasting(bool broadcastOrNot)
void setRepartitionVector(bool repartitionVectorOrNot)
void addTupleSetToBuildPipeline(const std::string &buildMe)
void setJobId(const std::string &jobId)
Handle< TupleSetJobStage > build()
std::vector< std::string > buildTheseTupleSets
void setSinkContext(const Handle< SetIdentifier > &sinkContext)
Handle< Map< String, String > > hashSetsToProbe
void setAllocatorPolicy(AllocatorPolicy policy)
void setNumNodesToCollect(int numNodesToCollect)
void setInputAggHashOut(bool inputAggHashOut)
const std::string & getLastSetThatBuildsPipeline() const
void setOutputTypeName(const std::string &outputTypeName)
void setTargetTupleSetName(const std::string &targetTupleSetName)
Handle< SetIdentifier > getSourceSetIdentifier()
void addHashSetToProbe(const std::string &outputName, const std::string &hashSetName)
void setCollectAsMap(bool collectAsMapOrNot)
void setSourceTupleSetName(const std::string &sourceTupleSetSpecifier)
void setTargetComputationName(const std::string &targetComputationSpecifier)
void setRepartition(bool repartitionOrNot)
Handle< SetIdentifier > combinerContext
std::shared_ptr< TupleSetJobStageBuilder > TupleSetJobStageBuilderPtr
void setRepartitionJoin(bool repartitionJoinOrNot)
void setCombiner(Handle< SetIdentifier > combinerContext)
Handle< SetIdentifier > sourceContext
const std::string & getSourceTupleSetName() const