You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
feat(MCOL-6082): Multiple readers of dbroots using OamCache logic
This patch introduces centralized logic of selecting what dbroot is accessible in PrimProc on what node. The logic is in OamCache for time being and can be moved later.
This commit is contained in:
@ -1155,8 +1155,6 @@ void PackageHandler::run()
|
||||
logging::Message message(1);
|
||||
args.add("dmlprocessor.cpp PackageHandler::run() package type");
|
||||
args.add((uint64_t)fPackageType);
|
||||
args.add(" ,transaction ID: ");
|
||||
args.add(fTxnid);
|
||||
args.add(e.what());
|
||||
message.format(args);
|
||||
ml.logErrorMessage(message);
|
||||
@ -1404,7 +1402,9 @@ void DMLProcessor::operator()()
|
||||
messageqcpp::ByteStream::byte status = 255;
|
||||
messageqcpp::ByteStream::octbyte rowCount = 0;
|
||||
|
||||
if (fDbrm->getSystemState(stateFlags) >
|
||||
int rr = fDbrm->getSystemState(stateFlags);
|
||||
|
||||
if (rr >
|
||||
0) // > 0 implies succesful retrieval. It doesn't imply anything about the contents
|
||||
{
|
||||
messageqcpp::ByteStream results;
|
||||
@ -1845,7 +1845,7 @@ void DMLProcessor::operator()()
|
||||
|
||||
void RollbackTransactionProcessor::processBulkRollback(BRM::TableLockInfo lockInfo, BRM::DBRM* dbrm,
|
||||
uint64_t uniqueId,
|
||||
OamCache::dbRootPMMap_t& dbRootPMMap,
|
||||
OamCache* oamcache,
|
||||
bool& lockReleased)
|
||||
{
|
||||
// Take over ownership of stale lock.
|
||||
@ -1884,7 +1884,7 @@ void RollbackTransactionProcessor::processBulkRollback(BRM::TableLockInfo lockIn
|
||||
|
||||
for (uint32_t i = 0; i < lockInfo.dbrootList.size(); i++)
|
||||
{
|
||||
pmId = (*dbRootPMMap)[lockInfo.dbrootList[i]];
|
||||
pmId = oamcache->getOwnerPM(lockInfo.dbrootList[i]);
|
||||
pmSet.insert(pmId);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user