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

Checkpointing some experimental changes to get storagemanager running.

This commit is contained in:
Patrick LeBlanc
2019-06-06 08:36:40 -05:00
parent 42b79bd5e7
commit 98c9cd7b22
6 changed files with 85 additions and 15 deletions

View File

@ -270,6 +270,7 @@
<hdfsRdwrScratch>/rdwrscratch</hdfsRdwrScratch> <!-- Do not set to an hdfs file path --> <hdfsRdwrScratch>/rdwrscratch</hdfsRdwrScratch> <!-- Do not set to an hdfs file path -->
<TempFileDir>/columnstore_tmp_files</TempFileDir> <TempFileDir>/columnstore_tmp_files</TempFileDir>
<SystemTempFileDir>/tmp/columnstore_tmp_files</SystemTempFileDir> <SystemTempFileDir>/tmp/columnstore_tmp_files</SystemTempFileDir>
<DataFilePlugin>$INSTALLDIR/lib/libcloudio.so</DataFilePlugin>
</SystemConfig> </SystemConfig>
<SystemModuleConfig> <SystemModuleConfig>
<ModuleType1>dm</ModuleType1> <ModuleType1>dm</ModuleType1>

View File

@ -254,6 +254,7 @@
<hdfsRdwrBufferMaxSize>8G</hdfsRdwrBufferMaxSize> <hdfsRdwrBufferMaxSize>8G</hdfsRdwrBufferMaxSize>
--> -->
<hdfsRdwrScratch>/tmp/rdwrscratch</hdfsRdwrScratch> <!-- Do not set to an hdfs file path --> <hdfsRdwrScratch>/tmp/rdwrscratch</hdfsRdwrScratch> <!-- Do not set to an hdfs file path -->
<DataFilePlugin>$INSTALLDIR/lib/libcloudio.so</DataFilePlugin>
</SystemConfig> </SystemConfig>
<SystemModuleConfig> <SystemModuleConfig>
<ModuleType1>dm</ModuleType1> <ModuleType1>dm</ModuleType1>

View File

@ -21,7 +21,22 @@
<RunType>ACTIVE_STANDBY</RunType> <RunType>ACTIVE_STANDBY</RunType>
<LogFile>off</LogFile> <LogFile>off</LogFile>
</PROCESSCONFIG2> </PROCESSCONFIG2>
<PROCESSCONFIG3> <PROCESSCONFIG3>
<ProcessName>StorageManager</ProcessName>
<ModuleType>ChildExtOAMModule</ModuleType>
<ProcessLocation>$INSTALLDIR/bin/StorageManager</ProcessLocation>
<BootLaunch>2</BootLaunch>
<LaunchID>3</LaunchID>
<DepProcessName/>
<DepModuleName1>@</DepModuleName1>
<RunType>LOADSHARE</RunType>
<LogFile>off</LogFile>
</PROCESSCONFIG3>
<PROCESSCONFIG4>
<ProcessName>DBRMControllerNode</ProcessName> <ProcessName>DBRMControllerNode</ProcessName>
<ModuleType>ParentOAMModule</ModuleType> <ModuleType>ParentOAMModule</ModuleType>
<ProcessLocation>$INSTALLDIR/bin/controllernode</ProcessLocation> <ProcessLocation>$INSTALLDIR/bin/controllernode</ProcessLocation>
@ -33,8 +48,8 @@
<DepModuleName1>@</DepModuleName1> <DepModuleName1>@</DepModuleName1>
<RunType>SIMPLEX</RunType> <RunType>SIMPLEX</RunType>
<LogFile>off</LogFile> <LogFile>off</LogFile>
</PROCESSCONFIG3> </PROCESSCONFIG4>
<PROCESSCONFIG4> <PROCESSCONFIG5>
<ProcessName>ServerMonitor</ProcessName> <ProcessName>ServerMonitor</ProcessName>
<ModuleType>ChildOAMModule</ModuleType> <ModuleType>ChildOAMModule</ModuleType>
<ProcessLocation>$INSTALLDIR/bin/ServerMonitor</ProcessLocation> <ProcessLocation>$INSTALLDIR/bin/ServerMonitor</ProcessLocation>
@ -44,8 +59,8 @@
<DepProcessName/> <DepProcessName/>
<RunType>LOADSHARE</RunType> <RunType>LOADSHARE</RunType>
<LogFile>off</LogFile> <LogFile>off</LogFile>
</PROCESSCONFIG4> </PROCESSCONFIG5>
<PROCESSCONFIG5> <PROCESSCONFIG6>
<ProcessName>DBRMWorkerNode</ProcessName> <ProcessName>DBRMWorkerNode</ProcessName>
<ModuleType>ChildExtOAMModule</ModuleType> <ModuleType>ChildExtOAMModule</ModuleType>
<ProcessLocation>$INSTALLDIR/bin/workernode</ProcessLocation> <ProcessLocation>$INSTALLDIR/bin/workernode</ProcessLocation>
@ -57,7 +72,7 @@
<DepProcessName/> <DepProcessName/>
<RunType>LOADSHARE</RunType> <RunType>LOADSHARE</RunType>
<LogFile>off</LogFile> <LogFile>off</LogFile>
</PROCESSCONFIG5> </PROCESSCONFIG6>
<PROCESSCONFIG7> <PROCESSCONFIG7>
<ProcessName>PrimProc</ProcessName> <ProcessName>PrimProc</ProcessName>
<ModuleType>pm</ModuleType> <ModuleType>pm</ModuleType>

