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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
创建service后,kubernetes会发生什么
本文分享自华为云社区《当创建一个service后,kubernetes会发生什么?》,作者:可以交个朋友。 一、Service介绍 1.1 Kubernetes为什么会引入service? 考虑到集群中Pod实例IP地址随着工作负载的生命周期的变化,常规通过访问Pod实例的IP方法变得不再实用。 每个工作负载通常有一个或者更多个后端Pod实例,如何将流量请求做到负载均衡转发也是迫在眉睫。 1.2 Service概念 service用于一组提供服务、具有相同 label Pod的抽象集合的网络访问地址(包括网络协议IPv4/IPv6地址和服务域名地址),提供集群内/外访问通信,屏蔽后端实例Pod信息并为后端Pod实例提供负载均衡的能力。 1.3 Kubernetes中存在哪些类型的service? clusterIP:Kubernetes集群默认自动设置service的虚拟IP地址,仅可被集群内的其他客户端访问。 NodePort:将service的端口映射到每个Node的(指定/随机)端口,供集群外客户端通过集群任一节点的IP地址+(指定/随机)端口访问,即NodePort。 Load...
- 下一篇
如何通过kube-apiserver访问K8s集群中的App
本文分享自华为云社区《通过kube-apiserver访问K8s集群中的App》,作者: tsjsdbd。 K8s集群中的App(或者svc),通常使用ClusterIP,NodePort,Loadbalancer这些方式访问,但是你也可以通过Kube-apiserver(管理面)来访问App。 在《跟唐老师学习云网络 - Kubernetes网络实现》里面,提到K8s集群里面的容器,有几种访问方法: LoadBalancer Ingress ClusterIP NodePort 这里就不再分析,直接看如何通过Kube-apiserver来访问容器里面的App。下图(5) 一、启动App 创建文件ng-dp.yaml,内容如下: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx templa...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8