客户说|PolarDB最佳实践:东南亚独角兽Akulaku云原生数据库架构演进之路

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 东南亚独角兽Akulaku云原生数据库架构演进之路

1.引言

云数据库实现了计算存储分离,支持计算与存储的独立扩展,高可用性和灵活性,同时提供按量计费,增强成本的可控性,因此应用已非常普遍。但各家云数据库也有会各自的特性与瓶颈,比如传统的类MySQL云数据库服务在面对几亿甚至几十亿数据量变更时,会显得十分吃力,影响业务迭代速度。我司在调研解决此问题时对阿里云原生数据库PolarDB有所研究与实践,通过本文做一分享,希望能够为行业提供一些参考。


2.背景

Akulaku是一家领先的金融科技公司,为东南亚市场提供数字金融解决方案。随着公司的快速发展,业务量的持续增加,部分采用传统的数据库服务已不能满足业务增长需求。这些业务拥有数百套的数据库,在日常工作中数据库的扩容,以及在高负载下频繁的数据变更 ,维护成本上升较快,因此我们决定投入资源调研方案以解决此问题。


针对目前传统云数据库面临的问题,主要包括以下几个方面:

1.核心数据库负载普遍较高,对于高负载能力不足,同时节点扩容不便,而且读写常常都配置在主库。

2.日常变更,超过一亿行大表变更变得越来越多,对数据库性能和业务影响较大。

3.主从延时,因为延迟导致从库接口查不到数据而报错。

4.磁盘容量上限,不足以支持业务数据扩展。


经过收集业务痛点和数据库架构综合选型,我们最终决定把该部分业务迁移到PolarDB上,原因在于PolarDB的计算节点和共享存储分离,便于快速扩展,底层使用物理日志,主从同步在毫秒级,以及支持100T的超大磁盘容量,让业务不需要担心磁盘空间问题,同时在测试中PolarDB的性能和容灾方面也有很出色的表现。


架构改动,如图:

1.JPG

3.迁移

下面介绍从传统云数据库至PolarDB的迁移环节。整个迁移主要由4个阶段组成:


  • 原数据库信息收集,用于判断是否满足迁移需求
  • 针对不同业务编写迁移方案
  • 数据同步和迁移过程的保障
  • 迁移后的成果验收和性能表现

2.JPG


3.1 业务梳理

收集需要迁移的数据库实例,我们主要围绕日常变更频繁和性能优化较大的实例。对于迁移方案,需要结合实际情况调研,比如不仅需考虑主业务本身,还需考虑上下游业务,例如数据分析平台,数仓报表,Canal同步等。


3.2 上下游异构数据

依赖业务需要在主业务迁移前先迁移到PolarDB,避免主业务迁移后,出现依赖业务数据缺失的情况。特别是异构数据源的场景,这里以Canal迁移为例:

3.JPG

Canal需要提前切换到PolarDB上,这里需要注意两个问题。

1. 切换PolarDB时,因为binlog的位点信息变更,需要提前修改好Canal的配置文件。

2. 确认PolarDB上对应Canal的同步账号,权限和密码是否和原数据库上的一致。


3.3 自动化运维平台

由于业务日常变更量大,Akulaku自主研发数据库运维平台,集成实例迁移,SQL审核,系统巡检等功能。本次迁移主要依赖数据库自动化平台的实例迁移功能,同时能避免误操作造成的业务影响。切换完后,也可以根据平台的资源展示和监控功能,实时查看PolarDB的性能状态。

4.JPG

数据库自动化运维平台的数据同步功能,主要是调用了DTS接口来做数据的实时同步,只需要在平台上填好配置即可,后面的账号迁移和域名变更都是通过平台一键操作。


要注意几个事项:

1. 数据同步时需要确认源端是否有触发器,可能会导致源和目标数据不一致,需要删除被迁移到目标库中的触发器。2. 域名切换前确保依赖业务已经全部迁移到PolarDB,防止依赖业务数据丢失。