View File

@ -11055,6 +11055,8 @@ void ProcessManager::stopProcessTypes(bool manualFlag)
//dbrm //dbrm
processManager.stopProcessType("DBRMControllerNode", manualFlag); processManager.stopProcessType("DBRMControllerNode", manualFlag);
processManager.stopProcessType("DBRMWorkerNode", manualFlag); processManager.stopProcessType("DBRMWorkerNode", manualFlag);
processManager.stopProcessType("StorageManager", manualFlag);
log.writeLog(__LINE__, "stopProcessTypes Completed"); log.writeLog(__LINE__, "stopProcessTypes Completed");
} }

View File

@ -1014,7 +1014,13 @@ int main(int argc, char** argv)
(*listPtr).DepModuleName, (*listPtr).DepModuleName,
(*listPtr).LogFile, (*listPtr).LogFile,
initType); initType);
if (listPtr->ProcessName == "StorageManager")
{
log.writeLog(__LINE__, "StorageManager WTF? 1", LOG_TYPE_DEBUG);
oam.setProcessStatus("StorageManager", boost::get<0>(oam.getModuleInfo()),
oam::ACTIVE, listPtr->processID);
}
string restartStatus; string restartStatus;
if ( (*listPtr).processID == oam::API_MINOR_FAILURE || if ( (*listPtr).processID == oam::API_MINOR_FAILURE ||
@ -1065,7 +1071,13 @@ int main(int argc, char** argv)
(*listPtr).DepModuleName, (*listPtr).DepModuleName,
(*listPtr).LogFile, (*listPtr).LogFile,
initType); initType);
if (listPtr->ProcessName == "StorageManager")
{
log.writeLog(__LINE__, "StorageManager WTF? 2", LOG_TYPE_DEBUG);
oam.setProcessStatus("StorageManager", boost::get<0>(oam.getModuleInfo()),
oam::ACTIVE, listPtr->processID);
}
string restartStatus; string restartStatus;
if ( (*listPtr).processID == oam::API_MINOR_FAILURE || if ( (*listPtr).processID == oam::API_MINOR_FAILURE ||
@ -1652,7 +1664,13 @@ static void chldHandleThread(MonitorConfig config)
(*listPtr).DepModuleName, (*listPtr).DepModuleName,
(*listPtr).LogFile, (*listPtr).LogFile,
initStatus); initStatus);
if (listPtr->ProcessName == "StorageManager")
{
log.writeLog(__LINE__, "StorageManager WTF? 3", LOG_TYPE_DEBUG);
oam.setProcessStatus("StorageManager", boost::get<0>(oam.getModuleInfo()),
oam::ACTIVE, listPtr->processID);
}
if ( (*listPtr).processID == oam::API_FAILURE ) if ( (*listPtr).processID == oam::API_FAILURE )
{ {
// restart hard failure // restart hard failure

View File

@ -291,6 +291,8 @@ void MonitorConfig::buildList(string ProcessModuleType, string processName, str
if ( processName == "mysqld" ) if ( processName == "mysqld" )
return; return;
// Might need to add a similar do-nothing clause for StorageManager?
pthread_mutex_lock(&LIST_LOCK); pthread_mutex_lock(&LIST_LOCK);
@ -505,7 +507,6 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
break; break;
} }
processList::iterator listPtr; processList::iterator listPtr;
processList* aPtr = config.monitoredListPtr(); processList* aPtr = config.monitoredListPtr();
listPtr = aPtr->begin(); listPtr = aPtr->begin();
@ -574,6 +575,11 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
break; break;
} }
if (processName == "StorageManager") // storagemanager doesn't send its own response
{
ackMsg << (uint8_t) ACK << (uint8_t) START << (uint8_t) API_SUCCESS;
mq.write(ackMsg);
}
ProcessConfig processconfig; ProcessConfig processconfig;
ProcessStatus processstatus; ProcessStatus processstatus;
@ -657,7 +663,9 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
processconfig.LogFile, processconfig.LogFile,
initType, initType,
actIndicator); actIndicator);
if (processName == "StorageManager")
log.writeLog(__LINE__, "START: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX ) if ( processID > oam::API_MAX )
processID = oam::API_SUCCESS; processID = oam::API_SUCCESS;
@ -702,6 +710,11 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
break; break;
} }
if (processName == "StorageManager") // storagemanager doesn't send its own response
{
ackMsg << (uint8_t) ACK << (uint8_t) RESTART << (uint8_t) API_SUCCESS;
mq.write(ackMsg);
}
processList::iterator listPtr; processList::iterator listPtr;
processList* aPtr = config.monitoredListPtr(); processList* aPtr = config.monitoredListPtr();
@ -752,7 +765,10 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
(*listPtr).DepModuleName, (*listPtr).DepModuleName,
(*listPtr).LogFile, (*listPtr).LogFile,
initType); initType);
if (processName == "StorageManager")
log.writeLog(__LINE__, "RESTART: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX ) if ( processID > oam::API_MAX )
processID = oam::API_SUCCESS; processID = oam::API_SUCCESS;
@ -1097,6 +1113,11 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
break; break;
} }
if (processName == "StorageManager") // storagemanager doesn't send its own status
{
ackMsg << (uint8_t) ACK << (uint8_t) STARTALL << (uint8_t) API_SUCCESS;
mq.write(ackMsg);
}
if ( config.moduleType() == "pm" ) if ( config.moduleType() == "pm" )
{ {
@ -1191,7 +1212,10 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
(*listPtr).DepModuleName, (*listPtr).DepModuleName,
(*listPtr).LogFile, (*listPtr).LogFile,
initType); initType);
if (processName == "StorageManager")
log.writeLog(__LINE__, "STARTALL: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX ) if ( processID > oam::API_MAX )
{ {
processID = oam::API_SUCCESS; processID = oam::API_SUCCESS;
@ -1257,7 +1281,10 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
(*listPtr).DepModuleName, (*listPtr).DepModuleName,
(*listPtr).LogFile, (*listPtr).LogFile,
initType); initType);
if (processName == "StorageManager")
log.writeLog(__LINE__, "STARTALL: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX ) if ( processID > oam::API_MAX )
processID = oam::API_SUCCESS; processID = oam::API_SUCCESS;
@ -2229,8 +2256,8 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName,
SystemProcessStatus systemprocessstatus; SystemProcessStatus systemprocessstatus;
ProcessStatus processstatus; ProcessStatus processstatus;
log.writeLog(__LINE__, "STARTING Process: " + processName, LOG_TYPE_DEBUG); log.writeLog(__LINE__, "STARTING Process: " + processName, LOG_TYPE_CRITICAL); //, LOG_TYPE_DEBUG);
log.writeLog(__LINE__, "Process location: " + processLocation, LOG_TYPE_DEBUG); log.writeLog(__LINE__, "Process location: " + processLocation, LOG_TYPE_CRITICAL); //, LOG_TYPE_DEBUG);
//check process location //check process location
if (access(processLocation.c_str(), X_OK) != 0) if (access(processLocation.c_str(), X_OK) != 0)
@ -2815,6 +2842,12 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName,
sleep(1); sleep(1);
execv(processLocation.c_str(), argList); execv(processLocation.c_str(), argList);
if (processName == "StorageManager")
{
char buf[80];
int l_errno = errno;
log.writeLog(__LINE__, "exec'ing StorageManager failed, got " + string(strerror_r(l_errno, buf, 80)), LOG_TYPE_DEBUG);
}
//record the process information into processList //record the process information into processList
config.buildList(processModuleType, processName, processLocation, arg_list, config.buildList(processModuleType, processName, processLocation, arg_list,
launchID, newProcessID, FAILED, BootLaunch, RunType, launchID, newProcessID, FAILED, BootLaunch, RunType,