写点什么

星环 KunDB 2.2 发布,为高并发事务与查询混合的业务系统提供一个新选择

作者:星环科技
  • 2022 年 3 月 01 日
  • 本文字数:3684 字

    阅读完需:约 12 分钟

星环 KunDB 2.2 发布,为高并发事务与查询混合的业务系统提供一个新选择

近日,星环科技分布式交易型数据库 Transwarp KunDB 正式推出 2.2 版本。新版本内核带来了关键能力升级,主要包括:

●支持与星环大数据基础平台 Transwarp Data Hub 和分布式分析型数据库 ArgoDB 直接 SQL 互操作,通过统一的 SQL 引擎可将数据直接写入 KunDB,以及从 KunDB 做数据分析,进一步完善了 TDH 的多模型支持能力;


●分布式数据库内置了新的执行器引擎,可以解决跨 Shard 的数据分析和检索能力,在架构上通过列式数据结构、多协程技术算子内并行和流水线计算模式来提升检索与分析性能;


●查询 SQL 的兼容性进一步提升,新增 APPLY、CTE、中间结果物化等算子,并支持子查询去关联化,从而完善子查询、公共表达式、大表关联查询等 SQL 的支持,可以完整运行 TPC-H 等基准测试;


●新增多级数据分区能力,通过 DDL 指定规则数据可在分片基础上进行二次分区存储,即先分片存储,再分区存储。


KunDB 主要面向高并发、大数据量的交易型业务场景,随着 KunDB2.2 的推出,对分布式查询分析类的 SQL 的支持和性能进一步提升,适用于大数量下的数据集市业务。某头部医疗信息化公司围绕临床数据中心服务,构建围绕医院临床、科研、教育、管理服务,通过对数据的科学、合理、有效利用反哺医教研管。在医院的 CDR 典型场景,采用星环 ArgoDB+KunDB 形成了联合数据解决方案。临床数据中心的数据由 ArgoDB 对实时数据进行加工、处理,部分结果实时输出至 KunDB,提供给医生进行医疗信息并发查询服务。1000 并发下,多种维度数据查询请求 KunDB 均可毫秒级响应,有效满足医院问诊效率提升。

下面我们一起来揭晓新版本的全新产品体验。


全新特性加持:分布式技术创新,数据库体验更加丰富

新特性之一:支持与星环 TDH 的组件关系型分析引擎 Inceptor 和分布式分析型数据库 ArgoDB 直接 SQL 互操作

星环关系型分析引擎 Inceptor 和分布式分析型数据库 ArgoDB,可为用户提供 PB 级海量数据的高性能分析服务。本次 KunDB 2.2 版本升级可以跟 TDH/ArgoDB SQL 引擎互操作,为用户提供更大的便利。KunDB 作为 TDH/ArgoDB 另一类存储引擎,支持定义表存储类型为 KunDB,支持 INSERT INTO...SELECT 语句自动将数据批量写入 KunDB,或者通过 SELECT 语句把 KunDB 的数据拉取到计算引擎中完成分布式计算返回给业务。 通过 TDH/ArgoDB 统一 SQL 引擎与 KunDB 进行交互,利于 TDH/ArgoDB 跟 KunDB 组成数据仓库+高并发数据集市一站式解决方案。

该新特性的加持,TDH/ArgoDB 用户可以在数据不出数据库的情况下,对 TDH/ArgoDB 的其它存储引擎中的数据分析后将结果转储到 KunDB,使用 KunDB 作为高并发查询业务的数据库存储引擎。或者借助 TDH/ArgoDB 引擎,对 KunDB 中的最新鲜的业务数据直接进行复杂分析,而不需要 ETL 过程。对于已使用 TDH/ArgoDB 的用户,不需要变更业务层跟数据库交互方式,就可以兼顾复杂分析、高并发查询等业务场景的需求。

新特性之二:多级数据分区支持

