1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

Merge branch 'develop-1.1' into 1.1-merge-up-20180621

This commit is contained in:
Andrew Hutchings
2018-06-22 14:51:20 +01:00
20 changed files with 1065 additions and 443 deletions

View File

@ -2067,6 +2067,11 @@ struct ReadThread
case DICT_CREATE_EQUALITY_FILTER:
{
PriorityThreadPool::Job job;
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new CreateEqualityFilter(bs));
OOBPool->addJob(job);
break;
@ -2075,6 +2080,11 @@ struct ReadThread
case DICT_DESTROY_EQUALITY_FILTER:
{
PriorityThreadPool::Job job;
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new DestroyEqualityFilter(bs));
OOBPool->addJob(job);
break;
@ -2108,9 +2118,11 @@ struct ReadThread
job.id = hdr->Hdr.UniqueID;
job.weight = LOGICAL_BLOCK_RIDS;
job.priority = hdr->Hdr.Priority;
if (hdr->flags & IS_SYSCAT)
{
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
//boost::thread t(DictScanJob(outIos, bs, writeLock));
// using already-existing threads may cut latency
// if it's changed back to running in an independent thread
@ -2155,9 +2167,12 @@ struct ReadThread
job.id = bpps->getID();
job.weight = ismHdr->Size;
job.priority = bpps->priority();
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
if (bpps->isSysCat())
{
//boost::thread t(*bpps);
// using already-existing threads may cut latency
// if it's changed back to running in an independent thread
@ -2176,6 +2191,11 @@ struct ReadThread
{
PriorityThreadPool::Job job;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new BPPHandler::Create(fBPPHandler, bs));
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
OOBPool->addJob(job);
//fBPPHandler->createBPP(*bs);
break;
@ -2186,6 +2206,11 @@ struct ReadThread
PriorityThreadPool::Job job;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new BPPHandler::AddJoiner(fBPPHandler, bs));
job.id = fBPPHandler->getUniqueID(bs, ismHdr->Command);
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
OOBPool->addJob(job);
//fBPPHandler->addJoinerToBPP(*bs);
break;
@ -2199,6 +2224,11 @@ struct ReadThread
PriorityThreadPool::Job job;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new BPPHandler::LastJoiner(fBPPHandler, bs));
job.id = fBPPHandler->getUniqueID(bs, ismHdr->Command);
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
OOBPool->addJob(job);
break;
}
@ -2210,6 +2240,11 @@ struct ReadThread
PriorityThreadPool::Job job;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new BPPHandler::Destroy(fBPPHandler, bs));
job.id = fBPPHandler->getUniqueID(bs, ismHdr->Command);
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
OOBPool->addJob(job);
//fBPPHandler->destroyBPP(*bs);
break;
@ -2228,6 +2263,11 @@ struct ReadThread
PriorityThreadPool::Job job;
job.functor = boost::shared_ptr<PriorityThreadPool::Functor>(new BPPHandler::Abort(fBPPHandler, bs));
job.id = fBPPHandler->getUniqueID(bs, ismHdr->Command);
const uint8_t *buf = bs->buf();
uint32_t pos = sizeof(ISMPacketHeader) - 2;
job.stepID = *((uint32_t *) &buf[pos+6]);
job.uniqueID = *((uint32_t *) &buf[pos+10]);
job.sock = outIos;
OOBPool->addJob(job);
break;
}