高性能帐务数据库Maxwell:自主可控、超低延时

简介: 支付宝最重要、最基础的系统工作是记账,记账的准确性、及时性和吞吐直接影响着用户的支付体验和资金安全。账务数据库作为账务数据存储和处理底盘,在很大程度上决定了整个账务系统所能实现的性能(如吞吐、延迟、抖动毛刺等),是整个支付业务的基石。这个问题在客户基数大场景复杂的支付宝尤为突出。Maxwell账务数据库是一款软硬件高度优化的账务系统,产品核心完全由C语言及汇编完成,完全自主开发,无第三方库依赖,极致可控。本文以蚂蚁热点账务问题为例,分享在面临这些问题所进行探索的成果:Maxwell高性能账务数据库,以及落地情况。

导读

支付宝最重要、最基础的系统工作是记账,记账的准确性、及时性和吞吐直接影响着用户的支付体验和资金安全。账务数据库作为账务数据存储和处理底盘,在很大程度上决定了整个账务系统所能实现的性能(如吞吐、延迟、抖动毛刺等),是整个支付业务的基石。这个问题在客户基数大场景复杂的支付宝尤为突出。

Maxwell账务数据库是一款软硬件高度优化的账务系统,产品核心完全由C语言及汇编完成,完全自主开发,无第三方库依赖,极致可控。

本文以蚂蚁热点账务问题为例,分享在面临这些问题所进行探索的成果:Maxwell高性能账务数据库,以及落地情况。

如何解决热点账务问题?

随着支付宝用户量的不断增长和业务场景的日趋多样,账务系统面临着越来越多的挑战,热点账户更新的便是其中一个典型问题。所谓热点账户是指产生资金流入流出请求笔数巨大的账户,请求持续时间可能是秒级,也可能较长一段时间。热点账户普遍存在于大商户的支付收单场景,如直播大V带货、聚划算、商户活动营销等,形成对单个账户的账务请求洪峰,如若账务系统处理能力不足,不仅会影响支付体验,还可能会导致系统的大范围故障,甚至是集群的雪崩。

为应对单账户记账的挑战,业界普遍采用缓冲、汇总、拆分、限流等方式来进行优化、将热点账户配置成非实时记账等方式处理,但是这些方式在缓解记账问题的同时又带来了新的问题:

*可能导致透支,出现资损

*账务余额更新不及时,用户体验差

*热点账务记账人工成本高

*一旦出现异常,恢复成本高,且可能导致大客户流失

暂时抛开具体实现,梳理上述场景,热点账务系统需要具备以下特点:

*高可靠,无需赘言

*高吞吐,直面洪峰,无需复杂且有副作用的“奇技淫巧”

*低时延,账务处在悠长且复杂的支付流程的同步链路上,对处理时延有严格的控制,否则会导致支付失败等一系列后果

*低抖动,不论是吞吐抖动还是时延抖动都会带来上下游的冲击,产生请求超时、堆积等问题

*无性能拐点,即便出现请求数超过了账务系统的最大吞吐也不能出现性能拐点,导致整个链路性能迅速恶化甚至雪崩。

*支持事务,保证资金流入流出原子性

*系统吞吐能够线性扩展,随着系统可用资源的增加线性增加

为了解决热点账户问题,在调研大量现有技术方案,结合业务技术指标论证之后,我们最终决定从零研发符合要求的高性能账务系统。最后采用如下图所示构架实现,项目首期即实现将单账户记账吞吐相比原方案提升570倍,经过优化迭代目前已提升至1000倍。

如下图所示,记账请求由客户端发送至账务处理集群,每个集群由三个Worker组成,每个Worker由如下三个自研核心模块组成:截屏2021-12-02 下午9.09.02.png

*Raft保证多副本之间数据一致性、实现高可用

*账务逻辑负责账务数据处理,维护数据ACID特性等(本文不涉及账务处理逻辑本身,可以将其抽象成数据处理计算过程);

*Maxwell存储引擎负责账务数据的存储和更新

Maxwell账务数据库的优势