KunDB 2.2 版本提供了数据分区的支持,KunDB 分片存储语句使用的 PARTITION BY 语句,2.2 之后调整为 DISTRIBUTED BY 子句标识数据分片规则,同时 PARTITION BY 子句用于数据分区的规则。从而支持数据在多个分布式存储节点上可以分片+分区二级存储,跟存储层的表分区打通。

该特性一方面兼容了 MySQL 的分区表语法,另一方面数据分布的粒度支持分片和分区两级,可根据业务数据特征选择不同的字段和规则分别进行更加细粒度的管理,对数据管理的灵活性和查询性能都有提升。

新特性之三:迭代器模式执行器

KunDB 2.2 的执行器采用了迭代器模式,将常见的计算抽象成基本算子并定义各算子之间的数据接口,SQL 执行分解为算子的迭代计算方式,数据以 chunk 形式,而非单行模式在算子间流转。迭代器架构清晰,算子功能内聚,可针对不同算子进行针对性优化处理。迭代器模式扩展性好,针对新的计算模型可抽象成新的算子。在 KunDB2.2 中已支持 Block Hash Join、Index Lookup Join、Nest Loop Join、Hash Aggr、Quick Sort、Apply、Union、Projection、Selection、Limit、Table Scan、Max1Row、CTE 等算子。

在此基础上,KunDB2.2 完善了分布式模式下对 MySQL 查询类 SQL 的兼容支持,并在性能上提升。在上述医院高并发数据集市案例中,所有聚合查询、关联查询等复杂查询类 SQL 均达到了毫秒级响应。

新特性之四:子查询去关联优化

通过代数理论,子查询可等价转换为关联查询,计算深度减少,可选择更多的关联算子,执行计划更加灵活。与传统的子查询相比,转换为关联查询的执行代价更低,并可多次优化达到性能最优。结果上,SELECT、FROM、WHERE 等子句的子查询性能均得以大幅度提升,并支持了 UPDATE、JOIN 条件子句中使用子查询。TPCH 10GB 数据规模的测试结果中,Q4、Q7、Q8、Q9、Q11、Q13、Q15 等带有子查询的 SQL 均在 1 分钟内完成,与 MySQL 相比性能最高提升了 20 倍。

新特性之五:支持内存列式计算

KunDB 中内存中对结果集转换成列式结构缓存,支持所有数据库类型的行列转换。相比于传统的行式计算模型,列式计算引入自适应压缩,基于压缩后编码直接计算,内存消耗降低 50%以上,而执行时间不会劣化。

尤其是基于列的表达式计算,没有逐行解析的开销,节省了大部分的函数调用。数值类型算术运算符通过内存列式计算方式,与内存行式计算相比,性能最高提升 50 倍。

新特性之六:计算与存储层通信优化

在之前的版本,KunDB 查询执行器与存储节点的通信采用的 gRPC 方式,即 SQL 引擎 KunGate 与 KunTablet 服务通信,KunTablet 与存储节点通信。KunDB2.2 开始 KunGate 在 SQL 执行时可以采用 MySQL Protocal 方式与存储节点直接通信。KunTablet 只负责存储节点的状态监控,与存储层的连接管理、执行管理都在 KunGate 层完成。

通信链路减少,SQL 执行的延迟大幅降低,以 TPCC 基准测试为参考,性能提升 50%左右。

新特性之七:中间结果集物化存储

在 HASH JOIN 和 SORT 算子计算过程中,中间结果超过固定阈值(默认 100 万条)记录时,KunDB 执行器可将中间结果以列式方式压缩落盘文件,防止耗费大量内存资源影响数据库服务的稳定性。计算后落盘文件可以自动清理,中间结果临时落盘的记录数阈值可以通过参数设置。对于亿级的表关联查询,也可保证内存不会因中间结果集过大而出现 OOM 的情况。

新特性之八:优化器逻辑优化规则完善

