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

MCOL-507 Further ExeMgr performance improvements

This does the following:

* Switch resource manager to a singleton which reduces the amount of
times the XML data is scanned and objects allocated.
* Make the I_S tables use the FE implementation of the system catalog
* Make the I_S.columnstore_columns table use the RID list cache
* Make the extentmap pre-allocate a vector instead of many small allocs
This commit is contained in:
Andrew Hutchings
2017-01-16 12:33:27 +00:00
parent 605f6c51e2
commit ffcfc41563
49 changed files with 197 additions and 178 deletions

View File

@ -103,7 +103,7 @@ TupleUnion::TupleUnion(CalpontSystemCatalog::OID tableOID, const JobInfo& jobInf
TupleUnion::~TupleUnion()
{
rm.returnMemory(memUsage, sessionMemLimit);
rm->returnMemory(memUsage, sessionMemLimit);
if (!runRan && output)
output->endOfInput();
}
@ -227,7 +227,7 @@ void TupleUnion::readInput(uint32_t which)
memDiff += (memUsageAfter - memUsageBefore);
memUsage += memDiff;
}
if (!rm.getMemory(memDiff, sessionMemLimit)) {
if (!rm->getMemory(memDiff, sessionMemLimit)) {
fLogger->logMessage(logging::LOG_TYPE_INFO, logging::ERR_UNION_TOO_BIG);
if (status() == 0) // preserve existing error code
{
@ -789,7 +789,7 @@ void TupleUnion::join()
runners.clear();
uniquer->clear();
rowMemory.clear();
rm.returnMemory(memUsage, sessionMemLimit);
rm->returnMemory(memUsage, sessionMemLimit);
memUsage = 0;
}