PolarDB采用存储和计算分离的架构,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务,既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势。本文介绍Akulaku如何通过PolarDB应对业务挑战。
所属行业:互联网社交
网站地址:Akulaku
公司介绍
Akulaku是东南亚领先的银行和数字金融平台,在印度尼西亚、菲律宾和马来西亚均设有办事处。Akulaku的存在是为了通过数字银行、数字融资、数字投资和保险经纪服务,帮助新兴市场服务不足的客户满足日常财务需求。
Akulaku除了虚拟信用卡和电子商务平台外,还运营在线财富管理平台Asetku和Neobank,由Bank Neo Commerce支持的移动数字银行。Akulaku的使命是到2025年为东南亚的5000万用户提供服务。
业务挑战
Akulaku随着业务量上涨,部分业务采用传统的数据库服务已不能满足业务增长需求。这些业务拥有数百套的数据库,在电商大促的场景,一个数据库的QPS有几十万,某些从库负载瞬时飙升,导致业务查询过慢。同时,涉及到数据分析平台的业务,表的基数都特别大,亿级别的表不在少数。业务面临如下挑战:
核心数据库负载普遍较高:对于高负载能力不足,同时节点扩容不便,而且读写常常都配置在主库。
日常变更:超过一亿行大表变更变得越来越多,对数据库性能和业务影响较大。
主从延时:因数据延迟而导致从库接口查不到数据而报错。
磁盘容量:磁盘上限容量不足以支持业务数据扩展。
解决方案
数据库选型
经过充分收集业务痛点和数据库架构综合选型,Akulaku最终决定把该部分业务迁移到PolarDB上,主要原因有:
快速扩展和高性能:PolarDB实现了计算节点和存储空间的分离,支持快速扩展,并且通过使用物理日志确保主从同步的延迟在毫秒级别。
超大磁盘容量:PolarDB支持高达500 TB的磁盘容量,解决了业务对磁盘空间的担忧。
优秀的性能和容灾能力:PolarDB实现跨机房跨地域的层级容灾恢复,在性能和容灾方面表现出色。
迁移方案
数据传输服务DTS是阿里云提供的实时数据流服务,支持关系型数据库(RDBMS)、非关系型的数据库(NoSQL)等数据源间的数据交互,集数据同步、迁移、订阅、集成、加工于一体,助力用户构建安全、可扩展、高可用的数据架构。
DTS支持源为传统数据库的迁移,支持结构迁移、全量数据迁移以及增量数据迁移。同时,这三种迁移类型均支持在自建应用不停服的情况下,平滑地完成从传统数据库到云原生数据库PolarDB的迁移。下面介绍从MySQL至PolarDB的迁移环节。整个迁移主要由4个阶段组成:
原数据库信息收集,用于判断是否满足迁移需求。
针对不同业务编写迁移方案。
数据同步和迁移过程的保障。
迁移后的成果验收和性能表现。
客户价值
性能提升
在电商大促的场景下,传统数据库MySQL随着业务增加,部分业务读写都在主库,导致主库负载压力增大。从库负载瞬时飙升,导致业务查询过慢。PolarDB采用计算节点和存储分离,能快速扩充计算节点更好应付突发状况。自带数据库代理服务可以支持读写分离和业务切割、负载均衡,更好的应对高负载的环境。
数据迁移变更
涉及数据分析平台的业务,表的基数都特别大,亿级别的表不在少数。传统数据库MySQL在做变更时,一般使用PT或者Ghost工具进行大表的变更,但通常耗时较长(一般耗时十几个小时)而且常因为网络或者负载原因导致变更中断影响业务的顺利变更。PolarDB对于大表数据可以通过DDL变更(1秒内),只需变更表定义信息,无需修改已有数据。迁移到PolarDB后,大大降低业务的变更时间和数据丢失的风险。同时降低了维护的成本和提高服务的可用性。
主从延迟
Akulaku业务系统,有一些业务场景对于主从延时要求特别严格。使用传统数据库MySQL时,往往因为延迟而触发业务告警。PolarDB通过物理日志进行同步,主节点利用RDMA网络将数据实时更新到存储空间,而其他计算节点则通过高性能的RDMA网络实时读取Redo日志,以修改Buffer Pool中的页面,从而实现同步B+Tree和事务信息。不同于逻辑复制自上而下的复制方式,物理复制方式采用自下而上的方法,能够将主要延迟控制在毫秒级别。
磁盘容量
随着业务量增长,传统MySQL数据库服务磁盘容量不足需频繁进行扩容操作,对于一些区域磁盘剩余不足的情况,还会导致集群切换,严重影响业务。数据分析平台相关业务,存储的数据至少都是T级别,而PolarDB可以支持500 TB的容量,很大程度上缓解了因一些区域磁盘剩余不足导致切换集群问题,由于底层架构的优化,IO性能得到了显著提升。
客户感言
初步统计,本次迁移跨公司多个业务线,涉及系统有几十个,从开始调研到最后正式上线耗时数月。经过大半年的实践,稳定性、兼容性、性能等均符合预期,能够满足我们现阶段发展需求。期望阿里云以后可以推出更多好的产品,共同迎接未来的挑战。