6 #ifndef _INCLUDE_TESTBENCH_RandomDataLoader_H_
7 #define _INCLUDE_TESTBENCH_RandomDataLoader_H_
9 #include <Utils/MicroDataSet.hpp>
10 using namespace INTELLI;
37 tsType windowLenMs, timeStepUs, watermarkTimeMs, maxArrivalSkewMs, eventRateKTps;
38 vector<tsType> genArrivalTime(vector<tsType> eventTime, vector<tsType> arrivalSkew) {
39 vector<tsType> ru = vector<tsType>(eventTime.size());
40 size_t len = (eventTime.size() > arrivalSkew.size()) ? arrivalSkew.size() : eventTime.size();
41 for (
size_t i = 0; i < len; i++) {
42 ru[i] = eventTime[i] + arrivalSkew[i];
47 void bubble_sort(vector<OoOJoin::TrackTuplePtr> &arr) {
50 size_t len = arr.size();
51 for (i = 0; i < len - 1; i++)
52 for (j = 0; j < len - 1 - i; j++)
53 if (arr[j]->arrivalTime > arr[j + 1]->arrivalTime) {
59 vector<OoOJoin::TrackTuplePtr> genTuples(vector<keyType> keyS, vector<tsType> eventS, vector<tsType> arrivalS) {
60 size_t len = keyS.size();
61 vector<OoOJoin::TrackTuplePtr> ru = vector<OoOJoin::TrackTuplePtr>(len);
62 for (
size_t i = 0; i < len; i++) {
68 vector<TrackTuplePtr> genTuplesSmooth(
size_t testSize,
73 uint64_t seed = 999) {
75 uint64_t tsGrow = 1000 * groupUnit / rateKtps;
79 vector<tsType> arrivalS = genArrivalTime(eventS, arrivalSkew);
80 vector<TrackTuplePtr> genTuple = genTuples(keyS, eventS, arrivalS);
85 vector<TrackTuplePtr> sTuple, rTuple;
108 virtual vector<TrackTuplePtr> getTupleVectorS();
114 virtual vector<TrackTuplePtr> getTupleVectorR();
130 #define newRandomDataLoader std::make_shared<OoOJoin::RandomDataLoader>
#define newTrackTuple
(Macro) To creat a new TrackTuple under shared pointer.
Definition: Tuples.h:176
The all-in-one class for the Micro dataset.
Definition: MicroDataSet.hpp:45
The abstract class of dataloader.
Definition: AbstractDataLoader.h:39
The dataloader which produces random key, random value and random skewness.
Definition: RandomDataLoader.h:35
virtual bool setModConfig(ConfigMapPtr cfg)
Set the modification config map related to this loader.
Definition: RandomDataLoader.h:99
std::shared_ptr< class RandomDataLoader > RandomDataLoaderPtr
The class to describe a shared pointer to RandomDataLoader.
Definition: RandomDataLoader.h:124
uint64_t keyType
Definition: Tuples.h:18
uint64_t tsType
Definition: Tuples.h:20
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
vector< tsType > genRandInt(size_t len, tsType maxV, tsType minV=0)
generate the vector of random integer
Definition: MicroDataSet.hpp:159
vector< tsType > genSmoothTimeStamp(size_t len, size_t step, size_t interval)
The function to generate a vector of timestamp which grows smoothly.
Definition: MicroDataSet.hpp:222
Definition: OperatorTable.cpp:7