KunDB2.2 优化器累计实现了下推、子查询去关联化、列裁剪、表达式和条件评估、谓词下推、TopN 下推、聚合下推、关联重排序、HINT 等查询优化规则。基于优化规则,对于关联查询、关联排序均可不同程度的下推执行,提升了 SQL 执行的并行度,并且缓解了 KunGate 的内存压力。以 TPCH 中的 Q4 查询 SQL 为例,KunDB2.2 经过逻辑优化后,执行计划更加的简单高效。

以 10GB TPCH 为例,经过优化后的 SQL 执行效率较 MySQL 都有大幅提升。

※其中 Q17 和 Q20 因 MySQL 10 分钟无结果,取 10 分钟作为执行时间。

新特性之九:跨连接的执行计划缓存

KunDB 2.2 SQL 引擎改造了执行计划缓存的机制,将用户会话中执行的 SQL 解析结果和执行计划缓存在内存中,给其它连接或者同一连接后续的 SQL 执行做复用。其它连接后续有相同的 SQL 请求时,自动找到缓存的 SQL 与执行计划,通过减少编译和优化的时间,提升 SQL 的性能。在某金融行业 TP 业务中,该技术对于简单查询类请求执行时间节省了 50%。

新特性之十:执行器支持多协程并行

传统的迭代器模型,通过算子提供的接口管理 SQL 执行的生命周期。大量接口调用带来了开销,算子内部采用多线程有会频繁线程切换开销。KunDB2.2 执行器采用了基于协程的并行执行技术,每个算子作为主协程,算子内开启多个子协程并行,使用生产者-消费者多个面模型实现了算子间的并行。内存消耗、并发切换开销、算子调用开销均大幅降低,而且算子间解耦产生更灵活的执行模型。


关键能力优化提升:支持 10w+ 数据库对象,事务处理性能、MySQL 兼容性、关联工具能力全面提升


●元数据服务改造,重构了元数据管理组件,采用了高并发一致性存储方案,支持至少 10 万以上的数据库对象且性能不会劣化。


●事务处理能力大幅提升,以 TPCC 为例,较上个分布式版本 tpmC 提升 60%。


●MySQL 兼容性持续增强,新增了 CTE 语法、近 40 个函数的支持,扩展 DQL、SET、ROLE 等语法的完善。


●关联工具能力全面增强,主要是数据导入导出、备份恢复时,压缩、加密等功能的丰富和性能提升,其中全量数据导出工具结合存储层直方图性能提升了 2 倍以上。


国产化能力升级:国产数据库生态完更加完善


KunDB 是星环科技自主研发的国产数据库,支持主流国产化 CPU(龙芯、飞腾、鲲鹏等)等自主可控的硬件平台和 OS 部署(UOS、中标/银河麒麟、华为欧拉等),支持东方通、宝兰德等企业中间件,数据库同步工具迪思杰、 TapData 等。确保数据信息的安全,在用户认证、自主访问控制(DAC)、链路与数据加密、操作与 SQL 审计等方面提供数据库的多维度安全保护,严格保证数据和业务的安全性和完整性。继 KunDB Server 和导入导出工具之后,KunDB 的备份还原工具 KunDR 也支持了国产 SM4 加密算法,所有 KunDB 存储相关的组件都支持国产加密算法。


目前,KunDB 凭借出色的产品实力通过了中国人民银行分布式数据库符合性认证测试,进行了 337 检测项目的验证,覆盖了数据库功能、安全、灾难恢复、性能等方面,已经在政府、医疗等多个行业中落地,其中与星环科技分布式分析型数据库 ArgoDB 形成的联合医疗解决方案已经在全国范围内多家三甲医院落地实施。

用户头像

星环科技

关注

还未添加个人签名 2020.10.22 加入

领航大数据与人工智能基础软件新纪元

评论

发布
暂无评论
星环 KunDB 2.2 发布,为高并发事务与查询混合的业务系统提供一个新选择_数据库_星环科技_InfoQ写作平台