暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

星环科技KunDB3.0:高度兼容Oracle语法和PL/SQL, 实现OLTP数据库国产化升级

原创 IT676 2022-07-19
863

Transwarp KunDB是星环科技基于分布式技术自主研发的国产化的交易型数据库,提供完整的关系型数据库的能力,高度兼容SQL,保证事务ACID。KunDB具有业内领先的事务处理性能,SQL兼容性以及最新的分布式查询优化技术,支持复杂查询且性能是MySQL的10倍以上,充分满足高并发、大数据量的交易型业务场景,能够实现MySQL,Oracle等传统主流数据库的国产化替代。独特的混合部署技术支持主流国产化CPU等自主可控的硬件平台和OS部署,满足国产化部署需求。此外,KunDB提供全链路高可用、一致性备份恢复等容灾能力,以及完备的安全管理、资源管理能力,可以为不同业务场景保驾护航。 

KunDB3.0高度兼容Oracle对象与语法,基于创新的过程语言编译技术,完整支持Oracle PL/SQL语法,大大降低企业国产化迁移成本。通过丰富查询优化规则和算子进一步增强查询优化器,并结合全新的向量化执行引擎使得分析性能在TPCH基准测试中较MySQL最高优化80倍。在事务处理能力方面,相较于KunDB2.0采用的全局事务管理器GTM方案,KunDB3.0采用基于TSO的全新分布式强一致事务处理框架,进一步提升分布式事务处理能力,事务处理上限达300万TPS,较GTM方案提升5倍以上。同时KunDB3.0也对存储层性能和分布式架构做了持续优化,单机TPCC提升了1倍,分布式TPCC提升了60%。在容灾能力方面,KunDB3.0优化了跨机房容灾架构,支持全链路高可用、一致性备份恢复等能力,故障时可恢复过去任意时间点,充分保障数据安全。此外,KunDB3.0采用了基于分析引擎增强分布式事务处理引擎技术(ATEP),大幅提高了KunDB的数据分析能力,通过一个系统就可以同时提供高性能AP和TP服务能力,满足交易与分析混合型业务场景。
 
高度兼容Oracle对象与语法,完整支持Oracle PL/SQL

KunDB3.0 对Oracle语法各个方面高度兼容,成为业内领先的具备支撑Oracle业务迁移能力的国产数据库。KunDB3.0高度兼容Oracle语法与PL/SQL,支持VARCHAR2、NVARCHAR2等全部类型,在PL/SQL语法上,支持控制语句、集合、动态SQL、子程序、预定义包、错误处理等全部PL/SQL语法,解决了Oracle业务迁移到国产化数据库的核心痛点,为其它兼容性完善提供了基础。在Oracle数据库对象、DML、函数、系统视图、内置包、驱动等方面,做到了常用功能的兼容,满足大部分业务的迁移需求,极大降低了企业业务迁移成本。

KunDB3.0采用创新的过程语言编译技术及中间优化语言TIR,完整支持Oracle PL/SQL语法,并在4类技术场景实现创新和性能提升。

为了支持多个数据库方言,传统解释器方式导致重复工作量会很大。KunDB3.0通过统一的中间优化语言TIR,表达任意的过程式语义及SQL语义,支持multi pass编译与LLVM IR组合,低偶合、低成本的扩展不同数据库PL/SQL语法体系
传统技术将PL/SQL翻译成函数执行方式,没有控制流代码优化空间。KunDB3.0通过转译LLVM,将PL/SQL转为底层语法,可以与llvm的 multi pass优化结合,增加代码优化规则,从而优化存储过程的执行
传统翻译成函数执行的方式,无法进一步实现编译执行。KunDB3.0引入统一表达式处理引擎技术,SQL与PL/SQL可复用编译优化,实现方式上比Oracle更加简洁,同时节省了开发成本
传统的异常处理无法实现零开销。KunDB3.0参考LLVM的landing pad技术,实现零开销的异常处理系统。



全新的查询优化器和向量化执行引擎,复杂分析性能提升10倍
 
KunDB从2.0到3.0的迭代中,为了更加友好的支持跨分片的复杂查询分析,提升AP能力,KunDB基于火山模型重新设计了查询优化器,面向分布式存储丰富了查询优化的规则,包括了分片下推、子查询去关联化等十多种查询优化规则,相应的扩展和优化了block hash join、Index Lookup Join等二十多个算子,TPCH 子查询性能相比于KunDB2.0均有大幅度提升,最高提升了近20倍。
 
