You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-08 14:22:09 +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:
@@ -684,12 +684,14 @@ void Oam::getPmDbrootConfig(const int pmid, DBRootConfigList& dbrootconfiglist)
|
||||
* Get DBRoot - PM Config data
|
||||
*
|
||||
********************************************************************/
|
||||
void Oam::getDbrootPmConfig(const int dbrootid, int& pmid)
|
||||
void Oam::getDbrootPmConfig(const int dbrootid, set<int>& pmids)
|
||||
{
|
||||
SystemModuleTypeConfig systemmoduletypeconfig;
|
||||
ModuleTypeConfig moduletypeconfig;
|
||||
ModuleConfig moduleconfig;
|
||||
|
||||
pmids.clear();
|
||||
|
||||
try
|
||||
{
|
||||
getSystemConfig(systemmoduletypeconfig);
|
||||
@@ -716,13 +718,16 @@ void Oam::getDbrootPmConfig(const int dbrootid, int& pmid)
|
||||
{
|
||||
if (*pt1 == dbrootid)
|
||||
{
|
||||
pmid = (*pt).DeviceID;
|
||||
return;
|
||||
pmids.insert((*pt).DeviceID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!pmids.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// dbrootid not found, return with error
|
||||
exceptionControl("getDbrootPmConfig", API_INVALID_PARAMETER);
|
||||
|
Reference in New Issue
Block a user