You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-5166 This patch adds support for in-memory communication b/w EM to PP via a shared queue in DEC class
JobList low-level code relateod to primitive jobs now uses shared pointers instead of ByteStream refs talking to DEC b/c same-node EM-PP communication now goes over a queue in DEC instead of a network hop. PP now has a separate thread that processes the primitive job messages from that DEC queue.
This commit is contained in:
committed by
Leonid Fedorov
parent
9ef16c6ded
commit
a9d8924683
@ -29,6 +29,7 @@
|
||||
//
|
||||
//
|
||||
|
||||
#include <mutex>
|
||||
#include <stdexcept>
|
||||
#include <unistd.h>
|
||||
#include <cstring>
|
||||
@ -1888,7 +1889,7 @@ void BatchPrimitiveProcessor::execute()
|
||||
}
|
||||
else
|
||||
{
|
||||
// We hae no more use for this allocation
|
||||
// We have no more use for this allocation
|
||||
for (i = 0; i < joinerCount; i++)
|
||||
for (j = 0; j < ridCount; ++j)
|
||||
tSmallSideMatches[i][j].clear();
|
||||
@ -2145,12 +2146,12 @@ void BatchPrimitiveProcessor::serializeStrings()
|
||||
|
||||
void BatchPrimitiveProcessor::sendResponse()
|
||||
{
|
||||
bool isLocalNodeConnection = exemgr::globServiceExeMgr->isLocalNodeSock(sock);
|
||||
// Here is the fast path for local EM to PM interacction. PM puts into the
|
||||
auto* exeMgrDecPtr = exemgr::globServiceExeMgr->getDec();
|
||||
// Here is the fast path for local EM to PM interaction. PM puts into the
|
||||
// input EM DEC queue directly.
|
||||
if (initiatedByEM_ && isLocalNodeConnection)
|
||||
// !sock has a 'same host connection' semantics here.
|
||||
if (initiatedByEM_ && (!sock || exeMgrDecPtr->clientAtTheSameHost(sock)))
|
||||
{
|
||||
joblist::DistributedEngineComm* exeMgrDecPtr = exemgr::globServiceExeMgr->getDec();
|
||||
exeMgrDecPtr->addDataToOutput(serialized);
|
||||
serialized.reset();
|
||||
return;
|
||||
|
Reference in New Issue
Block a user