3. 域名切换前确保业务无写入,避免业务双写。


3.4 迁移结果验收

本章节对迁移后的情况做一介绍,同时探讨一下PolarDB相关的相关特性。


3.4.1 性能优势

随着业务量上涨,在电商大促的场景,能体验到迁移后带来的好处。比如我们有一个数据库的QPS有几十万,以前数据库做支撑明显感觉到吃力,而且有些业务读写都在主库,加大对主库的负载压力。


PolarDB 计算节点和存储分离,能快速扩充计算节点,能更好地应付突发情况。自带Proxy节点,可以支持读写分离和业务切割,负载均衡,能更好地应付高负载的环境。

5.PNG


在大促高负载的场景下,我们收集了一些QPS和往年的数据库做了对比,看到PolarDB性能有明显的提升。在相同配置下,数据库负载越高,PolarDB的优势越大,优势不仅仅是性能上的优化,同时也体现在数据库的稳定性上。


PolarDB的功能特点

1. 读写分离

因为业务没有做读写分离,常常把连接都打到主库。而PolarDB只需要提供集群地址, 在保证读写一致性的前提下,对一些读写的事务,自动分流到主从库上,而且基于负载的自动调度策略,按照活跃连接数自动调度,实现多个节点间的负载均衡。

2. 快速添加从节点

在一些大促期间,某些从库负载瞬时飙升,导致业务查询过慢。这时PolarDB可以快速添加从节点。因为PolarDB是共享的磁盘,添加节点不需要拷贝数据。另外计算节点和存储分离,单独添加从节点时,不影响整个集群的运行。

3. 高速链路互联

一般MySQL的服务针对单个服务器,数据从写入到落盘,都是要经过OS的缓存的,即OS内核和用户数据的交互。PolarDB采用远程直接数据存取(Remote Direct Memory Access,以下简称RDMA)高速网络互连的众多区块服务器(Chunk Server)一起向上层计算节点提供块设备服务。摆脱传统的io模式,让数据读写更上一层楼,QPS可突破50w。


3.4.2 日常大表变更

对于大表加列,特别是涉及到数据分析平台的业务,表的基数都特别大,亿级别的表不在少数。以往在MySQL做变更时,为了把业务影响降低到最小,一般都是使用的PT或者Ghost工具进行大表的变更。但是耗时很长,而且常常会因为网络或者负载原因中断。迁移到PolarDB后,对于那些大表加列的DDL变更,现在可以直接通过自动化平台操作,利用PolarDB的新特性直接添加。


PolarDB 5.7入了MySQL 8.0的新特性—Instant Add Column ,快速加列采用的是 instant 算法,使得添加列时不再需要 rebuild 整个表,只需要短暂的获取MDL锁并在表的 metadata 中记录新增列的基本信息即可。而对于加索引, PolarDB支持并行DDL和DDL物理复制优化功能。


秒级加字段

6.PNG

如上图所示,一亿多的大表,加列变更时,耗时都是在1秒内完成, 只需变更表定义信息,无需修改已有数据。基于该特性,大大降低业务变更时间和风险,对于我们日常维护有巨大的帮助,提升数据库SLA。

7.PNG

由上图可知,在添加列时,PolarDB耗时一直稳定在1秒内,但是原MySQL数据库的耗时却随着数据量的增长而增长。特别是几亿行的表变更时,原数据库耗时需要十几个小时。PolarDB执行效率有明显的提升,对比起来有质的飞跃。


针对PolarDB MySQL引擎5.7版本的集群,需要开启以下参数来使用秒级加字段功能:

innodb_support_instant_add_column


并行创建索引

8.PNG

9.PNG

如上图所示,包含4.4亿行数据、接近3TB大小的表,使用并行创建索引,只用了不到20分钟的时间,极大地缩短了大表创建索引的耗时。

10.PNG

由上图可见,与原MySQL对比,随着表的大小的提升,PolarDB创建索引的性能优势越来越明显。


3.4.3 主从延迟