Maxwell账务数据库在实现超高的记账吞吐的同时保证了性能稳定,其原因在于坚持全链路视角优化账务过程,核心模块的设计实现高度契合了计算机软硬件的特性,能将软硬件的性能发挥到极致。

*账务逻辑下沉,计算向数据靠近,提升账务执行效率

*Maxwell存储引擎充分发挥SSD磁盘特性,重构了磁盘数据的组织维护方式,从根本上解决数据读写放大、空间放大的问题,从而消除由此引发系统抖动、拐点等不稳定问题

*账务进程支持单机百万级账务事务并行处理能力,并可线性扩展集群并发。

*核心模块内置自主缓存管理模块,可根据场景调优数据缓存策略

*核心模块内置网络管理模块,实现超低延迟网络包收发、处理

*基于SPDK实现的用户态文件系统,进一步提升磁盘IO访问效率,减少操作系统影响

*优化降低请求之间数据共享引起的锁竞争,减少大批量请求并发导致的性能下降、抖动、拐点

*ARaft自适应调整RLog分发过程,能兼顾小流量和大压力场景,同时可以缓冲副本间网络抖动的影响

*由C语言+汇编开发,无GC,无隐式资源分配等操作,行为可控,将操作系统的影响降到最低

以下重点介绍Maxwelld的 两个性能:ARaft、存储引擎

ARaft与另一广泛使用的开源实现相比,相同测试条件,平均时延相等的情况下,两者吞吐和P999时延分布如下图。截屏2021-12-02 下午9.09.14.png

ARaft的吞吐是其9.1倍,且时延基本保持恒定。

随着测试时间推移,开源实现出现Compaction,如下图所示,随即请求吞吐大幅下降,同时延时陡增。而ARaft可以保持吞吐、时延的稳定。

截屏2021-12-02 下午9.09.23.png

在存储引擎方mian,账务数据库在相同平均记账请求20000 TPS测试条件下,采用不同存储引擎记账服务如下图所示:

*使用RocksDB的方案记账吞吐在10000-40000 TPS之间波动,记账的平均耗时在数毫秒到1200ms之间剧烈波动,大大超过账务所能容忍的耗时,事实上会导致记账失败等一系列后果

*采用Maxwell存储引擎的账务数据库的吞吐基本稳定20000 TPS,记账的平均耗时也稳定在3ms。截屏2021-12-02 下午9.09.33.png

综上,Maxwell账务数据库是一款软硬件高度优化的账务系统,产品核心完全由C语言及汇编完成,完全自主开发,无第三方库依赖,极致可控。为提供用户高可靠、高吞吐、无拐点、无抖动、低延迟的账务解决方案,同时满足相同业务量所需的服务器资源大大减少,降低硬件资源投入、能耗、运维等业务成本。

经受住了双十一大促检验

Maxwell账务数据库经过优化迭代已将性能在原有方案上1000倍,由于其良好的性能,承载数据也从几千个账号扩展到几亿个,应用场景覆盖到金融的方方面面,不仅可以提供良好的用户体验,还年节省成本过亿元。

通过不断迭代沉淀,它也从一个解决热点账户的专用系统变成服务更多业务场景的高性能账务数据库,在继承优良性能特性的同时,可以快速构建定制。

目前基于Maxwell的解决方案在全站范围内铺开,目前已涉及主站、网商、国际 ,涵盖电商直播、新零售、出行、钱包营销、商户批扣结算、核算日切等多块核心业务,稳稳地经受住了双十一大促的检验。接下来主账务(支付宝余额户)、核算内部户、基金大账户等重头戏也将陆续上线,同时,国内红包营销等相关的业务也在进一步接洽中。

微贷风控场景用户在使用花呗等微贷业务时,需要对用户进行实时风险评估。风控特征平台按照一定的风险模型进行风险评估,过程中会查询大量用户相关特征数据。由于该过程在业务同步链路执行,为保证业务体验,对特征数据查询的耗时和毛刺非常敏感。Maxwell业务中承载千亿级 主+客体特征数据的在线服务,无抖动实时读写构架特征数据库,将风控性能提升10倍,同时所需服务器资源减少10倍,综合提升超过100倍

