IST不是SST用于节点重新加入吗?我们有解决方案!

鉴于上述痛点,我们将介绍 gcache.freeze_purge_at_seqno Percona XtraDB Cluster 5.7.20。
这可以控制gcache的清除,从而在节点重新加入时保留更多数据以便于IST。

Galera集群中的所有事务都被分配了唯一的全局序列号(seqno)。使用此seqno跟踪事件(例如wsrep_last_applied,wsrep_last_committed,wsrep_replicated,wsrep_local_cached_downto等等)。 wsrep_local_cached_downto表示gcache被清除的序列号。假设wsrep_local_cached_downto = N,则gcache具有来自[N,wsrep_replicated]的数据并且已从[1,N)中清除数据。

gcache.freeze_purge_at_seqno 有三个值:

-1(默认值):无冻结,清除操作正常。

x(在gcache中应该是有效的seqno):冻结写入集> = x。选择x的最佳方法是使用wsrep_last_applied值作为计划关闭的节点的指示符。 (wsrep_applied * 0.09。保留额外的10%来欺骗IST的安全间隙启发式算法。)

now:冻结写入集的清除> =当前在gcache中的最小seqno。即时冻结gcache-purge。 (如果跟踪x(上面)很困难,只需使用“now”就可以了。)

在集群的现有节点上设置它(它将继续作为集群的一部分,并可充当潜在的DONOR)。
此节点继续保留写集,从而允许重新启动节点使用IST重新加入。
(您可以在重新启动所述重新加入节点时通过wsrep_sst_donor将所述节点作为首选DONOR提供。)

一旦节点重新加入,请记住将其设置回-1。
这避免了在所述时间线之外占用捐赠者的空间。
在下一个清除周期中,所有旧的保留写入集也被释放(将空间回收回原始空间)。

IST donor选择

show status like 'wsrep_local_cached_downto';

假设我们有3个节点集群:N1,N2,N3。

首先,所有3个节点都是同步的(wsrep_last_committed对于所有3个节点都是相同的,假设为100)。

N3是维护计划并被取消。

同时,N1和N2处理工作量,从而将它们从100 -> 1100移动。

N1和N2也清除了gcache。假设N1和N2的 wsrep_local_cached_downto 分别为110和90。

现在N3重新启动并发现集群已从100 -> 1100进展,因此它需要来自(101,1100)的write-sets。

它开始寻找潜在的DONOR。
N1可以从(110,1100)服务数据,但请求是(101,1100),所以N1不能作为DONOR
N2可以从(90,1100)服务数据,并且请求是(101,1100),因此N2可以充当DONOR。

Safety gap及其如何影响DONOR的选择
到现在为止还挺好。但N2能否可靠地充当捐赠者?虽然N3正在评估潜在的捐赠者,但如果N2清除更多数据,现在N2上的wsrep_local_cached_downto是105,该怎么办?为了适应这种情况,N3算法增加了安全间隙。

Safety gap =(当前群集状态 - 来自群集的任何现有节点的最低可用seqno)* 0.008

因此,N2范围被认为是(90 +(1100-90)* 0.008,1100)=(98,1100)。

现在N2可以作为捐赠者吗?是:(98,1100)<(101,1100)

如果N2已经净化到95然后N3开始寻找潜在的捐赠者怎么办?

在这种情况下,N2范围将是(95 +(1100-95)* 0.008,1100)=(103,1100),从预期的捐赠者清单中排除N2。

