OoOJoin  0.0.1
The next generation of out-of-order join operator
IAWJOperator.h
Go to the documentation of this file.
1 
2 //
3 // Created by tony on 22/11/22.
4 //
5 
6 #ifndef INTELLISTREAM_INCLUDE_OPERATOR_IAWJOPERATOR_H_
7 #define INTELLISTREAM_INCLUDE_OPERATOR_IAWJOPERATOR_H_
9 #include <Common/Window.h>
10 #include <atomic>
11 #include <WaterMarker/LatenessWM.h>
12 namespace OoOJoin {
30  protected:
31  Window myWindow;
32  size_t intermediateResult = 0;
33  string algoTag = "NestedLoopJoin";
34  uint64_t joinThreads = 1;
39  atomic_bool lockedByWaterMark = false;
40  AbstractWaterMarkerPtr wmGen = nullptr;
41  void conductComputation();
42  public:
43  IAWJOperator() {}
44  ~IAWJOperator() {}
51  virtual bool setConfig(ConfigMapPtr cfg);
58  virtual bool feedTupleS(TrackTuplePtr ts);
59 
66  virtual bool feedTupleR(TrackTuplePtr tr);
67 
72  virtual bool start();
73 
78  virtual bool stop();
79 
84  virtual size_t getResult();
85 
86 };
92 typedef std::shared_ptr<class IAWJOperator> IAWJOperatorPtr;
98 #define newIAWJOperator std::make_shared<OoOJoin::IAWJOperator>
99 }
100 #endif //INTELLISTREAM_INCLUDE_OPERATOR_IAWJOPERATOR_H_
The abstraction to describe a join operator, providing virtual function of using the operation.
Definition: AbstractOperator.h:35
The intra window join (IAWJ) operator, only considers a single window.
Definition: IAWJOperator.h:29
virtual bool setConfig(ConfigMapPtr cfg)
Set the config map related to this operator.
Definition: IAWJOperator.cpp:7
virtual bool feedTupleR(TrackTuplePtr tr)
feed a tuple R into the Operator
Definition: IAWJOperator.cpp:94
virtual bool start()
start this operator
Definition: IAWJOperator.cpp:30
virtual bool feedTupleS(TrackTuplePtr ts)
feed a tuple s into the Operator
Definition: IAWJOperator.cpp:79
virtual bool stop()
stop this operator
Definition: IAWJOperator.cpp:59
atomic_bool lockedByWaterMark
if operator is locked by watermark, it will never accept new incoming
Definition: IAWJOperator.h:39
virtual size_t getResult()
get the joined sum result
Definition: IAWJOperator.cpp:108
The class to describe a simplest window.
Definition: Window.h:22
std::shared_ptr< class IAWJOperator > IAWJOperatorPtr
The class to describe a shared pointer to IAWJOperator.
Definition: IAWJOperator.h:92
std::shared_ptr< class TrackTuple > TrackTuplePtr
The class to describe a shared pointer to TrackTuple.
Definition: Tuples.h:171
std::shared_ptr< ConfigMap > ConfigMapPtr
The class to describe a shared pointer to ConfigMap.
Definition: ConfigMap.hpp:356
Definition: OperatorTable.cpp:7
std::shared_ptr< class AbstractWaterMarker > AbstractWaterMarkerPtr
The class to describe a shared pointer to AbstractWaterMarker.
Definition: AbstractWaterMarker.h:111