
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.