#include <stringjoin_parallel.h>
Public Types | |
using | InvListsParallel = std::unordered_map<uint64_t, std::vector<int>> |
using | InvListPrefix = std::unordered_map<uint64_t, std::vector<std::pair<int, int>>> |
Public Member Functions | |
StringJoinParallel ()=default | |
StringJoinParallel (const std::vector< std::string > &data, int threshold, ui _maxHeapSize=0) | |
StringJoinParallel (const std::vector< std::string > &work, const std::vector< std::string > &query, int threshold, ui _maxHeapSize=0) | |
~StringJoinParallel () | |
StringJoinParallel (const StringJoinParallel &other)=delete | |
StringJoinParallel (StringJoinParallel &&other)=delete | |
void | init () |
void | prepareSelf () |
void | prepareRS () |
bool | verifyLeftPartSelf (int xid, int yid, int xlen, int ylen, int Tau, int tid, int sharing=0) |
bool | verifyRightPartSelf (int xid, int yid, int xlen, int ylen, int xpos, int ypos, int Tau, int tid, int sharing=0) |
bool | verifyLeftPartRS (int xid, int yid, int xlen, int ylen, int Tau, int tid, int sharing=0) |
bool | verifyRightPartRS (int xid, int yid, int xlen, int ylen, int xpos, int ypos, int Tau, int tid, int sharing=0) |
bool | iterativeVerifyLeftPartRS (int xid, int yid, int stPos, int xlen, int ylen, int wlen, int taul, int partId) |
bool | iterativeVerifyRightPartRS (int xid, int yid, int xpos, int ypos, int xlen, int ylen, int partId, int tid) |
void | selfJoin (std::vector< std::pair< int, int > > &finalPairs) |
void | RSJoin (std::vector< std::pair< int, int > > &finalPairs) |
void | checkSelfResults () const |
void | printDebugInfo (int currLen) const |
Public Attributes | |
int | sharePrefix {0} |
std::vector< uint64_t > | workPrefixHash |
std::vector< uint64_t > | queryPrefixHash |
int | earlyTerminated [MAXTHREADNUM] = { 0 } |
int | workMinDictLen {19260817} |
int | workMaxDictLen {0} |
int | queryMinDictLen {19260817} |
int | queryMaxDictLen {0} |
int | maxDictLen {0} |
int | minDictLen {0} |
uint64_t | avgDictLen {0} |
int | workN {0} |
int | queryN {0} |
int | N {0} |
int | D {0} |
int | PN {0} |
int | hashNumber {31} |
int | modNumber {1000000007} |
std::vector< std::string > | work_dataset |
std::vector< std::string > | query_dataset |
std::vector< std::pair< int, int > > | pairs [MAXTHREADNUM] |
uint64_t | candNum {0} |
uint64_t | veriNum {0} |
uint64_t | listNum {0} |
uint64_t | realNum {0} |
bool | valid [MAXTHREADNUM] |
int | left [MAXTHREADNUM] |
int | right [MAXTHREADNUM] |
int | _left [MAXTHREADNUM] |
int | _right [MAXTHREADNUM] |
int ** | matrix [MAXTHREADNUM] |
int ** | _matrix [MAXTHREADNUM] |
bool * | quickRef [MAXTHREADNUM] |
int ** | partLen {nullptr} |
int ** | partPos {nullptr} |
int * | dist {nullptr} |
std::vector< int > | workLengthArray |
std::vector< int > | queryLengthArray |
std::vector< std::vector< int > > | worklengthMap |
std::vector< std::vector< int > > | querylengthMap |
uint64_t * | power {nullptr} |
InvListsParallel ** | invLists {nullptr} |
InvListPrefix ** | invListsPre {nullptr} |
std::vector< PIndex > ** | partIndex {nullptr} |
hashValue * | hv [MAXTHREADNUM] |
std::unordered_set< std::string > | strCount |
int * | workInvSC {nullptr} |
int * | queryInvSC {nullptr} |
ui | maxHeapSize {0} |
using StringJoinParallel::InvListPrefix = std::unordered_map<uint64_t, std::vector<std::pair<int, int>>> |
using StringJoinParallel::InvListsParallel = std::unordered_map<uint64_t, std::vector<int>> |
|
default |
|
inline |
|
inline |
|
inline |
|
delete |
|
delete |
void StringJoinParallel::checkSelfResults | ( | ) | const |
void StringJoinParallel::init | ( | ) |
|
inline |
|
inline |
void StringJoinParallel::prepareRS | ( | ) |
void StringJoinParallel::prepareSelf | ( | ) |
void StringJoinParallel::printDebugInfo | ( | int | currLen | ) | const |
void StringJoinParallel::RSJoin | ( | std::vector< std::pair< int, int > > & | finalPairs | ) |
void StringJoinParallel::selfJoin | ( | std::vector< std::pair< int, int > > & | finalPairs | ) |
|
inline |
|
inline |
|
inline |
|
inline |
int StringJoinParallel::_left[MAXTHREADNUM] |
int** StringJoinParallel::_matrix[MAXTHREADNUM] |
int StringJoinParallel::_right[MAXTHREADNUM] |
uint64_t StringJoinParallel::avgDictLen {0} |
uint64_t StringJoinParallel::candNum {0} |
int StringJoinParallel::D {0} |
int* StringJoinParallel::dist {nullptr} |
int StringJoinParallel::earlyTerminated[MAXTHREADNUM] = { 0 } |
int StringJoinParallel::hashNumber {31} |
hashValue* StringJoinParallel::hv[MAXTHREADNUM] |
InvListsParallel** StringJoinParallel::invLists {nullptr} |
InvListPrefix** StringJoinParallel::invListsPre {nullptr} |
int StringJoinParallel::left[MAXTHREADNUM] |
uint64_t StringJoinParallel::listNum {0} |
int** StringJoinParallel::matrix[MAXTHREADNUM] |
int StringJoinParallel::maxDictLen {0} |
ui StringJoinParallel::maxHeapSize {0} |
int StringJoinParallel::minDictLen {0} |
int StringJoinParallel::modNumber {1000000007} |
int StringJoinParallel::N {0} |
std::vector<std::pair<int, int> > StringJoinParallel::pairs[MAXTHREADNUM] |
std::vector<PIndex>** StringJoinParallel::partIndex {nullptr} |
int** StringJoinParallel::partLen {nullptr} |
int** StringJoinParallel::partPos {nullptr} |
int StringJoinParallel::PN {0} |
uint64_t* StringJoinParallel::power {nullptr} |
std::vector<std::string> StringJoinParallel::query_dataset |
int* StringJoinParallel::queryInvSC {nullptr} |
std::vector<int> StringJoinParallel::queryLengthArray |
std::vector<std::vector<int> > StringJoinParallel::querylengthMap |
int StringJoinParallel::queryMaxDictLen {0} |
int StringJoinParallel::queryMinDictLen {19260817} |
int StringJoinParallel::queryN {0} |
std::vector<uint64_t> StringJoinParallel::queryPrefixHash |
bool* StringJoinParallel::quickRef[MAXTHREADNUM] |
uint64_t StringJoinParallel::realNum {0} |
int StringJoinParallel::right[MAXTHREADNUM] |
int StringJoinParallel::sharePrefix {0} |
std::unordered_set<std::string> StringJoinParallel::strCount |
bool StringJoinParallel::valid[MAXTHREADNUM] |
uint64_t StringJoinParallel::veriNum {0} |
std::vector<std::string> StringJoinParallel::work_dataset |
int* StringJoinParallel::workInvSC {nullptr} |
std::vector<int> StringJoinParallel::workLengthArray |
std::vector<std::vector<int> > StringJoinParallel::worklengthMap |
int StringJoinParallel::workMaxDictLen {0} |
int StringJoinParallel::workMinDictLen {19260817} |
int StringJoinParallel::workN {0} |
std::vector<uint64_t> StringJoinParallel::workPrefixHash |