前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Percona XtraDB Cluster集群线程模型

Percona XtraDB Cluster集群线程模型

作者头像
Leshami
发布2018-07-31 17:17:16
4070
发布2018-07-31 17:17:16
举报
文章被收录于专栏:乐沙弥的世界乐沙弥的世界

Percona XtraDB集群创建一组线程来为其操作提供服务,这些线程与现有的MySQL线程无关。有三个主要线程组:

一、Applier线程

Applier线程应用从其他节点接收的写入集。写消息直接通过gcv_recv_thread。

使用wsrep_slave_threads变量控制线程的数量。默认值是1,这意味着至少有一个wsrep applier线程存在来处理请求。

Applier线程等待一个事件,一旦它捕获到事件,它就使用普通的从应用线程路径应用它,并用wsrep-customization中继日志信息应用路径。这些线程与从属工作线程类似(但不完全相同)。

使用“ Apply and Commit Monitor ” 可以实现协调。一个事务通过两个重要的状态:APPLY和COMMIT。每个事务都向自己申请的监控器进行注册,其申请顺序已经定义。 因此,在应用此事务之前,应用所有具有小于此事务序号的序号(seqno)的事务。 commit也是这样做的(last_left> = trx_.depends_seqno())。

二、回滚线程

只有一个回滚线程在发生冲突时执行回滚。

  并行执行的事务可能会发生冲突并可能需要回滚。   Applier事务总是优先于本地事务。这很自然,因为Applier事务已被群集接受,并且一些节点可能已经应用了它们。本地冲突交易仍然有一个回滚窗口。

所有需要回滚的事务都被添加到回滚队列中,并通知回滚线程。回滚线程然后迭代队列并执行回滚操作。

如果事务在节点上处于活动状态,并且节点从群集组接收到与本地活动事务冲突的事务写入集,则此类本地事务始终被视为受影响事务以回滚。

出现冲突时,事务处于提交状态或执行阶段。执行阶段的本地事务被强行kill,以等待Applier事务被允许继续进行。提交阶段的本地事务失败并出现认证错误。

三、其他线程

1、服务线程

此线程在启动时创建并用于执行辅助服务。它有两个主要功能:

  在高速缓存的写入集被清除到所述级别后,它释放GCache缓冲区。   它通知群集组各个节点已提交到此级别的事务。每个节点都维护有关集群中其他节点的一些基本状态信息。收到该消息后,信息将在此本地元数据中更新。

2、接收线程

该gcs_recv_thread线程是第一个查看组中收到的所有消息的线程。

它会尝试根据收到的每条消息分配操作。它将这些消息添加到中央FIFO队列中,然后由Applier线程处理。消息可以包含不同的操作,如状态更改,配置更新,流量控制等。

一个重要的操作是处理一个写集,它实际上是将事务应用于数据库对象。

3、Gcomm连接线程

gcomm连接线程GCommConn::run_fn 用于协调低层组通信活动。把它想象成一个用于沟通的黑匣子。

4、基于动作的线程

除上述之外,还有一些线程是按需创建。SST为捐助者和joiner创建线程(最终派生出一个子进程来托管所需的SST脚本),IST创建接收者和异步发送者线程,PageStore创建后台线程以删除创建的文件。

如果启用校验和并且复制的写入集足够大,则校验和将作为单独线程的一部分完成。

四、参考链接

https://www.percona.com/doc/percona-xtradb-cluster/LATEST/manual/threading_model.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Applier线程
  • 二、回滚线程
  • 三、其他线程
    • 1、服务线程
      • 2、接收线程
        • 3、Gcomm连接线程
          • 4、基于动作的线程
          • 四、参考链接
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档