GaussDB(for MySQL) RegionlessDB发布:全球数据库技术
本文分享自华为云社区《GaussDB(for MySQL) RegionlessDB发布:全球数据库技术》,作者: GaussDB 数据库。
1.技术背景
对于一些典型行业,如跨境电商和大型互联网企业,其业务往往遍及世界各地。在当今中资出海的浪潮下,客户业务全球化部署诉求对传统的数据库部署形态提出了挑战。
过去客户主要选择的解决方案有两类:第一类,数据库中心化部署一套,应用端统一接入;第二类,数据库随应用全球部署,通过同步工具完成各区域间数据同步。对于前者,异地读写数据库的时延不甚理想;对于后者,数据状态一致性难以保障,整体链路成本也偏高。
针对传统解决方案的弊端,同时结合客户的诉求,华为云GaussDB(for MySQL)团队预见性地提出未来云原生数据库的部署形态将从以资源、地域为中心转变为以应用、流量为中心这一理念。基于此,GaussDB(for MySQL) RegionlessDB形态应运而生。
GaussDB(for MySQL) RegionlessDB,是由分布在全球多个地域间若干GaussDB(for MySQL)集群组成的数据库网络。其中,主集群对外提供写服务,每个集群均可提供读服务(从集群接收到的写请求会被转发到主集群处理),RegionlessDB网络中所有集群的数据保持同步。客户可以无需上层应用改造,享受GaussDB(for MySQL) RegionlessDB的跨地域同步低时延,全球业务就近读取等优势。
2.特性价值
(1)全球多活,近端访问:在业务部署跨全球多个地域情况下,传统中心化数据库部署方案中,数据库在主地域,其它地域的应用需要跨region,乃至跨大洲访问主地域的数据库,较高的网络延迟会导致数据库性能低下,带来种种不良的用户体验。通过GaussDB(for MySQL) RegionlessDB的跨地域低延迟同步,叠加本地就近读取能力,可以确保在常规负载下,各地域的应用访问数据库时的延迟均小于1秒。
(2)Global级的数据库灾备:在提升服务整体可用性、搭建容灾集群的角度,通过GaussDB(for MySQL) RegionlessDB的实时同步和故障时主动切换的能力,可轻松搭建金融级可用的跨地域数据库灾备集群。
3.实现原理
3.1 跨洲际复制延迟< 1s和RTO < 30s的关键技术
(1) 基于Redo的实时异步复制。
(2)直接从存储读取Redo Log,SQL节点只同步位点信息。复制效率与主Region业务效率无相互干扰。
(4)长距离高网络延迟下,Window中的发送不需要等待回包,网络带宽得到极大的利用,最终确保复制延迟< 1s。
(5)日志同时写入到从Region的Log Server和Page Server,Page真正实现实时回放。一旦进行跨Region切换,Crash Recovery所需的页面已经准备好了,使得容灾切主的时间可小于30s。
3.2 构建Global事务快照,写转发能力满足就近读
User Session与Write Forwarding Session通过共享事务状态,构建Global的事务快照,从集群等待日志同步到快照的LSN位点,后续的读操作皆可直接在本地读取数据,而不用转发到主集群中,且满足各种级别的一致性要求。
3.3 可控RPO支持用户控制容灾切换下,允许丢失事务的量级
复制延迟<1s,能确保在容灾切换的情况下,丢失的日志量在1s以内。但对于长事务,若其提交完成的一瞬间且提交日志还未复制到从集群,那么容灾切换后,该长事务产生的数据将全部丢失。
为了解决这个问题,RegionlessDB提供可控RPO的能力。用户可以控制在主集群上执行时间超过T的事务进入等待集合,同时主集群实时获取从集群日志持久化的LSN A,直到等待集合中事务的commit LSN<=A时,才提交返回。这样达到用户自主控制长事务提交返回前,其事务已经完整地持久化在从集群中的效果,从而在容灾切换场景下,减少数据丢失的程度。
4.业务场景/流程
4.1 新实例创建RegionlessDB
选择主Region购买GaussDB(for MySQL)数据库后,在管理控制台RegionlessDB页面选择创建RegionlessDB,以已购买的GaussDB(for MySQL)集群为主Region集群创建RegionlessDB。
RegionlessDB创建完成后,在RegionlessDB界面,点击添加从集群,创建从Region集群并添加到选中的RegionlessDB中。一个RegionlessDB最多支持创建1个主Region集群和5个从Region集群。
4.2 使用RegionlessDB
RegionlessDB添加从集群后,后台会将主集群存量数据全量同步到新建的从Region集群中,并将主集群写入的新数据实时同步到从集群中。典型场景RegionlessDB主从集群间实时复制时延小于1s。
5.总结
GaussDB(for MySQL)支持在不同地域,特别是跨地区/大洲进行RegionlessDB的部署。用户可在不同的Region,享受小于1s延迟且满足各级别数据一致性的就近访问体验。结合存储节点实时快速回放日志的能力,使得RTO<30s成为现实。同时借助可控RPO能力,使得容灾切换场景下丢失事务量级可由用户定义。
产品当前进入邀测阶段,欢迎有需要的客户申请试用,您可通过工单申请,将会有对应的研发人员协助您开启并使用GaussDB(for MySQL)RegionlessDB。
本文作者:华为云GaussDB(for MySQL)团队
华为云GaussDB(for MySQL)官方产品文档:https://support.huaweicloud.com/gaussdbformysql/index.html
GaussDB(for MySQL) RegionlessDB发布:全球数据库技术的更多相关文章
- 2023云数据库技术沙龙MySQL x ClickHouse专场成功举办
4月22日,2023首届云数据库技术沙龙 MySQL x ClickHouse 专场,在杭州市海智中心成功举办.本次沙龙由玖章算术.菜根发展.良仓太炎共创联合主办.围绕"技术进化,让数据更智 ...
- MySQL数据库技术实战
MySQL数据库技术实战 一,安装mysql 很早之前就知道mysql提供了一套数据库样本(github地址),用于测试你的应用程序和数据库服务器. 今天分享下使用过程并将他发布到了码云,以便于同 ...
- 浅谈数据库技术,磁盘冗余阵列,IP分配,ECC内存,ADO,DAO,JDBC
整理-----数据库技术,磁盘冗余阵列,IP分配, ECC内存,ADO, DAO,JDBC 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发.发布和支持.My ...
- 数据库技术丛书:SQL Server 2016 从入门到实战(视频教学版) PDF
1:书籍下载方式: SQL Server2016从入门到实战 PDF 下载 链接:https://pan.baidu.com/s/1sWZjdud4RosPyg8sUBaqsQ 密码:8z7w 学习 ...
- MySQL系列:走进数据库,相关概念你都明白吗?
数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 MySQL.Oracle 等又到底指什么呢? 数据库 数据库(DataBase),简称 DB,是数据库是存储数据的集 ...
- 阿里云数据库备份DBS商业化发布,数据库实时备份到OSS
数据库备份DBS已于2018年5月17日正式商业化发布. 数据库备份(Database Backup,简称DBS)是为数据库提供连续数据保护.低成本的备份服务. 它可以为多种环境的数据提供强有力的保护 ...
- 【经验】GaussDB(for MySQL)性能优化 —— 日志的“快递驿站”
GaussDB(for MySQL)数据库在写入性能上,在业界同类产品中是最好的,这主要得益于GaussDB(for MySQL)在MySQL内核方面的诸多优化.其中有一项从“送快递”得来灵感的优化— ...
- 详解GaussDB(for MySQL)服务:复制策略与可用性分析
摘要:本文通过介绍GaussDB(for MySQL)读写路径,分析其可用性. 简介 数据持久性和服务可用性是数据库服务的关键特征. 在实践中,通常认为拥有 3 份数据副本,就足以保证持久性. 但是 ...
- 海量数据分析更快、更稳、更准。GaussDB(for MySQL) HTAP只读分析特性详解
本文作者康祥,华为云数据库内核开发工程师,研究生阶段主要从事SPARQL查询优化相关工作.目前在华为公司参与华为云GaussDB(for MySQL) HTAP只读内核功能设计和研发. 1. 引言 H ...
- GaussDB(for MySQL) :Partial Result Cache,通过缓存中间结果对算子进行加速
摘要:华为云数据库高级内核技术专家详解GaussDB(for MySQL)Partial Result Cache特性,如何通过缓存中间结果对算子进行加速? 本文分享自华为云社区<GaussDB ...
随机推荐
- 【Dotnet 工具箱】基于 .NET 6 和 Angular 构建项目任务管理平台
1.Reha 时间管理大师 Rhea 是一个基于 C# 和 .NET 6 开发的在线任务管理平台,类似于 禅道.Jira.Redmine, 滴答清单等. 支持多视图多维度统一管理任务.多级结构,工作区 ...
- javascript继承的 6 种方法
1. 原型链继承 2. 借用构造函数继承 3. 组合继承(原型+借用构造) 4. 原型式继承 5. 寄生式继承 6. 寄生组合式继承
- 18.1 Socket 原生套接字抓包
原生套接字抓包的实现原理依赖于Windows系统中提供的ioctlsocket函数,该函数可将指定的网卡设置为混杂模式,网卡混杂模式(Promiscuous Mode)是常用于计算机网络抓包的一种模式 ...
- 18. 从零开始编写一个类nginx工具, 主动式健康检查源码实现
wmproxy wmproxy将用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,后续将实现websocket代理, 内外网穿透等, 会将实现过程分享出来, 感 ...
- ansible平台
1.ansible概念: 1)ansible和saltstck是目前互联网IT运维人员使用最多的自动化运维管理工具,主要用于对批量(并行)Linux服务器:安装.部署.配置.指令操作.任务计划.参数调 ...
- Java 基础学习第一弹
1. equels和==的区别 equals方法用于比较对象的内容是否相等,可以根据自定义的逻辑来定义相等的条件,而==操作符用于比较对象的引用是否相等,即它们是否指向同一块内存地址.equals方法 ...
- [转]深入HBase架构解析
HBase架构讲解非常清晰的一篇文章,转自 http://www.blogjava.net/DLevin/archive/2015/08/22/426877.htmlhttp://www.blogja ...
- NLP机器翻译全景:从基本原理到技术实战全解析
机器翻译是使计算机能够将一种语言转化为另一种语言的技术领域.本文从简介.基于规则.统计和神经网络的方法入手,深入解析了各种机器翻译策略.同时,详细探讨了评估机器翻译性能的多种标准和工具,包括BLEU. ...
- (Good topic)四因数 (leetcode 181周赛T2)
四因数难度中等1收藏分享切换为英文关注反馈给你一个整数数组 nums,请你返回该数组中恰有四个因数的这些整数的各因数之和. 如果数组中不存在满足题意的整数,则返回 0 . 示例: 输入:nums ...
- 2021-09 .NET 5.0.10 Update for x64 Client (KB5006192) 安装失败,错误代码:0x80070643
上周五日常检查系统更新(强迫症晚期) 出现一项更新:2021-09 .NET 5.0.10 Update for x64 Client (KB5006192) details: https://www ...