使用IST重新加入节点(5.7.20)的更多相关文章

  1. ext 树节点操作

    ext 树节点操作 tree :树    node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parent ...

  2. 33. Extjs中的tree节点的操作

      转自:https://blog.csdn.net/masterShaw/article/details/51354351?utm_source=blogkpcl9 ext 树节点操作   tree ...

  3. C#上移,下移TreeView中的树节点顺序

    C#上移,下移TreeView中的树节点顺序 2009-08-12 20:10 1494人阅读 评论(2) 收藏 举报 c#buttonobjectnullstring C#中,通过单击上移,下移按钮 ...

  4. ext TreePanel树节点操作

    1.全部展开 tree.expandAll();2.全部收缩 tree.collapseAll();3.得到父节点 node.parentNode4.判断是否有父节点 node.parentNode= ...

  5. k8s集群———单master节点2node节点

    #部署node节点 ,将kubelet-bootstrap用户绑定到系统集群角色中(颁发证书的最小权限) kubectl create clusterrolebinding kubelet-boots ...

  6. 【RAC】双节点RAC搭建

    本文主要是双节点的RAC进行搭建,根据黄伟老师的视频进行总结和使用. 搭建环境: 1.两台安装好Linux_x64系统的服务器 2.IP设置 注意:Priv-IP的IP是自己一个网段,而剩下的SCAN ...

  7. MySQL高可用方案-PXC环境部署记录

    之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...

  8. 转 移动云基于MySQL Galera的PXC运维实战

    ##sample 1 : mysql 监控 1.phpadmin  比较简单,适合上手 2.mysql_web python 写的, https://github.com/ycg/mysql_web/ ...

  9. PXC集群的概述及搭建

    目录 PXC集群的概述及搭建 PXC集群的简介 PXC集群主要由两部分组成: PXC的特性和优点: PXC的局限和劣势: PXC原理描述 在Centos部署基于Mysql高可用方案操作过程 新增节点加 ...

随机推荐

  1. 2018.11.01 NOIP训练 cost数(搜索+容斥原理)

    传送门 唉考试的时候忘记剪倍数的枝了666666分滚粗. 其实就是一直取lcmlcmlcm搜索,然后容斥原理统计就行了. 代码

  2. 2018.10.24 NOIP模拟 小 C 的序列(链表+数论)

    传送门 考虑到a[l],gcd(a[l],a[l+1]),gcd(a[l],a[l+1],a[l+2])....gcd(a[l]...a[r])a[l],gcd(a[l],a[l+1]),gcd(a[ ...

  3. 微信小程序设置全局字体

    微信小程序设置全局css,需要在app.wxss文件中设置page的样式 page { font-family:"PingFangSC-Thin"; font-size:32rpx ...

  4. ES6通过使用babel兼容到ie9

    1.打开这个地址: https://unpkg.com/babel-standalone@6/babel.min.js 新建babel.min.js,把代码复制进去,然后在jq项目里引用. 2.在下面 ...

  5. hdu6351 2018 Multi-University Training Contest 5 1002 Beautiful Now

    题意: 给出一个十进制数,数位两两可以交换,给出最多能交换多少次,以及交换后的数不能有前缀0,问能形成最小和最大的数 * * * 尝试的思路 贪心,将字符串先排出最大以及最小的情况,然后按一定顺序将对 ...

  6. 本地导入/导出远程oracle数据库

    1.导出数据库 exp 用户名/密码@远程服务器IP:数据端口号/实例名 file=存储dmp文件的路径 full=y; 2.导入数据库 imp 用户名/密码@远程服务器IP:数据库端口号/实例名 f ...

  7. if结构和逻辑运算符

    一 :if选择结构 语法结构: 01.单个if if(表达式){ 如果满足表达式 则执行的代码 } 02.if(表达式) else if(表达式){ 如果满足表达式 则执行的代码 }else{ 不满足 ...

  8. slice()

    提取字符串中的一部分,并返回这个新的字符串 str.slice(beginSlice[, endSlice]) 参数 beginSlice 从该索引(以 0 为基数)处开始提取原字符串中的字符.如果值 ...

  9. STM32F10X-定时器/计数器

    1.STM32F10X的计数器与定时器关系 当时钟连接外脉冲时是计数器:当时钟采用系统内部时钟时是定时器! 2.STM32F10X定时器的时钟源 STM32F10X定时器的时钟不是直接来至于APB1和 ...

  10. 转载:Java项目读取配置文件时,FileNotFoundException 系统找不到指定的文件,System.getProperty("user.dir")的理解

    唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException  系统找不到指定的文件,气死人啦. 还有就是:System.get ...