暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB 从节点Down机后,引起的主从节点强一致的争论

AustinDatabases 2024-07-08
258

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2300人左右 1 + 2 + 3 + 4 +5+6) 新人分配到6群,准备建立7 群。*(1 2 3 4 5 均没有空位了,请不要在问了谢谢)

上周和PolarDB又吵起来了,原因主要是任务紧急,责任重大,压力山大,被小皮鞭抽打着,还不怎么顺利,然后就把这气给撒错地方了,在我们和POLARDB核心研发和PolarDB领导的群里,我和一个PolarDB的专业老师,吵起来。后面想想后悔的确不是人家的问题,咱们也不能做和 某咖啡一样撒泼打滚的顾客,虽然PolarDB的老师们不会泼咖啡粉给我,但无端惹怒众人的后果我也是承担不起的。重要的是,我在PolarDB的某些知识上还是不牢固的,虽然翻译了多篇白皮书,但白皮书的年代稍微长了一点,而这次吵的东西可能比较新。

此篇就当是道歉贴,并且上个礼拜也和人家老师在专有群里道歉了,做错事情不怕,怕就是脸皮薄不认错。咱们脸皮厚,做错了道歉,后面不做错就好。

从人性上反思了,从技术上咱们也的反思,到底是那块的知识我记错了。

吵架的主要的原因是,我们上新的一个PolarDB 8.02的版本的从节点从起了,原因不是重点,重点是后面对强一致的部分有了一些错误的理解,认为在强一致下数据从节点在 restart 的期间会导致主库的一些压力或问题。所以这里重新对于这块的知识进行重新学习,并且将一些POLARDB 的小TIPS 在这篇文章里面稍微的写一写,当然是TIPS 也就是小秘密,越少人知道越好。要不专家和凡人的距离又拉近了。

稍微简述一下,PolarDB的主从节点的关系,有点类似于ORACLE RAC,和 SQLSERVER Always on ,或者MYSQL innodb cluster ,PG的 patroni 是完全不一样的,属于shared stroagre 的方式,也就是你再多的 主,从节点它就只有一个存储(存储是一写三安全性不用担心,在担心还有多机房热备),

看上图上图是指的PolarDB怎么一个流程来完成主从同步的,并且可以实现主从的一致性(强一致)。他的主要过程在于通过RDMA2.4G的内存网络,将主节点写数据的信息传递给了从节点,而利用了高速网络和磁盘系统,在从节点获得主节点写信息后会从存储直接将数据拽到从节点上,基于强悍的硬件和PolarDB独有的算法,这一切都可以变成主从节点信息强一致。

通过PolarDB本身的PolarTrans,RW节点上每一个提交的事务都有自己的时间戳,将时间戳和事务的ID写入到REDO LOG里面(这里你可以理解为MYSQL的REDO),然后从节点拿到这些信息进行重放REDO,来完成主从节点的一致。

强一致的完成的主要原则:1  及时在RO节点获取时间戳 2  判断数据是否已经在从节点内存,在直接RO节点允许读取数据,不在重放REDO 3  更细粒度的时间戳,分为全局时间戳,表时间戳,PAGE时间戳 PolarDB 管细粒度写入追踪叫 MTT

这属于三级判断,如果全局时间戳可以满足强一致读取,则返回,如果不行则往下一级表时间戳确认数据一致性,如果还不行就下探到page 时间戳部分。如果都不满足,则才会将读请求进行等待等待RO节点将信息进行重放达到主从一致性。当然代理也可以设置等待时间,如果从节点在规定时间没有数据则直接去主节点读取数据。

以上的信息是没有争论的都是共识,争论的地方在下方

1  从节点在某些原因失败,并被重新拉起来的情况下,在这段情况下我们就只有一个从节点的情况下,读全部去了主节点,主节点会压力过大,导致主节点也 OVER。(因为能摧毁从节点的业务,他也一定能摧毁主节点)

2  从节点在重新被拉起后,会有短暂的数据和主节点不一致的情况,(具体多短不是太清楚),但基于硬件和软件算法的优势,很快就会就会一致。

1 的确主从不一致的问题,持续的时间会很短,主要基于拉起从节点的数据也是从主节点 2 如果有一些需求的确会导致一些数据库系统的不稳定,可以采用多从库的解决方案,将压力进行分散 3 在只有一个读库的情况下,即使在拉起的状态下,1 读库原有的任务会保留在代理中间件中,待从库拉起后,在进行任务重试,拉起期间的任务会走写库。

所以不存在在只有一个从节点的情况下,当从节点挂掉,主节点无法写入数据的情况,即使是强一致的情况。

TIPS,在我们多次包含业务测试与实际使用POLARDB 的情况下,我们发现一个有意思的地方,凡是开启SERVERLESS的POALRDB 更耐艹,即使CPU 100%持续长达6个小时,也不会挂掉,但如果没有SERVERLESS 的POLARDB 在特别过分的使用下,会CRASH 和重启(这与我们了解的其他数据库是一致的),主要的原因这里就不说了,所以我们得到的秘密就是,如果你想你的POALRDB 永远不会DOWN级,在CPU 100% 内存击穿的情况下,你就开启SERVERLESS ,POALRDB 就和穿了一层铠甲,刀枪不入。

