跑得更快!华为云GaussDB以出色的性能守护“ERP的心脏”

更快,华为,gaussdb,出色,性能,守护,erp,心脏 · 浏览次数 : 45

小编点评

**华为云GaussDB以出色的性能守护“ERP的心脏”** 华为云GaussDB数据库是MetaERP交易系统的关键支撑引擎,其性能与效率对于ERP系统的整体性能至关重要。 **库存服务:ERP系统中最核心的应用之一** 库存服务作为ERP系统交易数据的第一站汇集地,承担着处理大量交易请求的巨大责任。其性能直接影响着ERP系统的效率和可扩展性。 **华为云GaussDB的优势** 华为云GaussDB拥有以下优势: - 高性能设计,可处理高频交易。 - 优化的索引和缓存机制,提高查询效率。 - 线程安全和并发控制,确保数据一致性。 **攻坚历程形成可借鉴的经验** 华为云GaussDB团队通过细切目标、优化执行计划和解决高频交易问题等措施,最终实现了3倍的交易性能提升。 **结论** 华为云GaussDB作为MetaERP交易系统的核心引擎,其出色的性能为其提供了一个稳健和高效的平台。通过优化和改进的策略,华为云GaussDB持续提升其性能,为华为公司提升了在市场上的竞争力。

正文

摘要:GaussDB已经全面支撑起MetaERP,在包括库存服务在内的9大核心模块中稳定运行,端到端业务效率得到10倍提升。

本文分享自华为云社区《跑得更快!华为云GaussDB以出色的性能守护“ERP的心脏”》,作者:GaussDB 数据库。

ERP作为华为企业经营最核心的系统,伴随着华为20多年的快速发展,支撑每年数千亿产值的业务和全球170多个国家业务的高效经营。其中的库存服务作为交易数据的第一站汇集地,可以说是ERP系统中最核心的应用之一。

库存服务不仅要与交易控制层的采购、订单、任务令、成本、核算、计划等模块交互,也和各种各样的作业层系统有着很深的联系,被比作“ERP的心脏”再合适不过。库存服务对齐经营实体的资产库存管理,提供六大核心库存服务,支撑计划、订单、采购、制造等业务秒级自循环,同时作为库存明细账(量/价/余额)的可信数据源,支撑集团财务核算,账实一致、账账一致。可以说库存服务的性能很大程度上决定着ERP系统的整体性能。

攻坚ERP库存服务“硬骨头”

作为“心脏”,库存服务的血液流量与流速有多大?仅中国区,库存服务的年处理交易需求就超过10亿行,日处理交易峰值达到500w行以上,高峰时期数十个系统同时发起库存交易,从接收交易需求到交易核算完成要经历8个环节、200多个校验的处理。

如何做到交易校验无误、现有量扣减准确、预留同步释放、提交计价有序,同时实现毫秒级响应?交易数据库在性能上遇到了极高的挑战。

高性能数据库GaussDB书写优异成绩

想拿下以性能为首要目标的库存服务,必然需要一款同样以性能称王的数据库做底层支撑。华为云GaussDB数据库以“高性能”的优势,成为库存服务改造的趁手利器。GaussDB充分融合了华为多年来软硬全栈协同的优势,在硬件领域,结合了鲲鹏处理器的多线程、原子指令、智能网卡的计算下推、RDMA的短时延高带宽、SCM的字节寻址持久化能力等,在软件技术领域,通过动态编译、向量化引擎等能力,实现了极致的数据处理能力。

然而,上线过程中挑战仍然存在。GaussDB团队积极攻坚,细切目标,逐个攻破上线过程中遇到的难题。

首先,是如何提高执行计划的准确性。库存服务有近10万条SQL,并且存在复杂的多表关联,所以,如何保证交易数据库执行计划的准确性成为TOP挑战。对此,攻关团队围绕压测过程中识别的索引漂移等核心痛点场景,突破了智能基数估计、自适应计划选择技术,从而优化了数据库执行计划的精准性,进一步保障了库存服务每一条SQL的执行性能。

其次,是如何解决高频交易的性能问题。库存服务中有近2.7TB的数据集中在5张高频交易表里,单表数据量超过了10亿行。为了保障高频交易时性能稳定不下降,攻关团队通过组合分区和大并发线程池等技术,在打散数据访问热点的基础上,优化了线程调度机制,一方面提高了系统的响应速度,另一方面也提升了硬件的资源利用率。最终的全链路压测结果显示,切换GaussDB后,库存服务总体交易性能显著提升,达到老ERP交易峰值的3倍。

最后,是如何将攻坚历程形成可借鉴的成功经验。对此,团队在合作攻关的同时,系统性地总结了基于GaussDB数据库的开发和调优的最佳实践经验,并汇总成完整的《GaussDB开发设计及编程规范》,为后续GaussDB在其他应用的上线提供了宝贵的借鉴经验和技术规范指导。

GaussDB助力MetaERP交易性能大幅提升

