避免数据复制延迟,解读 GaussDB (for MySQL) 主备 0 延迟
摘要:GaussDB (for MySQL) 采用“日志即数据”的设计,相较于传统 MySQL,不再需要刷 page,所有的更新操作仅记录日志,不再需要 double write,从而实现毫秒级的主从延迟。
本文分享自华为云社区《【选择GaussDB (for MySQL) 的十大理由】之一:主备 0 延迟》,作者: GaussDB 数据库。
复制延迟是传统 MySQL 架构难以消除的缺陷
在企业级的生产环境中,MySQL 通常使用集群架构,常见的有一主一从和一主多从,且在很多情况下都会面临主从复制延迟的问题。MySQL 的复制延迟是指主从服务器之间的数据同步有时间差,导致主从数据不一致,甚至在故障倒换时发生丢失数据等重大故障。
在日常使用 MySQL 过程中就可能存在一定的复制延迟。这是因为在传统主备架构中,主库在变更自身数据文件的同时将变更操作记录到 binlog 文件中,备库复制 binlog 文件并回放其中记录的写操作,从而使得自身的数据文件与主库做同样的变更。这个过程是异步的或者半同步的。其中一些场景会加剧复制延迟,如网络卡顿、备库 IO 性能瓶颈、处理大事务、服务器负载高、锁竞争等。
GaussDB (for MySQL) 如何避免复制延迟
GaussDB (for MySQL) 是华为自研的新一代企业级高扩展海量存储云原生数据库,完全兼容 MySQL。同时,基于华为新一代 DFV 存储,采用计算存储分离架构。
从架构上看,GaussDB (for MySQL) 不仅计算和存储实现了解耦,主库和从库同样也实现了解耦。这是因为其主从节点共享了一份数据,所以抛弃传统的主备复制流程,主从之间不再依赖 binlog 的复制和回放来做数据同步。
另外,GaussDB (for MySQL) 采用“日志即数据”的设计,相较于传统 MySQL,不再需要刷 page,所有的更新操作仅记录日志,不再需要 double write,从而实现毫秒级的主从延迟。
用户在使用 MySQL 时,从库上常常承担部分读流量,GaussDB (for MySQL) 可以保证主和只读之间无延时,保证数据的强一致性,在时延敏感类业务中发挥巨大作用。
除此之外,在遇到进程 hang 死或服务器宕机等故障场景时,MySQL 的高可用机制会触发主备倒换。如果此时复制时延较大,故障恢复的 RTO 就会较大,若强行进行主备倒换可能导致数据丢失。GaussDB (for MySQL) 能够从容面对无法预料的故障场景,故障发生第一时间进行主备倒换,保证数据 0 丢失。
GaussDB (for MySQL) 轻松化解业务难题
金智教育是国内领先的高校信息化服务运营商,旗下推出的辅导猫致力于学生日常管理的协同办公,与全国 200+ 高校的学工处、辅导员、班主任一起创造属于自己的信息化应用。
辅导猫业务覆盖全国 1000+ 高校,日活达到百万人次,数据表多达 5 万张,业务涉及多表的同时更新和查询。其中业务的核心痛点就是主从复制时延问题:部分业务写在主库,读在只读库,因主从时延较大,导致学生反复提交信息,统计看板展示的信息也无法及时更新。
针对该业务痛点,客户采用华为云提供的“GaussDB (for MySQL) + Proxy”解决方案。GaussDB (for MySQL) 的存算分离架构实现存储共享,主节点和只读节点间无时延,上层业务全栈无感。
GaussDB (for MySQL) 主备 0 延迟的特点在金融业务、电商大促、游戏周年庆等多种业务场景中同样发挥奇效。例如,用户在只读库上查询一单已支付的订单状态,如果此时只读库还没有及时同步主库的数据,那么用户可能会看到订单状态是未支付,给用户带来困扰体验的同时降低了产品信誉度。
总结
GaussDB (for MySQL) 存算分离架构,天然地解决了传统 MySQL 主备架构的复制延迟困境,从根上避免了主从数据不一致带来的一系列问题。如业务有需要,可购买 “包年/包月” 或 “按需” 实例,自动创建无需部署,快来试用吧!链接

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
大模型能否取代程序员,写点代码试试吧
大模型代替程序员来编写代码,这是一个非常有趣的话题,也是一个非常具有挑战性的任务,因为编写代码不仅仅是逻辑的表达,还涉及到了对环墫的依赖,对资源的管理,对错误的处理等等,这些都是大模型在生成代码时需要考虑的问题,目前,大模型作为编程的辅助工具,例如 Github Copilot, 或是当红的 Cursor, 可以在块级别,函数级别,甚至是文件级别生成代码,但基本上还是需要程序员的监督,对其生成的代码进行检查,修改,完善,才能真正的投入到生产环境中。 如果想让大模型产生代码生产可用,一个可能的方法是建立低代码工具,让大模型专注于逻辑的生成,而不用考虑环境的依赖,这与给人类使用的低代码工具是类似的,相对于人类,大模型不会抱怨编写低代码的无聊和繁琐。 测试方法 为了检测大模型的编程能力,我们通过让不同的大模型模型根据相同的 prompt 来生成代码,然后运行这些代码,检测代码的运行结果是否符合预期,这个过程会重复若干次,来检测其生成的稳定性。 我们使用了 a2a 这个专为大模型定制的低代码工具,它简化了对工作环境的依赖,封装了程序对数据库、文件、网络等资源的访问,使得大模型可以专注于逻辑代码...
- 下一篇
开发者实战丨如何利用 OpenVINO™ 部署 Phi-3.5 全家桶
点击蓝字 关注我们,让开发变得更有趣 作者 | 杨亦诚 英特尔 AI 软件工程师 卢建晖 微软高级云技术布道师 排版| 吴紫琴 OpenVINO™ 近期微软发布其最新的 Phi-3.5 系列 SLM 模型, Phi-3.5-mini, Phi-3.5-vision, 以及 Phi-3.5-MoE,其中 Phi-3.5-mini 增加了多语种以及128k上下文长度的支持,提升中文输入的使用体验;Phi-3.5-vision 全面支持多图片理解任务,拓宽了其在视频理解任务类中的应用场景。 英特尔 AI PC 可以帮助用户利用人工智能技术提高工作效率、创意、游戏、娱乐和安全等性能。它搭载 CPU、GPU 和 NPU,可在本地更高效地处理 AI 任务。其中我们可以依靠 CPU 来运行较小的工作负载并实现低延迟,而 GPU 则非常适合需要并行吞吐量的大型工作负载,例如大语言模型推理任务,NPU 能够以低功耗处理持续运行 AI 工作负载,提高效率。开发者可以利用英特尔 OpenVINO™ 工具套件充分激活这些AI处理单元,更高效地部署深度学习模型,其中 Phi-3. 5 就是一个非...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS8安装Docker,最新的服务器搭配容器使用