华为云特别强调“云原生交易数据库”而非常规的“云原生数据库”,多出“交易”两字,不会是无意义的行为,这个小细节上的变化意味着什么?给世界一个更优选择,是哪些方面更优?背后有怎样的技术创新?这是本文要探讨的重点。
强调“交易”,意味着什么
众所周知,数据库按应用方向的不同,主要分为2大场景:OLTP(交易)和OLAP(分析)。从中国市场看,OLTP仍然是国外厂商占据最大市场份额,是国内厂商替换的主要市场,反而OLAP中国公司有一定商业基础。
Gartner预测,“到2025年,中国分析型数据库市场来自海外厂商将只剩下30%,交易型数据库市场海外厂商市场也只会剩下50%左右。”这对国内数据库厂商而言意味着巨大的市场机会。在这样的背景下,张平安特别强调“交易”,难道是华为云释放的将发力OLTP场景下的国产替代信号吗?
数据库是所有应用的核心组件。大家知道,交易型数据库是最难的,在关键行业的核心应用领域,交易型数据库基本上都是来自美国的数据库。演讲中,张平安分享了2个案例,这两个案例共同点很显然,都是交易型场景替换。
一个是华为内部实践,华为集团流程IT ERP系统部署GaussDB后,各项性能和指标超过预期,采购履行耗时从90分钟下降到15秒;端到端订单履行耗时从23分钟下降到9秒;在历史峰值5倍压力下性能依然稳定不下降。
不要小看这个内部实践案例,华为集团流程IT ERP系统是个非常复杂的的系统,该系统涉及170多个国家和地区,500+外围应用、3万+个外围集成点,对数据库容量、性能以及可靠性都有极高要求。如:数据量大,单一个业务场景数据体量就高达百亿,而ERP总共有上百个业务,且数量还在持续增长;每分钟30万次库存查询请求及数万笔并发交易事务处理,区别于银行和互联网的交易事务,华为ERP关联系统众多,完成一笔入库交易比完成一笔秒杀交易在场景复杂度、技术复杂度、外部依赖等方面差异很大,华为ERP系统万级TPS比互联网的百万级TPS更难处理。据了解,该系统底层数据库过去20多年一直使用的是Oracle,因为众所周之的原因,现在替换为GaussDB。
另外一个是邮储银行案例,新一代分布式核心系统基于GaussDB为全行6亿多个人客户提供日均20亿笔的处理能力,联机交易处理效率提升1倍,批处理效率提升33%,在9月底的三季度结息中,新系统仅用23分钟就完成了原来Oracle系统70分钟才能完成的操作。
张平安还提到,“GaussDB已经在工行、招行、邮储等大型银行的核心业务系统上线使用,承担越来越多的业务负载。基于GaussDB,新意科技打造了“证券业务核心系统”,服务于兴业证券、 南方基金等客户。”
显然,在OLTP场景下,GaussDB已经可以实现国外数据库的完全替代,GaussDB接下来将发力OLTP场景下的自主产品替代,而金融行业肯定是重点。
如何理解“更优选择”
“GaussDB云原生交易数据库,给世界一个更优选择”,这其中“更优选择”指的哪些方面?华为云的论据是什么?
演讲中,张平安说:“为了给全球客户提供一个更优选择,华为云全新打造了全球领先的云原生交易数据库GaussDB,更快、更稳、更可信。”
显然,“更优选择”包含3个方面:更快、更稳、更可信。
而这3个“更优选择”,据老鱼了解,对标的是“O”记。
更快对应性能,数据显示,GaussDB比厂商O在公有云上同规格测试快45%。
更稳对应高可用,华为云去年首先创新推出“同城双集群”方案,即在两个数据中心部署两套独立的数据库软件,任何软硬件故障完全隔离RPO等于0。
更可信对应安全与自主可控,安全上,GaussDB内核是目前唯一通过国际CC EAL4+级认证的国产数据库。而自主可控上,GaussDB代码自研率非常高,其研发历程可以追溯到2007年,投入之大积累之深,国内可比肩的并不多。另外,华为还积极倡导技术开源,深度参与可信数据库标准制定。因此,说GaussDB是一款值得信赖的数据库,并不为过。
“更优选择”背后的技术创新
为什么GaussDB能在性能、高可用、安全3个方面做到更优?背后有哪些内核级的技术创新?
高性能方面,从公开的可查询资料中可以发现,GaussDB有2个方面的关键创新:
其一、是存储引擎,GaussDB全新上线的Ustore存储引擎,又名In-place Update存储引擎(原地更新),这个存储引擎在以前的文章中,老鱼有过介绍。这是个行存储引擎,在以前版本的GaussDB内核中使用的行存储引擎是Append Update(追加更新)模式,追加更新对于业务中的增、删以及HOT(Heap Only Tuple) Update(即同一页面内更新)有很好的表现,但对于跨数据页面的非HOT UPDATE场景,垃圾回收不够高效。Ustore存储将“有效数据”与“垃圾数据”分离存储,同时采用多版本索引技术,有效提升了存储空间的效率和性能。官方数据显示,相比常规引擎,性能抖动降低70%,同时,整体性能提升10%以上。
另一个,是软硬协同Numa-Aware,鲲鹏服务器多CPU-socket架构下跨NUMA内存访问延迟存在严重的不对称,相比x86内存访问时延高50%、并发控制原语代价高2-3倍,在数据库中以进一步恶化OLTP瓶颈,此外鲲鹏架构下CPU物理核心数相比x86有了大规模的提升,如何优化NUMA带来的访问时延问题,如何充分利用众核CPU解决并发控制问题成为了鲲鹏上优化数据库OLTP负载性能的主要挑战。因此,软硬协同Numa-Aware应运而生,通过内核线程调度NUMA亲和、关键数据NUMA化分布、LSE ARM指令级性能优化等关键技术优化,GaussDB实现了鲲鹏环境下性能40%以上的提升。
据内部人士透露,2021年,在21个金融政府大客户(涵盖银行、保险、公安、大型国企等)现场POC测试中,GaussDB在性能上平均领先对手50%,在人行、邮储等POC测试中,更是完胜竞品。
高可靠方面,当前谈的比较多的是通过一套数据库集群拉远,通过不断增加数据中心的方式,来提高可用性。从同城两中心到两地三中心,再到三地五中心,但是实际很少有应用企业能提供类似三地五中心这么高规格的基础设施,“中心”增加带来的可靠性收益逐步降低。
华为云认为,不管几个中心,只要整体一套软件(集群),就无法做到软硬件故障的完全隔离。数据库软件bug,导致即使有同城备中心,切换也没有用,因为备中心是同一套软件。
去年底, GaussDB首先创新推出了 “同城双集群”方案,这是一个重大的内核新特性。简单的说,就是同城的两个数据中心完全部署两套独立的数据库软件,任何软硬件故障完全隔离,支持版本轮换升级、应用灰度升级,主中心升级时应用还可以访问备中心正常开展业务,支持RPO=0 、RTO<60s的同城双集群切换,尽最大可能保障企业用户的核心业务7x24小时无中断。老鱼获悉,今年,这个方案已经在工商银行的5A级核心全球信贷系统完成上线,并联合工行向其他银行进行规模推广。
高安全方面,就在上月,GaussDB成为中国首个获得国际CC EAL4+级别认证的数据库产品。很多人可能不知道CC EAL4+意味着什么?CC认证是国际公认计算机维度的高级别安全认证,也是国际范围内30多个国家官方认可的通用标准。其中,EAL4+认证难度有多大?对比目前国外常见数据库主流版本通过的EAL2认证来说,EAL2为结构测试级,开发者可递交设计信息、测试结果进行评估,而EAL4作为系统设计、测试和复查级,评估程序更为严谨,有对评估对象模块底层设计和实现子集的分析,更有对产品代码的审视和对产品研发环境的站点审计等。
而GaussDB能拿到CC EAL4+主要的关键技术有2个:全密态和防篡改。这方面最近披露的资料比较多,就不在这里过多赘述,需要强调的是,2022年GaussDB由纯软全密态全新升级为软硬结合全密态,据说相比竞品纯硬件方案性能优20%。另外,GaussDB还是业内首个以最高分通过信通院防篡改数据库基础能⼒评测的数据库产品。
公开资料显示,目前,GaussDB已经在超过2500家大客户得到了商用,遍布金融、电商、游戏、汽车、制造、能源等各行各业。尤其是金融行业,已经在工行、招行、邮储银行等30多家金融企业的核心业务系统中广泛应用,GaussDB通过这些案例,不论是技术本身,还是去O的方法论,都得到了较充分的实践。所以,在明确对比对象和具体指标前提下,GaussDB说自己是更优选择,没毛病。不得不说,华为云还是一如既往的严谨,用“更优选择”而非“最优选择”,这是相对与绝对的区别。