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 ...
随机推荐
- css中的字体样式
一.字体的样式 font-style:"normal" 正常 font-style:"italic"斜体 二.字体的粗细 font-weight:"b ...
- CF1368B
题目简化和分析: 因为要求长度最小,所以我们每个字符就应该发挥最大的价值,不会有没有作用的字符. 设有 \(x_1\) 个 \(c\) ,\(x_2\) 个 \(o\) ,\(x_3\) 个 \(d\ ...
- 深入理解 Skywalking Agent
概述 Agent 功能介绍 + 整体结构 + 设计 插件机制详解 Trace Segment Span 详解 异步 Trace 详解 如何正确地编写插件并防止内存泄漏 扩展:如何基于 Skywalki ...
- 广义 SAM 学习笔记
开 CF 开到了一道广义 SAM,决定来学一学. 发现网上确实充斥着各种各样的伪广义 SAM,也看到了前人反复修改假板子的过程,所以试着来整理一下这堆奇奇怪怪的问题. 当然本文的代码也不保证百分百正确 ...
- 把 map 中的 key 由驼峰命名转为下划线
import cn.hutool.core.util.StrUtil; /** * 把 map 中的 key 由驼峰命名转为下划线 */public HashMap<String, Object ...
- 使用rancher rke快速安装k8s集群
概述 Rancher Kubernetes Engine(RKE)是一个用于部署.管理和运行Kubernetes集群的开源工具.旨在简化Kubernetes集群的部署和操作. RKE具有以下特点和功能 ...
- win11中无法识别STM32 BOOTLOADER的解决方法
如图,按照PYBoard的官方手册说可以直接右键选择自动更新驱动即可.但是我在WIN11上并没有成功. 主要是原因是,DFU模式下的STM设备驱动程序没有自动安装成功. 解决方法是手动安装一下驱动: ...
- 请问您今天要来点 ODT 吗
梗出处:请问您今天要来点兔子吗? 这篇文章主要记录一下自己学习 \(\text{ODT}\) 发生的种种. CF896C Willem, Chtholly and Seniorious \(\text ...
- TPshop商城的安装流程(windows)----超详细版
提前准备 phpStudy下载:https://www.xp.cn/download.html 选择适合自己的版本下载 TPshop商城源文件下载链接:https://pan.baidu.com/s/ ...
- 【公告】luogu blog (daiyulong20120222) 即将迁移!
\[\huge\text{luogu blog (daiyulong20120222) 即将迁移到 cnblogs!}\\ \] \[\huge\color{blue}\text{https://ww ...