金融时序场景 。金融数据库是蚂蚁金融智能操作系统的存储底盘,库储有海量历史与实时经济相关数据,如股票,债券行情及预测数据,宏、微观经济指标等,服务投研、投顾、行业研判等领域。Maxwell使用服务成本低的Docker平台,单副本服务最低仅需3Core,系统吞吐可随系统资源线性扩展,多副本方式部署,提供金融级可靠性,其中单副本仅使用17core,即可提供每秒70万条时序数据时间顺序写入,每秒9万条时序数据完全随机写入,以及单副本每秒4万次查询请求,且多副本均可提供查询服务。最终解决时序数据查询时间延迟大,亿级数据导入、时序访问成本高的综合性问题。

数金资产池估值。资产池的运营管理包含多个资产池。资产池内资金、债券等资产会不断流转转换,不同资产价格也随时间不断变动。业务上需要掌握资产池内的资产总价值,保证收益稳定、运营风险平衡可控。Maxwell在业务中充分发挥快速查询能力,将数据跑批过程转换为实时更新资产值估值,资产池估值所需时间提升1200倍实现实时估值,同时所需要的硬件资源降低至原方案的1/6,可用性提升至99.999%。

            小结

     面对巨大业务压力的同时,我们从年初开始规划,积极推进Maxwell账务数据库标准化建设,为账务行业领域提供统一的高性能方案,同时进一步夯实底层能力,释放软硬件一体化的技术红利。随着整体生产集群规模的扩大,面对千余运行实例、众多业务集群和Maxwell版本迭代,对我们的集群运维能力建设也提出了巨大的挑战。


作者介绍//

马凌,现任蚂蚁集团高性能计算团队负责人,精于底层开发性能优化,主要成果如下 :
有35篇专利,其中12篇美国专利,包括CPU体系架构、分布式存储、以及区块链,其中多核一致性专利在最新的CPU落地生产 ;开发的Glibc汇编代码被大多数x86服务器使用,包括memcpy、memset,strcpy、strlen、strcmp等,完成的高频交易系统(<2us), 接近理论值;利用CPU,OS,网络,SSD特性,结合CPU-Friendly Coding,负责领导开发软硬件高度统一的账务数据库Maxwell已在支付宝核心链路全面生产, 综合性能提升100~1200倍

相关文章
|
9月前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
9月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
970 8
|
9月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
633 1
|
9月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
12月前
|
安全 关系型数据库 数据库
瀚高股份与 Anolis OS 完成适配,龙蜥获数据库场景高性能与稳定性认证
Anolis OS 能够为用户提供更加高效、安全的数据处理与管理体验。
|
存储 关系型数据库 数据库
高性能云盘:一文解析RDS数据库存储架构升级
性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。
|
Rust 物联网 数据处理
Rust +时序数据库 TDengine:打造高性能时序数据处理利器
TDengine 是一款专为物联网、车联网、工业互联网等时序数据场景优化设计的开源时序数据库,支持高并发写入、高效查询及流式计算,通过“一个数据采集点一张表”与“超级表”的概念显著提升性能。 Rust 作为一门系统级编程语言,近年来在数据库、嵌入式系统、分布式服务等领域迅速崛起,以其内存安全、高性能著称,与 TDengine 的高效特性天然契合,适合构建高可靠、高性能的数据处理系统。
672 2
|
存储 人工智能 固态存储
软硬联合创新:打造极致压缩比的高性能瑶池数据库
本文介绍了阿里云瑶池数据库的软硬联合创新,旨在打造极致压缩比和高性能的数据库系统。内容涵盖五个方面:1) AMD EPC赋能阿里云数据库,提升计算性能;2) AMD EPYC全面支持阿里云数据库及AI应用;3) 小盈科技分享Polar DB的最佳实践,解决业务发展中的挑战;4) 基于阿里云新硬件完成存储规模拓展和性能演进,实现大规模数据处理;5) 阿里云资源存储部件的应用历史与演进,展示自研硬件的进步。通过这些创新,瑶池数据库实现了延迟降低30%、存储成本降低40%,并提供更高的安全性和灵活性。
371 5
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
819 2

热门文章

最新文章