KunDB3.0使用了全新的向量化执行引擎,在内存中使用列存储的方式对数据进行转换存储后再进行计算,相比于内存行式数据管理,在内存资源占用、分析函数实现、表达式求值性能、压缩支持上都更加具有优势。另一方面,执行引擎基于多协程技术,采用了基于流水线的并行处理框架,支持并行的数据扫描、算子间数据交换、算子计算、结果集返回等全链路过程,对于数据可分拆执行的场景,性能有大幅提升。同样的数据规模下以TPCH测试为参考,KunDB分析性能较MysQL有大幅度提升,22个Query最高性能提升可达到MySQL的近80倍。


 
基于TSO的全新分布式强一致事务处理,集群事务处理能力提升1倍
 
在分布式事务处理上,KunDB3.0使用基于全局时间戳的事务处理框架来代替2.0的全局事务管理器GTM方案。分布式层引入了TSO服务器分配时间戳,采用XA协议和时间戳优化2PC保证分布式原子性写,分布式事务开销降低50%。基于事务提交时间戳可做到副本全局一致性读,实现保证事务的读写分离。存储层可基于当前时间戳和数据时间戳做全局一致性读判断,不依赖全局快照,性能更高,减轻中心化风险。KunDB3.0集群的事务处理上限提升了6倍,达到300万TPS,完全满足头部互联网业务场景的性能需求。

此外,KunDB3.0也对存储层性能和分布式架构做了持续优化。存储层采用了面向内存的数据存储与管理、无锁内存索引技术、悲观与乐观结合的并发控制技术、并行查询技术,实现了存储层性能接近1倍的提升。结合分布式层在通信链路优化为基于MySQL协议的通信,放弃了高开销的grpc通信;元数据存储的改造为高吞吐的关系型存储,以及减少组件、管理组件精简为一个全局服务,优化了分布式层的开销。在4分片的拓扑下,TPCC性能较2.0提升了60%。



跨机房容灾架构,任意时间点全局一致性恢复

在容灾方面,KunDB优化了跨机房容灾架构,支持全链路高可用和全局一致性恢复。计算引擎完全无状态,扩展便捷,可实现多节点部署;存储引擎支持主备/Paxos复制,支持故障时主备切换;元数据服务也都是基于多数派协议支持故障时自动选主,实际部署时避免了单节点部署的风险。通过跨机房的副本数据强同步,保证了机房级故障时,恢复点目标RPO=0。
 
通过副本可读技术,最大化利用每个角色提升系统吞吐,并且支持基于业务负载和组件健康状态的路由变化,提升系统稳定性。
 
KunDB3.0支持物理备份与实时binlog备份,故障时可恢复过去任意时间点。新增的一致性备份恢复能力,基于时间戳信息保障数据库恢复到最新的一致性点,避免了分布式数据库恢复后需要人为参与事务点对齐的难题。各分片独立并发备份,每分钟完成数GB数据备份,在高并发核心系统中,能够有效降低备份对业务的影响。


 
保证全局事务的一体化实时AETP,同时提供高性能交易与分析服务能力

中国信通院2021年数据发展研究报告中指出,企业通常维护不同数据库来支持联机事务处理(OLTP)与联机分析处理(OLAP)任务,管理和维护成本高。基于创新的计算存储框架的HTAP 数据库,能够基于同一套引擎同时支撑业务系统运行和分析决策场景,避免在传统架构中,在线与离线数据库之间大量的数据交互,成为未来数据库发展的趋势之一。

KunDB3.0采用了基于分析引擎增强分布式事务处理引擎技术(ATEP),大幅提高了KunDB的数据分析能力,通过一个系统就可以同时提供高性能AP和TP服务能力。

对外提供统一的SQL引擎作为统一入口,简化用户操作,数据在库内即可自动同步、转换,不需要繁琐的ETL组件和ETL过程,数据无需出库即可完成计算。同时提供统一数据类型和方言支持,将多种数据库语言变为一种语言,大大降低开发和迁移成本。

针对不同程度的分析负载,通过全局优化器自动识别SQL,利用不同的引擎进行处理,TP引擎和AP引擎根据工作负载做自动路由和自动查询优化,如针对复杂加工逻辑,则使用AP引擎分布式计算能力直接读取KunDB上的数据进行复杂计算;针对高并发明细检索,则使用TP引擎提供服务。

使用行列混合存储方案,列存提供给AP引擎支持高性能分析,同时列存作为TP库的只读副本,实时从行存同步事务最新数据库,延迟低于10s,保证了数据分析的时效性和全局一致性读。

对于已经部署了ArgoDB或KunDB的用户,可以直接升级到AETP数据库,无需改造业务和数据库的交互方式,实现快速平滑升级。
 
通过不断的打磨和对业务场景不断的落地实践,星环科技分布式交易型数据库KunDB已经在金融、政务、能源、医疗、交通等多个行业应用,成功替代Oracle、MySQL等传统业务数据库。未来,星环科技将继续深耕数据库领域,通过不断的技术创新和应用创新,为用户提供更完备功能,更高性能、更稳定可靠的国产化数据库产品。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论