神奇!!




与PolarDB 有关的文章

PolarDB VS PostgreSQL  "云上"性能与成本评测 -- PolarDB 比PostgreSQL 好?
PolarDB 数据库架构 测试 serverless 后的 三字真言  稳定,灵活,省钱(的用对地方)
临时工访谈:PolarDB  Serverless  发现“大”问题了  之 灭妖记 续集
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一
PolarDB for PostgreSQL  有意思吗?有意思呀


置顶文章

临时工说:数据库和周边做不好原因是产品经理的锅?读从OtterTune的倒下说起-有感
临时工说:  网友问35岁就淘汰,我刚入行DBA 怎么办?
临时工访谈:问金融软件开发总监  哪些业务不用传统数据库
有思想的人,在这个年代会很痛苦?躺平还是醒着都无所谓了
PostgreSQL  15 16 小版本更新信息小结 版本更新是不是挤牙膏
临时工访谈:临时工 写了6年多公众号赚了多少钱?
MySQL 8.0 小版本更新要点,那个小版本更稳定(8.0.24-8.0.37)
MySQL 8.0 版本更新 要点 列表 (8.0-8.0.23)
MYSQL 版本迁移带来 严重生产事故“的”分析


往期热门文章:

SQL SERVER 2022 针对缓存扫描和Query Store 的进步,可以考虑进行版本升级

MYSQL 版本迁移带来 严重生产事故“的”分析

PolarDB  Serverless POC测试中有没有坑与发现的疑问
临时工访谈:PolarDB  Serverless  发现“大”问题了  之 灭妖记 续集
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一
PolarDB for PostgreSQL  有意思吗?有意思呀
PolarDB  Serverless POC测试中有没有坑与发现的疑问

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验

临时工访谈:从国产数据库 到 普罗大众的产品 !与在美国创业软件公司老板对话

PostgreSQL 如何通过工具来分析PG 内存泄露

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
临时工访谈:我很普通,但我也有生存的权利,大龄程序员 求职贴
临时工说: 快速识别 “海洋贝壳类” 数据库方法速递
临时工说:国产 数据库 销售人员  图鉴
临时工说:DBA 是不是阻碍国产数据库发展的毒瘤 ,是不是?从国产DB老专家的一条留言开始 (其实更好看的是文章下方的留言)

感谢 老虎刘 刘老师 对 5月20日 SQL 问题纠正贴 ---PostgreSQL 同一种SQL为什么这样写会提升45%性能

PostgreSQL 同一种SQL为什么这样写会提升45%性能 --程序员和DBA思维方式不同决定

MongoDB 不是软柿子,想替换就替换

PostgreSQL  熊灿灿一句话够学半个月 之 KILL -9

MongoDB  挑战传统数据库聚合查询,干不死他们的

临时工说:国内数据库企业存活   “三板斧”

临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一  (阿里云组团PK笔者实录

临时工访谈:金牌 “女” 销售从ORACLE 转到另类国产数据库 到底  为什么?

临时工访谈:无名氏意外到访-- 也祝你好运(管理者PUA DBA现场直播)

临时工说:搞数据库 光凭的是技术,那DBA的死多少次?

PostgreSQL  分组查询可以不进行全表扫描吗?速度提高上千倍?
临时工说:分析当前经济形势下 DBA 被裁员的根因
PostgreSQL PG_DUMP 工作失败了怎么回事及如何处理
MySQL 八怪(高老师)现场解决问题实录
PostgreSQL 为什么也不建议 RR隔离级别,MySQL别笑
临时工访谈:OceanBase上海开大会,我们四个开小会 OB 国产数据库破局者
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
临时工访谈:恶意裁员后,一个国产数据库企业程序员的心声
临时工说:上云后给 我一个 不裁 DBA的理由
PolarDB for PostgreSQL  有意思吗?有意思呀
PostgreSQL   玩PG我们是认真的,vacuum 稳定性平台我们有了
临时工说:裁员裁到 DBA 咋办  临时工教你 套路1 2 3
PolarDB  搞那么多复杂磁盘计费的东西,抽筋了吗?
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
MONGODB  ---- Austindatabases  历年文章合集
MYSQL  --Austindatabases 历年文章合集
POSTGRESQL --Austindatabaes 历年文章整理
POLARDB  -- Ausitndatabases 历年的文章集合
PostgreSQL  查询语句开发写不好是必然,不是PG的锅
SQL SERVER 如何实现UNDO REDO  和PostgreSQL 有近亲关系吗
临时工说:从人性的角度来分析为什么公司内MySQL 成为少数派,PolarDB 占领高处
POLARDB  到底打倒了谁  PPT 分享 (文字版)
PostgreSQL  字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"
PostgreSQL  Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)

Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。


文章转载自AustinDatabases,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论