首页 > 其他分享 >repmgr选举原理

repmgr选举原理

时间:2024-03-13 09:44:50浏览次数:13  
标签:主库 返回 选举 ELECTION 原理 repmgr 节点 location

从墨天轮上看到一篇非常详细的repmgr的选举原理文章
https://www.modb.pro/db/1717061449015713792

image

1)很不幸,由于某种原因主库 A 节点 down掉了
2)B,C,D 尝试等待重连主库A节点: checking state of node 1, N of 6 attempts…
3)连接超时后,BCD会各自进入选举的过程:由于D的location 和 A 节点的location 是不一样的,直接返回 =》 ELECTION_NOT_CANDIDATE
4)B和 C 节点会执行获取last lsn的操作:如果无法获取LSN的值,直接返回 =》 ELECTION_LOST
5)如果发现WAL的日志应用的停止的,则尝试resume wal log的应用, 如果尝试resume_wal_replay 失败, 直接返回 =》 ELECTION_LOST
6)候选者B和C来进行如下的比较:经过一系列的比较,我们B和C之间的 LSN是一样的, 但是B的 priority 200 小于 C的 priority 300.这个时候C节点为理想的candidate.
7)进行防治网络脑裂的检测: 检查在主节点所在的location, 是否还有存活的节点,如果不存在,则视为网络脑裂,直接返回 =》 ELECTION_CANCELLED
8)老的主库是否依旧存活 nodes_with_primary_still_visible > 0 ? , 如果是由于某些网络原因,造成主库的连接不稳定, 主库恢复之后, 直接返回 =》 ELECTION_CANCELLED
9)同一个location中是否存在大多数节点存活判断: 存活节点如果小于等于 3/2.0 = 1.5 的话 直接返回 =》 ELECTION_CANCELLED
10)判断候选的ID是否和本地的ID是一致的。目前candidate是 C节点, C节点上的 do_election 直接返回选举获胜 ELECTION_WON B节点,直接返回 ELECTION_LOST
11)至此,C 节点成为选举的winner

选举优先级:LSN>priority>node_id。同时强烈建议使用NodeLocation来区分不通的DC,防止脑裂情况的发生。

标签:主库,返回,选举,ELECTION,原理,repmgr,节点,location
From: https://www.cnblogs.com/z-uncle/p/18069920

相关文章

  • sharding-jdbc原理
    分片流程一、sql解析从3.0.x版本开始,ShardingSphere统一将SQL解析器换成了基于antlr4实现,目的是为了更方便、更完整的支持SQL,例如对于复杂的表达式、递归、子查询等语句,因为后期ShardingSphere的定位已不仅仅是数据分片功能。抽象语法树根据不同数据库方言所提供的字......
  • 浅谈非内存对抗类和AI自瞄类FPS作弊程序原理及常用反反作弊措施与反作弊应对手段(上)
    一、引言    闲来无事,在浏览微信公众号的时候无意刷到了江西余江警方关于破获全国首例“AI自瞄”类外挂的案件,涉案金额达到惊人的3000余万。不得不感叹近年来AI相关科技发展之迅速及国内有关于FPS类及其他大类游戏作弊的黑产市场之大。    在工作学习之余,......
  • Elasticsearch探秘:原理剖析、高级运用与实战经验【文末送书-37】
    文章目录Elasticsearch探秘:原理剖析、高级运用与实战经验进阶使用方法数据建模与映射实战工程案例索引阻塞的种类什么时候使用阻塞?一本书讲透Elasticsearch:原理、进阶与工程实践【文末送书-37】Elasticsearch探秘:原理剖析、高级运用与实战经验Elasticsearch作为一个......
  • 自动控制原理
    closed-loopcontrolsystems闭环控制系统open-loopcontrolsystems开环控制系统linearsystems连续系统discretesystems离散系统stability稳定性steady-stateperformance稳态性能transientperformance暂态特性mathematicalmodel数学模型differential......
  • 【机器学习】贝叶斯分类器 | 分类器基本原理,朴素贝叶斯,半朴素贝叶斯,贝叶斯网
    在学习贝叶斯分类器的过程中我逐渐理解了不同视角下的机器学习过程​我们的学习本质上是对于众多的属性,x1,x2,x3到一个结果分类y,线性分类器什么的是训练集拟合一个函数从众多属性x到y,SVM是学习一个分界线划分不同的y对应的x,而贝叶斯分类器本质上是对数据集观测做统计结......
  • 揭秘Docker镜像:概念、原理、特性的全方位解读与实战常用命令解析
    在当今的云原生时代,Docker凭借其轻量级容器技术彻底改变了软件交付和部署的方式。而Docker镜像作为容器的基石,其背后的奥秘和实际应用更是值得我们深入探讨。本文将全面解析Docker镜像的概念、底层原理、独特特性以及日常运维中常用的命令,让您对Docker镜像有更深层次的理解与掌......
  • HashSet保证元素唯一性原理的探索、总结
    HashSet存储自定义类型的元素发现没有对相同的对象进行去重,没有保证元素的唯一性HashSet保证元素唯一性原理的探索对自定义类型的元素没有去重成功,考虑没有重写equals方法,去重时候,使用的是地址值来比较多个元素是否重复,考虑重写equals方法重写equals方法之后,发现没有去重成功,在eq......
  • 深入理解 Nginx:原理和基础介绍
    简介Nginx(发音为"engine-x")是一个高性能的开源Web服务器,它也可以用作反向代理服务器、负载均衡器、HTTP缓存以及作为邮件代理服务器。它的灵活性、高性能和可扩展性使其成为许多互联网公司和网站的首选服务器软件。本文将介绍Nginx的原理、基础知识以及其在互联网架构中的......
  • 深入理解 ELK 中 Logstash 的底层原理 + 填坑指南
    深入理解ELK中Logstash的底层原理+填坑指南<imgsrc="https://pic4.zhimg.com/v2-3afecd9bcad8087524ef7db1f8f51abf_b.jpg"data-rawwidth="722"data-caption=""data-size="normal"data-rawheight="500"class="origi......
  • RC4Drop算法的工作原理揭秘:加密技术的进步之路
    RC4Drop算法起源:RC4Drop算法是RC4算法的一种改进版本,旨在解决RC4算法在长时间加密过程中可能出现的密钥流偏置问题。RC4算法由RonRivest于1987年设计,是一种流密码算法,而RC4Drop算法则在此基础上加入了丢弃密钥字节的步骤,以增强安全性和随机性。RC4Drop加密解密|一个覆盖......