首页 > 数据库 >GaussDB(for MySQL) RegionlessDB发布:全球数据库技术

GaussDB(for MySQL) RegionlessDB发布:全球数据库技术

时间:2024-01-12 17:31:58浏览次数:34  
标签:RegionlessDB GaussDB 集群 MySQL Region 数据库

本文分享自华为云社区《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的跨地域同步低时延,全球业务就近读取等优势。

GaussDB(for MySQL) RegionlessDB发布:全球数据库技术_GaussDB(for MySQL)

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业务效率无相互干扰。

(3)并行地读取、同步和写入Redo Log,并在存储节点独立地并行地回放Page。

GaussDB(for MySQL) RegionlessDB发布:全球数据库技术_MySQL_02

(4)长距离高网络延迟下,Window中的发送不需要等待回包,网络带宽得到极大的利用,最终确保复制延迟< 1s。

(5)日志同时写入到从Region的Log Server和Page Server,Page真正实现实时回放。一旦进行跨Region切换,Crash Recovery所需的页面已经准备好了,使得容灾切主的时间可小于30s。

3.2 构建Global事务快照,写转发能力满足就近读

GaussDB(for MySQL) RegionlessDB发布:全球数据库技术_GaussDB(for MySQL)_03

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集群。

GaussDB(for MySQL) RegionlessDB发布:全球数据库技术_数据_04

4.2 使用RegionlessDB

RegionlessDB添加从集群后,后台会将主集群存量数据全量同步到新建的从Region集群中,并将主集群写入的新数据实时同步到从集群中。典型场景RegionlessDB主从集群间实时复制时延小于1s。

GaussDB(for MySQL) RegionlessDB发布:全球数据库技术_数据_05

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

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

标签:RegionlessDB,GaussDB,集群,MySQL,Region,数据库
From: https://blog.51cto.com/u_15214399/9220047

相关文章

  • Ubuntu系统安装mysql
    1.查看有没有安装mysql dpkg-l|grepmysql2.更新ubantu包索引sudoaptupdate 3.安装mysqlsudoapt-getinstallmysql-server 4.初始化环境sudomysql_secure_installation  5.查看mysql服务状态systemctlstatusm......
  • 差异摘要:MySQL 与MariaDB
    MariaDB和MySQL之间有何区别?MySQL和MariaDB都是开源数据库技术。您可以使用它们以包含行和列的表格格式存储数据。MySQL是最广泛采用的开源数据库。它是许多热门网站、应用程序和商业产品的主要关系数据库。MariaDB是MySQL的修改版本。在MySQL被Oracle公司收购后,出于......
  • mysql8.0新特性
    1、mysql8.0新特性概述MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,突出的一点是多MySQLOptimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更......
  • mysql死锁日志
    发生死锁,第一时间查看死锁日志在分析日志前,我们要知道InnoDB中锁在日志中具体显示的数据类型,平时我们常接触到的是RecordLocks(记录锁),GapLocks(间隙锁),Next-KeyLocks和InsertIntentionLocks(插入意向锁)。这四种锁对应的死锁如下:记录锁(LOCK_REC_NOT_GAP):lock_modeXlocksrec......
  • Mysql 插入数据忽略已存在数据
    MySQL的INSERTIGNOREINTO语句用于向表中插入数据,如果数据已经存在,则忽略插入操作而不报错。以下是INSERTIGNOREINTO语句的基本语法:INSERTIGNOREINTOtable_name(column1,column2,...)VALUES(value1,value2,...);这里的table_name是要插入数据的表名,(column1,colu......
  • MySQL记录锁、间隙锁、临键锁(Next-Key Locks)加锁过程
    innodb一定存在聚簇索引,默认以主键作为聚簇索引有几个索引,就有几棵B+树(不考虑hash索引的情形)聚簇索引的叶子节点为磁盘上的真实数据。非聚簇索引的叶子节点还是索引(id主键值),指向聚簇索引B+树。锁类型:共享锁(S锁):假设事务T1对数据A加上共享锁,那么事务T2可以读数据A,不能修......
  • 随笔记录-mysql 导入
     mysql-hlocalhost-utest-P3306-p 459 mysql-h192.168.1.12-utest_user2312-P3306-pLOADDATALOCALINFILE'/home/hctest/load_41_10.txt'INTOTABLEt15fieldsterminatedby',';[root@localhosthctest]#catuid_mysql.sh#!/bi......
  • MySQL运维实战(3.1) MySQL官方客户端使用介绍
    作者:俊达引言MySQL是MySQL安装包默认的客户端,该客户端程序通常位于二进制安装包的bin目录中,或者通过rpm安装包安装mysql-community-client,是数据库管理系统的重要组成部分。MySQL客户端不仅仅是一个简单的软件工具,更是连接用户与数据库之间的桥梁,对于有效地使用MySQL数据库的功......
  • 数据库mysql面试题
                          ......
  • MySQL数据库安全配置规范
    在生产中,安全相当重要,毕竟你的核心数据都在里面,MySQL因为其开源的流行性,大量个人,企业,政府单位采用,但是,很多部署的时候采用都是默认的配置,这就导致了安全的相对欠缺,你需要针对你的安全有所加强。总的来说,数据库一般划分为生产库,压测库,准生产库,测试库,开发库。下面部分主要说的是生产......