Classes | |
class | INTELLI::NPJ_thread |
The thread used by NPJ. More... | |
class | INTELLI::NPJ |
The top class package of NPJ, providing a "join function". More... | |
class | INTELLI::NPJSingle |
The top class package of single threadNPJ, providing a "join function". More... | |
Functions | |
void | INTELLI::NPJ_thread::inlineMain () |
The 'main' function of NPJ thread. More... | |
void | INTELLI::NPJ_thread::init (TuplePtr *_ts, TuplePtr *_tr, size_t _sLen, size_t _rLen, int _cpu, MultiThreadHashTablePtr _table, BarrierPtr bar) |
THe init function. More... | |
size_t | INTELLI::NPJ_thread::getResult () |
void | INTELLI::NPJ_thread::waitBuildBar (void) |
virtual size_t | INTELLI::NPJ::join (TuplePtrQueue ts, TuplePtrQueue tr, int threads=1) |
The function to execute join. More... | |
virtual size_t | INTELLI::NPJ::join (TuplePtr *ts, TuplePtr *tr, size_t tsLen, size_t trLen, int threads=1) |
The function to execute join, legacy way. More... | |
virtual size_t | INTELLI::NPJ::join (TuplePtr *ts, TuplePtr tr, size_t tsLen, int threads=1) |
The function to execute join, batch of one, tuple of another. More... | |
virtual size_t | INTELLI::NPJ::join (TuplePtrQueue ts, TuplePtr tr, int threads=1) |
The function to execute join, batch of one, tuple of another. More... | |
virtual size_t | INTELLI::NPJSingle::join (TuplePtrQueue ts, TuplePtrQueue tr, int threads=1) |
The function to execute join. More... | |
virtual size_t | INTELLI::NPJSingle::join (TuplePtr *ts, TuplePtr *tr, size_t tsLen, size_t trLen, int threads=1) |
The function to execute join, legacy way. More... | |
virtual size_t | INTELLI::NPJSingle::join (TuplePtr *ts, TuplePtr tr, size_t tsLen, int threads=1) |
The function to execute join, batch of one, tuple of another. More... | |
virtual size_t | INTELLI::NPJSingle::join (TuplePtrQueue ts, TuplePtr tr, int threads=1) |
The function to execute join, batch of one, tuple of another. More... | |
typedef std::shared_ptr< NPJ > | INTELLI::NPJPtr |
typedef std::shared_ptr< NPJSingle > | INTELLI::NPJSinglePtr |
#define | newNPJ() make_shared<NPJ>() |
#define | newNPJSingle() make_shared<NPJSingle>() |
NPJ is a parallel version of the canonical hash join algorithm. Both input relations are divided into equisized portions to be assigned to a number of threads. In the build phase, all threads populate a shared hash table with all tuples of R. After synchronization via a barrier, all threads enter the probe phase, and concurrently find matching join tuples in their assigned portions of S.
|
inline |
THe init function.
_ts | Memory pointer of S |
_tr | Memory pointer of S |
_sLen | Length of S |
_rLen | Length of R |
_cpu | Core to bind, -1 means let OS decide |
_table | The shared pointer of hash table |
bar | THe barrier used for build phase |
|
protectedvirtual |
The 'main' function of NPJ thread.
Reimplemented from INTELLI::AbstractC20Thread.
|
virtual |
The function to execute join, legacy way.
ts | The tuples of stream S, legacy pointer |
tr | The tuples of stream R, legacy pointer |
tsLen | The length of S |
trLen | The length of R |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join, legacy way.
ts | The tuples of stream S, legacy pointer |
tr | The tuples of stream R, legacy pointer |
tsLen | The length of S |
trLen | The length of R |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join, batch of one, tuple of another.
ts | The tuples of stream S, legacy pointer |
tr | The tuples of stream R, one tuple |
tsLen | The length of S |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join, batch of one, tuple of another.
ts | The tuples of stream S, legacy pointer |
tr | The tuples of stream R, one tuple |
tsLen | The length of S |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join, batch of one, tuple of another.
ts | The tuples of stream S |
tr | The tuple of stream R |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join, batch of one, tuple of another.
ts | The tuples of stream S |
tr | The tuple of stream R |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join.
ts | The tuples of stream S |
tr | The tuples of stream R |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.
|
virtual |
The function to execute join.
ts | The tuples of stream S |
tr | The tuples of stream R |
threads | The parallel threads |
Reimplemented from INTELLI::AbstractJoinAlgo.