如今,GaussDB已经全面支撑起MetaERP,在包括库存服务在内的9大核心模块中稳定运行,端到端业务效率得到10倍提升。再造后的库存服务显示出强大的实力,在年结期间,库存服务每天处理库存作业峰值指令接近510万笔,GaussDB事务处理峰值达1.1万TPS,就ERP系统的业务逻辑复杂度而言,GaussDB具备优异的峰值处理能力。在如此高频的交易场景下,系统仍保证事务响应时间在20毫秒以内,主备同步延迟始终保持在毫秒级,CPU利用率平稳保持在60%以下,整个年结期间没有发生可用性与数据一致性事故,交易数据一致性达到99.9999%的金融级水平。

从业务层面看,MetaERP已经覆盖华为公司100%的业务场景和80%的业务量,一笔库存交易从产生到财务核算的时间从以前的70分钟减少到13秒,一笔库存余额与货龄的计算从以前的60分钟减少到16分钟,交易性能得到大幅度提升。

GaussDB出色的性能表现,使MetaERP系统中交易量和数据量最大的库存服务运行得更快。华为云GaussDB在这场攻坚中展示出卓越的高性能实力,并完成自我迭代,将不断朝着更高的性能目标迈进。

 

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

与跑得更快!华为云GaussDB以出色的性能守护“ERP的心脏”相似的内容:

跑得更快!华为云GaussDB以出色的性能守护“ERP的心脏”

摘要:GaussDB已经全面支撑起MetaERP,在包括库存服务在内的9大核心模块中稳定运行,端到端业务效率得到10倍提升。 本文分享自华为云社区《跑得更快!华为云GaussDB以出色的性能守护“ERP的心脏”》,作者:GaussDB 数据库。 ERP作为华为企业经营最核心的系统,伴随着华为20多年

[转帖]CPU Cache Line:CPU缓存行/缓存块

《CPU Cache Line伪共享问题的总结和分析》 以下文章来源于小林coding ,作者小林coding Table of Contents CPU Cache 有多快? CPU Cache 的数据结构和读取过程是什么样的? 如何写出让 CPU 跑得更快的代码? 总结 前言 代码都是由 CPU

批处理及有状态等应用类型在 K8S 上应该如何配置?

众所周知, Kubernetes(K8S)更适合运行无状态应用, 但是除了无状态应用. 我们还会有很多其他应用类型, 如: 有状态应用, 批处理, 监控代理(每台主机上都得跑), 更复杂的应用(如:hadoop 生态...). 那么这些应用可以在 K8S 上运行么? 如何配置? 其实, K8S 针对

研发效能负责人/研发效能1号位 |DevOps负责人

想要做好业务,老板们除了要梳理好公司级别的业务目标,公司的组织架构,还要搭个有产出的班子,也就是找负责人、建团队,让组织架构充实起来。搭班子最重要的就是把负责人找到,就是团队1号位的人。本文主要讲团队负责人的主要作用,怎么才能找到,不同背景的优劣势,以及各方面的要求。 研发效能团队1号位 「火车跑得

[转帖]JVM 运行数据区深度解析

https://my.oschina.net/jiagoushi/blog/5597878 运行数据区 字节码只是一个二进制文件存放在那里。要想在 jvm 里跑起来,先得有个运行的内存环境。 也就是我们所说的 jvm 运行时数据区。 1)运行时数据区的位置 运行时数据区是 jvm 中最为重要的部分,

[转帖]ESXi5.5升级到ESXi6.7

之前一直以为ESXi升级必须得 一个版本一个版本升级,不能跨版本,做了个实验结果证实从ESXi5.5可以升级到6.7。该实验是虚拟了一台ESXi上面并没有跑虚机,生产环境进行升级时,能将虚机迁移则迁移(就算升级失败大不了重装,不至于丢失数据)。 1、ESXi的介质分为两类,以6.7为例:VMware

Linux 根文件系统的移植(从入门到精通)

一、简介 提到操作系统的安装,还得从大学的时候说起,刚入学的时,朋友的系统本崩了,跑去电脑城换个系统花了40大洋,震惊了贫穷的我。好像发现了商机,果断开始了折腾自己的电脑,然后用朋友的电脑进行测试,由于对启动项不了解,有次蹦了过后,自己花钱去维修电脑哪里安装了一次,偷偷的学习。在这样的不断折腾下,慢

跑AI大模型的K8s与普通K8s有什么不同?

在面对大模型AI火热的当下,咱们从程序员三大件“计算、存储、网络”出发,一起看看这种跑大模型AI的K8s与普通的K8s有什么区别?有哪些底层就可以构筑AI竞争的地方。

编译mmdetection3d时,无root权限下为虚拟环境单独创建CUDA版本

在跑一些深度学习代码的时候,如果需要使用mmdetection3d框架,下载的pytorch的cudatoolkit最好需要和本机的cuda版本是一样的,即输入nvcc -V命令后显示的版本一样。 但是如果是在学校里,一般是服务器管理员装的cuda驱动是啥版本,cudatoolkit就是啥版本,且非

将虚拟机跑在ceph之中

目录openStack对接ceph1. cinder对接ceph1.1 ceph创建存储池1.2 ceph授权1.3 下发ceph文件1.4 修改globals文件1.5 部署cinder1.6 创建卷null2. nova对接ceph2.1 创建卷2.2 更新cinder权限2.3 修改globa