1
0
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:
Roman Nozdrin
2022-07-21 19:37:18 +00:00
committed by Leonid Fedorov
parent 9ef16c6ded
commit a9d8924683
11 changed files with 418 additions and 232 deletions

View File

@ -275,6 +275,7 @@ class MessageQueueClient
* @brief compare the addresses of 2 MessageQueueClient
*/
inline bool isSameAddr(const MessageQueueClient& rhs) const;
inline bool isSameAddr(const struct in_addr& ipv4Addr) const;
bool isConnected()
{
@ -285,6 +286,17 @@ class MessageQueueClient
{
return fClientSock.hasData();
}
// This client's flag is set running DEC::Setup() call
bool atTheSameHost() const
{
return atTheSameHost_;
}
void atTheSameHost(const bool atTheSameHost)
{
atTheSameHost_ = atTheSameHost;
}
/*
* allow test suite access to private data for OOB test
*/
@ -312,6 +324,7 @@ class MessageQueueClient
mutable IOSocket fClientSock; /// the socket to communicate with the server
mutable logging::Logger fLogger;
bool fIsAvailable;
bool atTheSameHost_;
std::string fModuleName;
};
@ -327,6 +340,10 @@ inline bool MessageQueueClient::isSameAddr(const MessageQueueClient& rhs) const
{
return fClientSock.isSameAddr(&rhs.fClientSock);
}
inline bool MessageQueueClient::isSameAddr(const struct in_addr& ipv4Addr) const
{
return fClientSock.isSameAddr(ipv4Addr);
}
inline void MessageQueueClient::syncProto(bool use)
{
fClientSock.syncProto(use);
@ -335,4 +352,3 @@ inline void MessageQueueClient::syncProto(bool use)
} // namespace messageqcpp
#undef EXPORT