暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

SUNDB进程结构(三)

原创 科蓝SUNDB编辑部 2022-09-09
351

1. Cluster Recover线程

在集群系统环境中启动节点时,如果节点逐步进入MOUNT阶段,则会创建集群恢复(cluster recover)线程。 如果存在in-doubt事务,则集群恢复线程将与远程节点上的集群恢复线程进行通信,并恢复in-doubt事务。 如果存在 i n - doubt 事 务 ,集群恢复线程将与远程节点上的集群恢复线程进行通信 ,并分析需要恢复的不确定事务的状态。如果远程节点重新启动但尚未恢复,则会发送请求优先执行恢复的消息, 并在完成恢复后恢复不确定事务的状态。 可通过远程节点分析的不确定事务状态包含 NONE ,PREPARE ,COMMIT 以 及 ROLLBACK 。 至少从一个远程节点收到 COMMIT 或 ROLLBACK 响应时 ,执 行 COMMIT 或 ROLLBACK 。 如果从所有远程节点收到NONE或PREPARE响应,则由于所有集群节点未执行过COMMIT或ROLLBACK, 因此执行ROLLBACK。
用集群恢复(cluster recover)线程恢复了不确定事务时,system.trc会记录如下信息。
image.png

2. Failover线程

在集群系统环境中启动节点时,如果节点逐步进入LOCAL OPEN阶段,则会生成集群故障转移(failover)线程。 集群系统中的特定节点或网络发生故障时 , 集群故障转移线程对故障节点执行脱机或重新选择协调器等故障转移处理。 如果出现需要故障转移的情况,由获取故障转移lock的一个正常节点与其他节点的故障转移线程进行通信, 并执行故障转移。
故障转移线程执行故障转移时,system.trc会记录如下信息。
image.png
image.png

3. Buffer Checkpoint Flusher, Buffer Replace Flusher

存储在磁盘表空间的表、索引页caching到buffer并变更后连接到checkpoint list。Buffer checkpoint flusher 将连接到 checkpoint list的页反映到对应数据文件。Buffer checkpoint flusher在产生checkpoint event 时执行或按照BUFFER_FLUSHING_INTERVAL参数设置的时间sleep并定期执行。Buffer checkpoint flusher 数量取决于BUFFER_CHECKPOINT_LIST_COUNT。 Buffer cache中没有被邀请的页时,从数据文件读取页并填充buffer cache。Buffer cache查找可使用的空间时, 当前不使用的更新的页连接buffer replace list,buffer replace flusher将连接到buffer replace list 的页反映到对应数据文件。Buffer replace flusher在缓冲区空间满而没有可使用的空间时,由event唤醒或按照
BUFFER_FLUSHING_INTERVAL参数设置的时间sleep并定期执行。Buffer replace flusher的数量取决于 BUFFER_FLUSH_THREADS参数。

最后修改时间:2023-07-17 14:38:28
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论