mysql之 Percona XtraDB Cluster集群线程模型

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

作者:Leshami
来源:CSDN
原文:https://blog.csdn.net/leshami/article/details/79970818?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/andy6/p/9760409.html

时间: 2024-10-10 16:38:05

mysql之 Percona XtraDB Cluster集群线程模型的相关文章

Percona XtraDB Cluster 集群环境建立与验证指南

Percona XtraDB Cluster 集群环境建立与验证指南Percona XtraDB Cluster 是MySQL数据库的一种集群方案.并且与 MySQL Server 社区版本.Percona Server 和 MariaDB 兼容.一.在Ubuntu上安装Percona XtraDB Cluster实验环境:    假设有3台计算机设备安装了ubuntu系统,将被用作3个节点:    Node        Host        IP    Node1       pxc1  

如何搭建Percona XtraDB Cluster集群

一.环境准备 主机IP                     主机名               操作系统版本     PXC 192.168.244.146     node1              CentOS7.1      Percona-XtraDB-Cluster-56-5.6.30 192.168.244.147     node2              CentOS7.1      Percona-XtraDB-Cluster-56-5.6.30 192.168.244

Mysql上的RAC:Percona XtraDB Cluster负载均衡集群安装部署手册

 Percona XtraDB Cluster安装部署手册 引言 编写目的 编写此文档,供PerconaXtraDB Cluster部署时使用. 预期读者 系统维护人员及实施人员. 编制依据及参考资料 目标 通过阅读该手册,让读者明确PerconaXtraDB Cluster的安装.配置和维护情况,为后续数据库运维工作提供指导. 应用部署方案 环境准备 服务器列表 序号 IP 用途 HOSTNAME 操作系统 1 192.168.0.7 Percona XtraDB Cluster RedHat

PXC(Percona XtraDB Cluster)集群的安装与配置

Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera 2.0库,这是一个针对事务性应用程序的同步多主机复制插件. Percona XtraDB Cluster特点: (1)同步复制,事务在所有集群节点要么同时提交,要么不提交. (2)多主复制,可以在任意一个节点写入. (3)从服务器上的并行应用事件,真正的“并行复制”. (4)自动配置节点. (5)

PXC(Percona XtraDB Cluster)集群安装

作者在2014Oracle数据库嘉年华中有幸听到了关于去哪网的MySQL数据库基于PXC的高可用架构设计主题. MySQL和Oracle是完全不同的两种数据库,Oracle重于管理,而MySQL更重要的是架构设计.笔者对MySQL以及新技术也是充满了好奇,索性回来自己搭建一个测试环境. 操作系统:CentOS 6.6 软件版本:5.5.39-36.0-55 PerconaXtraDB Cluster (GPL) 节点信息: pxc1 192.168.0.200 pxc2 192.168.0.20

PXC5.7(Percona XtraDB Cluster)+HAproxy集群部署

PXC是Percona XtraDB Cluster的缩写,是一种具有高可用性和高扩展性的MySQL开源集群.它集成了Percona Server和Percona XtraBackup,同时采用了Codership Galera库. 优点:1.准同步复制2.多个可同时读写节点,可实现写扩展,较分片方案更进一步3.自动节点管理4.数据严格一致5.服务高可用 缺点:1.只支持innodb引擎2.所有表都要有主键3.所有的写操作都将发生在所有节点上,存在写扩大问题4.加入新节点,开销大.需要复制完整的

Percona XtraDB Cluster(PXC) -集群环境安装(原创)

Percona XtraDB Cluster(PXC)   ---服务安装篇   1.测试环境搭建: Ip 角色 OS PXC-version 172.16.40.201 Node1 Redhat/Centos 6/7 5.7.23 172.16.40.202 Node2 Redhat/Centos 6/7 5.7.23 172.16.40.203 Node3 5.7.23 5.7.23   2.安装 2.1安装方式 测试环境选择二进制安装,生产环境选择编译安装方式以达到性能最佳 2.2版本选择

mysql高可用之PXC(Percona XtraDB Cluster)

借鉴 http://www.cnblogs.com/xiaoboluo768/p/5135619.html 服务器环境信息如下: node1    192.168.0.100 node2    192.168.0.101 node3    192.168.0.102 1.安装软件依赖包(添加repl源,再安装依赖,3台server操作一样.) [[email protected] ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64

MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在原mysql代码上通过Galera包将不同的mysql实例连接起来,实现了multi-master的集群架构.下图中有三个实例,组成了一个集群,而这三个节点与普通的主从架构不同,它们都可以作为主节点,三个节点是对等的,这种一般称为multi-master架构,当有客户端要写入或者读取数据时,随便连接哪个实例都是一样的,读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步到其它节