You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +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:
@ -123,7 +123,7 @@ pColScanStep::pColScanStep(
|
||||
const JobInfo& jobInfo) :
|
||||
JobStep(jobInfo),
|
||||
fRm(jobInfo.rm),
|
||||
fNumThreads(fRm.getJlNumScanReceiveThreads()),
|
||||
fNumThreads(fRm->getJlNumScanReceiveThreads()),
|
||||
fFilterCount(0),
|
||||
fOid(o),
|
||||
fTableOid(t),
|
||||
@ -131,8 +131,8 @@ pColScanStep::pColScanStep(
|
||||
fBOP(BOP_OR),
|
||||
sentCount(0),
|
||||
recvCount(0),
|
||||
fScanLbidReqLimit(fRm.getJlScanLbidReqLimit()),
|
||||
fScanLbidReqThreshold(fRm.getJlScanLbidReqThreshold()),
|
||||
fScanLbidReqLimit(fRm->getJlScanLbidReqLimit()),
|
||||
fScanLbidReqThreshold(fRm->getJlScanLbidReqThreshold()),
|
||||
fStopSending(false),
|
||||
fSingleThread(false),
|
||||
fPhysicalIO(0),
|
||||
@ -198,7 +198,7 @@ pColScanStep::pColScanStep(
|
||||
throw runtime_error("pColScan: BRM HWM lookup failure (4)");
|
||||
sort(extents.begin(), extents.end(), BRM::ExtentSorter());
|
||||
numExtents = extents.size();
|
||||
extentSize = (fRm.getExtentRows()*fColType.colWidth)/BLOCK_SIZE;
|
||||
extentSize = (fRm->getExtentRows()*fColType.colWidth)/BLOCK_SIZE;
|
||||
|
||||
if (fOid>3000) {
|
||||
lbidList.reset(new LBIDList(fOid, 0));
|
||||
@ -982,7 +982,7 @@ pColScanStep::pColScanStep(const pColStep& rhs) :
|
||||
JobStep(rhs),
|
||||
fRm(rhs.resourceManager())
|
||||
{
|
||||
fNumThreads = fRm.getJlNumScanReceiveThreads();
|
||||
fNumThreads = fRm->getJlNumScanReceiveThreads();
|
||||
fFilterCount = rhs.filterCount();
|
||||
fFilterString = rhs.filterString();
|
||||
isFilterFeeder = rhs.getFeederFlag();
|
||||
@ -993,8 +993,8 @@ pColScanStep::pColScanStep(const pColStep& rhs) :
|
||||
fIsDict = rhs.isDictCol();
|
||||
sentCount = 0;
|
||||
recvCount = 0;
|
||||
fScanLbidReqLimit = fRm.getJlScanLbidReqLimit();
|
||||
fScanLbidReqThreshold = fRm.getJlScanLbidReqThreshold();
|
||||
fScanLbidReqLimit = fRm->getJlScanLbidReqLimit();
|
||||
fScanLbidReqThreshold = fRm->getJlScanLbidReqThreshold();
|
||||
fStopSending = false;
|
||||
fSingleThread = false;
|
||||
fPhysicalIO = 0;
|
||||
@ -1022,7 +1022,7 @@ pColScanStep::pColScanStep(const pColStep& rhs) :
|
||||
throw runtime_error("pColScan: BRM HWM lookup failure (4)");
|
||||
sort(extents.begin(), extents.end(), BRM::ExtentSorter());
|
||||
numExtents = extents.size();
|
||||
extentSize = (fRm.getExtentRows()*fColType.colWidth)/BLOCK_SIZE;
|
||||
extentSize = (fRm->getExtentRows()*fColType.colWidth)/BLOCK_SIZE;
|
||||
lbidList=rhs.lbidList;
|
||||
//pthread_mutex_init(&mutex, NULL);
|
||||
//pthread_mutex_init(&dlMutex, NULL);
|
||||
|
Reference in New Issue
Block a user