AllianceDB  0.0.1
AllianceDB is an open-source suite, including benchmarks and libs for evaluating and improving stream operation algorithms on modern hardwares.
Collaboration diagram for Basic definitions:

Classes

class  INTELLI::Tuple
 The class to describe a tuple. More...
 
class  INTELLI::RelationCouple
 
class  INTELLI::WindowCouple
 
class  INTELLI::ConcurrentQWindowCouple
 
class  INTELLI::Result
 

Macros

#define newTuplePtrQueue(n)   make_shared<INTELLI::SPSCQueue<INTELLI::TuplePtr>>(n)
 To create a new TuplePtrQueue. More...
 
#define newWindowQueue(n)   make_shared<INTELLI::SPSCQueue<WindowOfTuples>>(n)
 
#define newCmdQueue(n)   make_shared<INTELLI::SPSCQueue<INTELLI::join_cmd_t>>(n)
 

Typedefs

typedef uint64_t INTELLI::keyType
 
typedef uint64_t INTELLI::valueType
 
typedef int INTELLI::numberType
 
typedef std::mutex INTELLI::mutex
 
typedef INTELLI::DupicatedHashTable< keyType, keyTypeINTELLI::hashtable
 
typedef std::queue< numberType > INTELLI::tupleKeyQueue
 
typedef std::shared_ptr< class TupleINTELLI::TuplePtr
 The class to describe a shared pointer to Tuple. More...
 
typedef std::shared_ptr< class RelationCoupleINTELLI::RelationCouplePtr
 
typedef std::shared_ptr< std::barrier<> > INTELLI::BarrierPtr
 
typedef std::vector< TuplePtrINTELLI::WindowOfTuples
 
typedef std::queue< TuplePtrINTELLI::TuplePtrQueueIn
 To describe a local queue of TuplePtr. More...
 
typedef moodycamel::ConcurrentQueue< TuplePtrINTELLI::concurrentTupleQueue
 
typedef std::shared_ptr< INTELLI::SPSCQueue< INTELLI::TuplePtr > > INTELLI::TuplePtrQueue
 To describe a queue of TuplePtr under SPSCQueue. More...
 
typedef std::shared_ptr< std::queue< INTELLI::TuplePtr > > INTELLI::TupleQueueSelfPtr
 
typedef std::shared_ptr< INTELLI::SPSCQueue< vector< INTELLI::TuplePtr > > > INTELLI::WindowQueue
 
typedef std::shared_ptr< INTELLI::SPSCQueue< INTELLI::join_cmd_t > > INTELLI::CmdQueuePtr
 

Enumerations

enum  join_type_t { CNT_BASED = 1 , TIME_STAMP_BASED = 2 }
 
enum  join_cmd_t {
  CMD_ACK = 1 , CMD_STOP = 2 , CMD_NEXT_WSTR , CMD_NEXT_WSTS ,
  CMD_NEXT_TSWR , CMD_NEXT_TSTR , CMD_NEXT_TS_ONLY , CMD_NEXT_TR_ONLY
}
 

Functions

 INTELLI::Tuple::Tuple (keyType k)
 construct with key More...
 
 INTELLI::Tuple::Tuple (keyType k, valueType v)
 construct with key and value More...
 
 INTELLI::Tuple::Tuple (keyType k, valueType v, size_t sk)
 construct with key, value and subkey More...
 
 INTELLI::WindowCouple::WindowCouple (numberType windowSize)
 
 INTELLI::WindowCouple::WindowCouple (numberType windowSizeR, numberType windowSizeS)
 
 INTELLI::ConcurrentQWindowCouple::ConcurrentQWindowCouple (numberType windowSize)
 
 INTELLI::ConcurrentQWindowCouple::ConcurrentQWindowCouple (numberType windowSizeR, numberType windowSizeS)
 
Result INTELLI::Result::operator++ (int)
 
void INTELLI::Result::statPrinter ()
 

Variables

keyType INTELLI::Tuple::key
 
valueType INTELLI::Tuple::payload
 
size_t INTELLI::Tuple::subKey = 0
 
TuplePtrQueueIn INTELLI::RelationCouple::relationS
 
TuplePtrQueueIn INTELLI::RelationCouple::relationR
 
TuplePtrQueueIn INTELLI::WindowCouple::windowS
 
TuplePtrQueueIn INTELLI::WindowCouple::windowR
 
hashtable INTELLI::WindowCouple::hashtableS
 
hashtable INTELLI::WindowCouple::hashtableR
 
numberType INTELLI::WindowCouple::windowSize
 
numberType INTELLI::WindowCouple::windowSizeR
 
numberType INTELLI::WindowCouple::windowSizeS
 
mutex INTELLI::WindowCouple::windowLock
 
concurrentTupleQueue INTELLI::ConcurrentQWindowCouple::windowS
 
concurrentTupleQueue INTELLI::ConcurrentQWindowCouple::windowR
 
hashtable INTELLI::ConcurrentQWindowCouple::hashtableS
 
hashtable INTELLI::ConcurrentQWindowCouple::hashtableR
 
numberType INTELLI::ConcurrentQWindowCouple::windowSize
 
numberType INTELLI::ConcurrentQWindowCouple::windowSizeR
 
numberType INTELLI::ConcurrentQWindowCouple::windowSizeS
 
mutex INTELLI::ConcurrentQWindowCouple::windowLock
 
numberType INTELLI::Result::joinNumber
 
numberType INTELLI::Result::streamSize
 
string INTELLI::Result::algoName
 
string INTELLI::Result::dataSetName
 
double INTELLI::Result::timeTaken
 
struct timeval INTELLI::Result::timeBegin
 

Detailed Description

We define the classes of Tuple, window, queue, etc. here

Macro Definition Documentation

◆ newTuplePtrQueue

#define newTuplePtrQueue (   n)    make_shared<INTELLI::SPSCQueue<INTELLI::TuplePtr>>(n)

To create a new TuplePtrQueue.

[newTuplePtrQueue]

Parameters
nThe length of queue

Typedef Documentation

◆ hashtable

◆ keyType

typedef uint64_t INTELLI::keyType

Type of the join key, default uint64_t

◆ TuplePtr

typedef std::shared_ptr<class Tuple> INTELLI::TuplePtr

The class to describe a shared pointer to Tuple.

[TuplePtr]

◆ TuplePtrQueue

To describe a queue of TuplePtr under SPSCQueue.

Note
This one is thread-safe
Warning
Must be inited by newTuplePtrQueue before use

◆ TuplePtrQueueIn

To describe a local queue of TuplePtr.

Warning
This is not thread-safe, only used for local data

◆ valueType

typedef uint64_t INTELLI::valueType

Type of the payload, default uint64_t

Function Documentation

◆ Tuple() [1/3]

INTELLI::Tuple::Tuple ( keyType  k)

construct with key

Parameters
kthe key

◆ Tuple() [2/3]

INTELLI::Tuple::Tuple ( keyType  k,
valueType  v 
)

construct with key and value

Parameters
kthe key
vthe value of payload

◆ Tuple() [3/3]

INTELLI::Tuple::Tuple ( keyType  k,
valueType  v,
size_t  sk 
)

construct with key, value and subkey

Parameters
kthe key
vthe value of payload
skthe subkey

Variable Documentation

◆ key

keyType INTELLI::Tuple::key

The key used for relational join

◆ payload

valueType INTELLI::Tuple::payload

The payload, can also be pointer

◆ subKey

size_t INTELLI::Tuple::subKey = 0

subkey is preserved for join system, e.g., it can be the time stamp or tuple count