首页 > 数据库 >避免数据复制延迟,解读GaussDB(for MySQL) 主备0延迟

避免数据复制延迟,解读GaussDB(for MySQL) 主备0延迟

时间:2024-09-12 17:05:38浏览次数:9  
标签:GaussDB 复制 主备 MySQL 主从 延迟

本文分享自华为云社区《【选择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主备架构的复制延迟困境,从根上避免了主从数据不一致带来的一系列问题。如业务有需要,可购买 “包年/包月” 或 “按需” 实例,自动创建无需部署,快来试用吧!https://www.huaweicloud.com/product/gaussdbformysql.html

点击关注,第一时间了解华为云新鲜技术~

 

标签:GaussDB,复制,主备,MySQL,主从,延迟
From: https://www.cnblogs.com/huaweiyun/p/18410611

相关文章

  • 系统设计需要理解的延迟数量级
    1ns=10^{-9}s1ms=10^(-6)s1ms=10^(-3)s1ns范围:包括访问cpu寄存器速度,现在cpu的时钟周期1-10ns:包括l1和l2缓存访问一些昂贵的cpu操作如分支错误预测惩罚10-100ns:l3缓存现代cpu的主内存访问100-1000ns:linux系统调用(陷入内核并且直接返回的直接成本),对64位数字进行md5加密1-......
  • 通过LiveGBS实现安防监控摄像头GB28181转成WebRTC流实现web浏览器网页无插件低延迟直
    @目录1、WebRTC超低延时直播2、WebRTC延时对比3、LiveGBS的低延时的WebRTC流4、分屏页面如何选择默认播放流5、无法播放Webrtc6、搭建GB28181视频直播平台1、WebRTC超低延时直播需要低延时的视频流监控播放,之前可以用rtmp的低延时播放(1秒左右),随着浏览器对rtmp的禁用,无插件的低延......
  • 解读GaussDB(for MySQL) 冷热存储分离实现原理
    本文分享自华为云社区《GaussDB(forMySQL)新特性解读:冷热存储分离》,作者:GaussDB数据库。技术背景业务长期运行,但随着时间推移,越来越多的数据被访问频率降低,从而变成为所谓的"冷数据"。若直接将这些冷数据删除,会面临数据丢失的风险以及高昂的恢复成本;若保持冷数据现有的存储方......
  • 当 Celery 任务出现阻塞或延迟时,如何进行故障排除?
    当Celery任务出现阻塞或延迟时,故障排除的过程可以分为几个步骤,以下是一些常见的原因和解决方案:1.检查任务队列状态队列长度:使用celery-Ayour_projectstatus或celery-Ayour_projectinspectactive命令查看任务的当前状态。任务数量:检查是否有大量任务在队列中......
  • 视频监控推流助手/极低延迟/支持N路批量多线程推流/264和265推流/监控转网页
    一、前言说明搞视频监控开发除了基本的拉流以外,还有个需求是推流,需要将拉到的流重新推流到流媒体服务器,让流媒体服务做转发和负载均衡,这样其他地方只需要问流媒体服务器要视频流即可。为什么拉了又重新推呢,因为软件这边和可能拉流后做了处理,比如做了人工智能运算,识别到了物体方框......
  • 内存延迟对Zen5游戏性能影响有多大!为何首发评测我们会用技嘉X670E AORUS XTREME主板
    一、前言:为什么我们会一直使用技嘉X670E主板做锐龙处理器首发评测很多同学一直好奇,为什么我们在各种锐龙平台的评测中都会优先使用技嘉X670主板?也有同学很疑惑,为什么海外媒体的游戏性能测试,锐龙79700X连i7-14700K都打不过,而在我们这里却与i9-14900K旗鼓相当?主要原因是Zen5架构......
  • MongoDB延迟查询
    在MongoDB中,查看副本集成员之间的副本延迟可以通过以下步骤进行:使用rs.status()命令:这个命令提供了副本集的详细状态信息,包括每个成员的延迟情况。在MongoDBshell中,你可以执行以下命令:rs.status()这个命令会返回一个包含副本集所有成员状态的对象。在返回的对......
  • Redis实现延迟任务的操作流程
    延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务。也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行。延迟任务的常见使用场景有以下几个:定时发送通知或消息:发送定时短信、邮件或应用内消息,如注册确认、订单状态更新、促销活动通知等......
  • VUE框架Vue3使用自定义的ref实现延迟加载效果的实现解决setTimeout过多导致的抖动问题
    import{customRef}from"vue";exportdefaultfunction(){//自己定义一个reffunctionuseDebouncedRef(value){//自定义的ref函数体需要符合ref规范//通过调用customRef来获取一个ref实例//调用customRef必须要给出一个回调函数作为形......
  • Prometheus告警从触发到收到通知延迟在哪
    Prometheus的告警机制涉及多个步骤,从触发到收到通知的过程可能会遇到延迟。这些延迟主要来自以下几个方面:1.规则评估延迟评估周期:Prometheus会在配置的时间间隔内评估告警规则(通常是每1分钟)。如果在这个周期内没有检测到触发条件,告警将不会被触发。数据拉取延迟:Prometheu......