分布式HTAP数据库(TencentDB for TBase)是腾讯自主研发的分布式数据库系统,集高扩展性、高SQL兼容度、完整的分布式事务支持、多级容灾能力以及多维度资源隔离等能力于一身。腾讯已2019年11月正式开源TBase,截止目前,TBase在GitHub上的Star数已超过800个,Fork数近200。看来大家的关注度还是蛮高的。7月13日,TBase重磅发布了开源版本2.1.0,代码已上传至github:https://github.com/Tencent/TBase。据说该版本在多活分布式能力、性能、安全性、可维护性等多个关键领域得到全面的增强和升级。于是小编我也迫不及待来体验一把。
我们一般在谈论数据库的时候,首先会问数据库是OLAP还是OLTP?OLAP,即在线分析型处理,OLAP的第一个特点是数据量比较大,一般会要求PB级或者更大的数据量,数据量大了以后,对存储的成本会比较敏感,对数据压缩也会有一定的要求,OLAP业务系统的并发量不会特别的高。OLTP,即在线事务型处理。在线事务处理数据量相对较小,普遍时延要求较高,要求达到毫秒级。TBase设计支持HTAP,即混合事务处理和在线分析型数据库。tbase能够在单集群内部同时处理OLAP和OLTP两类业务。本文主要体验了OLAP模式下大表的Join统计查询。
操作流程
1、创建测试表
2、构建测试数据
3、编写测试脚本
4、测试运行
TBase 作为分布式数据库,宣称支持节点级别的并行外,还提供了单节点内部算子级别的并行能力。如进行一个 Hash JOIN,我们会多进程的完成这样一个 Hash JOIN 的过程。在每一步计算的过程中,还会使用指令级的 SIMD 的一些指令来加速。做到了从节点级到进程级以及指令级的一个并行。在本测试实验中,经过横向对比,如PostgreSQL,跑同样的测试用例,tbase在性能上提升不少,由此看来tbase中多线程并行运算对提高运算效率还是很不错的,继续努力。