You've already forked mariadb-columnstore-engine
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:
@ -156,7 +156,7 @@ WindowFunctionStep::WindowFunctionStep(const JobInfo& jobInfo) :
|
||||
fRm(jobInfo.rm),
|
||||
fSessionMemLimit(jobInfo.umMemLimit)
|
||||
{
|
||||
fTotalThreads = fRm.windowFunctionThreads();
|
||||
fTotalThreads = fRm->windowFunctionThreads();
|
||||
fExtendedInfo = "WFS: ";
|
||||
fQtc.stepParms().stepType = StepTeleStats::T_WFS;
|
||||
}
|
||||
@ -165,7 +165,7 @@ WindowFunctionStep::WindowFunctionStep(const JobInfo& jobInfo) :
|
||||
WindowFunctionStep::~WindowFunctionStep()
|
||||
{
|
||||
if (fMemUsage > 0)
|
||||
fRm.returnMemory(fMemUsage, fSessionMemLimit);
|
||||
fRm->returnMemory(fMemUsage, fSessionMemLimit);
|
||||
}
|
||||
|
||||
|
||||
@ -782,7 +782,7 @@ void WindowFunctionStep::execute()
|
||||
{
|
||||
fInRowGroupData.push_back(rgData);
|
||||
uint64_t memAdd = fRowGroupIn.getSizeWithStrings() + rowCnt * sizeof(RowPosition);
|
||||
if (fRm.getMemory(memAdd, fSessionMemLimit) == false)
|
||||
if (fRm->getMemory(memAdd, fSessionMemLimit) == false)
|
||||
throw IDBExcept(ERR_WF_DATA_SET_TOO_BIG);
|
||||
fMemUsage += memAdd;
|
||||
|
||||
@ -917,7 +917,7 @@ void WindowFunctionStep::doFunction()
|
||||
while (((i = nextFunctionIndex()) < fFunctionCount) && !cancelled())
|
||||
{
|
||||
uint64_t memAdd = fRows.size() * sizeof(RowPosition);
|
||||
if (fRm.getMemory(memAdd, fSessionMemLimit) == false)
|
||||
if (fRm->getMemory(memAdd, fSessionMemLimit) == false)
|
||||
throw IDBExcept(ERR_WF_DATA_SET_TOO_BIG);
|
||||
fMemUsage += memAdd;
|
||||
fFunctions[i]->setCallback(this, i);
|
||||
|
Reference in New Issue
Block a user