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 -->
<TempFileDir>/columnstore_tmp_files</TempFileDir>
<SystemTempFileDir>/tmp/columnstore_tmp_files</SystemTempFileDir>
<DataFilePlugin>$INSTALLDIR/lib/libcloudio.so</DataFilePlugin>
</SystemConfig>
<SystemModuleConfig>
<ModuleType1>dm</ModuleType1>

View File

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

View File

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

View File

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

View File

@ -1014,6 +1014,12 @@ int main(int argc, char** argv)
(*listPtr).DepModuleName,
(*listPtr).LogFile,
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;
@ -1065,6 +1071,12 @@ int main(int argc, char** argv)
(*listPtr).DepModuleName,
(*listPtr).LogFile,
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;
@ -1652,6 +1664,12 @@ static void chldHandleThread(MonitorConfig config)
(*listPtr).DepModuleName,
(*listPtr).LogFile,
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 )
{

View File

@ -292,6 +292,8 @@ void MonitorConfig::buildList(string ProcessModuleType, string processName, str
if ( processName == "mysqld" )
return;
// Might need to add a similar do-nothing clause for StorageManager?
pthread_mutex_lock(&LIST_LOCK);
// get current time in seconds
@ -505,7 +507,6 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
break;
}
processList::iterator listPtr;
processList* aPtr = config.monitoredListPtr();
listPtr = aPtr->begin();
@ -574,6 +575,11 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
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;
ProcessStatus processstatus;
@ -657,6 +663,8 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
processconfig.LogFile,
initType,
actIndicator);
if (processName == "StorageManager")
log.writeLog(__LINE__, "START: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX )
processID = oam::API_SUCCESS;
@ -702,6 +710,11 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
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* aPtr = config.monitoredListPtr();
@ -752,6 +765,9 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
(*listPtr).DepModuleName,
(*listPtr).LogFile,
initType);
if (processName == "StorageManager")
log.writeLog(__LINE__, "RESTART: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX )
processID = oam::API_SUCCESS;
@ -1097,6 +1113,11 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
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" )
{
@ -1191,6 +1212,9 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
(*listPtr).DepModuleName,
(*listPtr).LogFile,
initType);
if (processName == "StorageManager")
log.writeLog(__LINE__, "STARTALL: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX )
{
@ -1257,6 +1281,9 @@ void ProcessMonitor::processMessage(messageqcpp::ByteStream msg, messageqcpp::IO
(*listPtr).DepModuleName,
(*listPtr).LogFile,
initType);
if (processName == "StorageManager")
log.writeLog(__LINE__, "STARTALL: supposedly StorageManager was started, got processID " + processID, LOG_TYPE_DEBUG);
if ( processID > oam::API_MAX )
processID = oam::API_SUCCESS;
@ -2229,8 +2256,8 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName,
SystemProcessStatus systemprocessstatus;
ProcessStatus processstatus;
log.writeLog(__LINE__, "STARTING Process: " + processName, LOG_TYPE_DEBUG);
log.writeLog(__LINE__, "Process location: " + processLocation, LOG_TYPE_DEBUG);
log.writeLog(__LINE__, "STARTING Process: " + processName, LOG_TYPE_CRITICAL); //, LOG_TYPE_DEBUG);
log.writeLog(__LINE__, "Process location: " + processLocation, LOG_TYPE_CRITICAL); //, LOG_TYPE_DEBUG);
//check process location
if (access(processLocation.c_str(), X_OK) != 0)
@ -2815,6 +2842,12 @@ pid_t ProcessMonitor::startProcess(string processModuleType, string processName,
sleep(1);
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
config.buildList(processModuleType, processName, processLocation, arg_list,
launchID, newProcessID, FAILED, BootLaunch, RunType,