对于Akulaku业务系统,有一些业务场景对于主从延时要求特别严格。在使用原MySQL数据库时,往往因为延迟而触发业务告警,也是我们比较头疼的一个问题。迁移到PolarDB后,主从同步的效率有明显的提升。


PolarDB采用物理日志进行同步,因为共享存储原因,主节点通过RDMA网络将数据实时更新到共享存储,其它计算节点通过高性能的RDMA网络实时读取redo日志去修改Buffer Pool中的Page,同步B+Tree及事务信息。不同于逻辑复制自上而下的复制方式,物理复制方式是自下而上的,能把主要延时控制在毫秒级别。


物理同步

11.PNG

如架构图所示,Primary和Replica节点共享同一个PFS(PolarStore File System),复用数据文件和日志文件,RO节点直接读取PFS上的Redo Log进行解析,并将其修改应用到自己Buffer Pool中的Page上,当用户的请求到达Replica节点后,就可以访问到最新的数据了。同时Replica和Primary节点间也会保持RPC通信,用于同步Replica当前日志的Apply位点,以及ReadView等信息。


3.4.4 磁盘容量随着业务量增长,原MySQL数据库服务的磁盘需频繁进行扩容操作,对于一些区域磁盘剩余不足的情况,还会导致实例切换,严重影响业务。数据分析平台相关业务,存储的数据至少都是T级别,而PolarDB可以支持到100T的容量,较大程度上缓解了这个问题,由于其底层的架构的优化,在IO性能方面得到较大的提升。PolarDB的存储是怎么样做到高容错,容量大,而且加载速度快的?我们查询了相关资料,了解到这是PolarFS起了作用,如感兴趣可参阅以下文档:

https://www.vldb.org/pvldb/vol11/p1849-cao.pdf


4.结语

12.PNG

初步统计,本次迁移跨公司多个业务线,涉及系统有几十个,从开始调研到最后正式上线耗时数月。经过大半年的实践,稳定性、兼容性、性能等均符合预期,能够满足我们现阶段发展需求。期望阿里云以后可以推出更多好的产品,共同迎接未来的挑战。


 / End /  

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
打赏
0
0
0
0
43
分享
相关文章
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
197 3
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
347 17
刷新世界纪录!阿里云PolarDB凭借创新的「三层解耦」架构刷新TPC-C基准测试世界纪录
刷新世界纪录!阿里云PolarDB凭借创新的「三层解耦」架构刷新TPC-C基准测试世界纪录
PolarDB 开源基础教程系列 1 架构解读
PolarDB 是阿里云研发的云原生分布式数据库,基于 PostgreSQL 开源版本,旨在解决传统数据库在大规模数据和高并发场景下的性能和扩展性问题。其主要特点包括: 1. **存储计算分离架构**:通过将计算与存储分离,实现极致弹性、共享一份数据以降低成本、透明读写分离。 2. **HTAP 架构**:支持混合事务处理和分析处理(HTAP),能够在同一系统中高效执行 OLTP 和 OLAP 查询。 3. **优化的日志复制机制**:采用只复制元数据的方式减少网络传输量,优化页面回放和 DDL 锁回放过程。 4. **并行查询与索引创建**:引入 MPP 分布式执行引擎。
312 8
阿里云PolarDB:引领云原生数据库创新发展
阿里云PolarDB引领云原生数据库创新,2024云栖大会将分享其最新发展及在游戏行业的应用。PolarDB凭借弹性、高可用性、多写技术等优势,支持全球80多个站点,服务1万多家企业。特别是针对游戏行业,PolarDB助力Funplus等公司实现高效运维、成本优化和业务扩展。通过云原生能力,PolarDB推动游戏业务的全球化部署与快速响应,提升用户体验并保障数据安全。未来,PolarDB将继续探索AI、多云管理等前沿技术,为用户提供更智能的数据基础设施。
220 2
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
193 3
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
257 12

相关产品

  • 云原生数据库 PolarDB
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等