dtm_master_running_flow
2016-08-03 15:29:56 0 举报
dtm_master_running_flow是一个流程,用于监控和管理分布式事务管理器(DTM)的运行状态。该流程确保了在分布式系统中进行事务处理时,各个节点之间的协调和一致性。通过监控DTM的运行状态,可以及时发现并解决潜在的问题,保证系统的稳定运行。此外,该流程还负责处理事务的提交和回滚操作,以确保数据的完整性和一致性。总之,dtm_master_running_flow是分布式系统中的一个关键流程,对于保证系统的可靠性和性能至关重要。
作者其他创作
大纲/内容
是否shutdown所有子进程(Control指令之一)
while 没有收到shutdown的signal
将子进程在共享内存中注销
为新子进程在共享内存中登记
创建Nonblock控制Socket开始Listen
有Control指令?
Y
复用上一个子进程的Pipe
初始化accept锁调度队列
将每个Worker进程放入accept锁调度队列
end of while
初始化signal handlersSIGTERM - shutdownSIGWINCH - reloadSIGALRM - loadconf
创建全部子进程
N
若为Worker且当前持有accept锁强制释放并移出调度队列
为每个子进程创建一副Pipe
是否是有标记的子进程
如果为Worker则放入accept锁调度队列
读取配置文件更新内存中的配置信息
对退出子进程进行处理
创建Nonblock主服务Socket开始Listen
当前是否没有任何子进程Control除外
是否有子进程退出
是否start所有子进程(Control指令之一)
Master
创建新一批子进程
重启一个与退出子进程同类的子进程
创建全部子进程Control除外,因为已存在
清空子进程对应的Pipe两端
处理Control指令
向有标记的子进程(即老子进程)发送shutdown信号
向当前所有非Control的子进程发送shutdown信号
为每个子进程在共享内存中登记
有标记的子进程说明是被Master显式有意杀死的无需重启
初始化共享内存,作用:进程间抢锁、子进程登记
对已存在子进程进行标记
打开日志文件
向与Control相连的管道write响应
对整个进程组Nonblock地waitpid
是否收到loadconf的signal
读入配置文件将全部MySQL、Redis连接信息存入内存
执行accept调度让队列中的下一个Worker持有锁
Nonblock地读与Control进程相连的管道
标记当前所有非Control的子进程
0 条评论
下一页