AllianceDB  0.0.1
AllianceDB is an open-source suite, including benchmarks and libs for evaluating and improving stream operation algorithms on modern hardwares.
INTELLI::AbstractJoinAlgo Class Reference

The abstraction to describe a join algorithm, providing virtual function of join. More...

#include <JoinAlgo/AbstractJoinAlgo.h>

Inheritance diagram for INTELLI::AbstractJoinAlgo:
Collaboration diagram for INTELLI::AbstractJoinAlgo:

Public Member Functions

virtual size_t join (TuplePtrQueue ts, TuplePtrQueue tr, int threads=1)
 The function to execute join, batch of both. More...
 
virtual size_t join (TuplePtr *ts, TuplePtr *tr, size_t tsLen, size_t trLen, int threads=1)
 The function to execute join, batch of both, legacy way. More...
 
virtual size_t 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 join (TuplePtrQueue ts, TuplePtr tr, int threads=1)
 The function to execute join, batch of one, tuple of another. More...
 
void setAlgoName (string name)
 set the name of algorithm More...
 
string getAlgoName ()
 get the name of algorithm More...
 

Protected Attributes

string nameTag
 

Detailed Description

The abstraction to describe a join algorithm, providing virtual function of join.

Note
The derived new algorithm should contain the join interface, for batch-batch and batch-tuple

Member Function Documentation

◆ getAlgoName()

string INTELLI::AbstractJoinAlgo::getAlgoName ( )
inline

get the name of algorithm

Returns
The name

◆ join() [1/4]

virtual size_t INTELLI::AbstractJoinAlgo::join ( TuplePtr ts,
TuplePtr tr,
size_t  tsLen,
size_t  trLen,
int  threads = 1 
)
inlinevirtual

The function to execute join, batch of both, legacy way.

Parameters
tsThe tuples of stream S, legacy pointer
trThe tuples of stream R, legacy pointer
tsLenThe length of S
trLenThe length of R
threadsThe parallel threads
Returns
The joined tuples
Warning
This is a legacy function, avoid using it if possible

Reimplemented in INTELLI::NPJSingle, INTELLI::NPJ, and INTELLI::NestedLoopJoin.

◆ join() [2/4]

virtual size_t INTELLI::AbstractJoinAlgo::join ( TuplePtr ts,
TuplePtr  tr,
size_t  tsLen,
int  threads = 1 
)
inlinevirtual

The function to execute join, batch of one, tuple of another.

Parameters
tsThe tuples of stream S, legacy pointer
trThe tuples of stream R, one tuple
tsLenThe length of S
threadsThe parallel threads
Returns
The joined tuples
Warning
This is a legacy function, avoid using it if possible

Reimplemented in INTELLI::NPJSingle, INTELLI::NPJ, and INTELLI::NestedLoopJoin.

◆ join() [3/4]

virtual size_t INTELLI::AbstractJoinAlgo::join ( TuplePtrQueue  ts,
TuplePtr  tr,
int  threads = 1 
)
inlinevirtual

The function to execute join, batch of one, tuple of another.

Parameters
tsThe tuples of stream S
trThe tuple of stream R
threadsThe parallel threads
Returns
The joined tuples

Reimplemented in INTELLI::NPJSingle, INTELLI::NPJ, and INTELLI::NestedLoopJoin.

◆ join() [4/4]

virtual size_t INTELLI::AbstractJoinAlgo::join ( TuplePtrQueue  ts,
TuplePtrQueue  tr,
int  threads = 1 
)
inlinevirtual

The function to execute join, batch of both.

Parameters
tsThe tuples of stream S
trThe tuples of stream R
threadsThe parallel threads
Returns
The joined tuples
Todo:
Add AMP and NUMA support in the future, so far only generic SMP

Reimplemented in INTELLI::NPJSingle, INTELLI::NPJ, and INTELLI::NestedLoopJoin.

◆ setAlgoName()

void INTELLI::AbstractJoinAlgo::setAlgoName ( string  name)
inline

set the name of algorithm

Parameters
nameAlgorithm name

The documentation for this class was generated from the following file: