zoukankan      html  css  js  c++  java
  • 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 版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Linux常用命令
    Spring Boot☞ 多数据源配置(二):Spring-data-jpa
    好用的Markdown编辑器一览
    Spring Boot☞ 使用Spring-data-jpa简化数据访问层
    谈谈Spring 注入properties文件总结
    Spring Boot☞ 统一异常处理
    Spring Boot☞ 使用velocity渲染web视图
    Spring Boot☞ 使用freemarker模板引擎渲染web视图
    静态联编与动态联编
    C++ 模板元编程 学习笔记
  • 原文地址:https://www.cnblogs.com/andy6/p/9760409.html
Copyright © 2011-2022 走看看