「PingCAP」会成为数据库的未来吗?,HTAP( 二 )


总体来看 , TiDB具备如下核心特性:
水平线性扩展强一致分布式事务故障自恢复(auto-failover)的金融级高可用(非主从)真正跨数据中心多活据了解 , TiDB对业务没有任何侵入性 , 能够替换传统的数据库中间件、数据库分库分表等Sharding方案 。 同时它也让开发运维人员不用关注数据库Scale的细节问题 , 专注于业务开发 , 大幅度提升研发生产力 。 目前 , TiDB已被近千家不同行业的企业引入到实际生产环境中 , 涉及互联网、游戏、金融、政府、电信、制造业等多个领域 , 并得到成功应用 。
二、“TiDB在4.0版本上真正实现了HTAP功能”姚维在接受InfoQ采访时表示:“2020年是PingCAP的里程碑年 。 ”在今年的5月底、6月初 , PingCAP将发布TiDB重要的4.0版本 。 该版本将会在性能、易用性、易管理性等方面有明显的增强 , 事务处理能力方面也有大幅度提高 。
除此之外 , 在4.0版本上真正实现了HTAP功能 。 简单来说 , 用户可以在一套数据库上同时运行截然不同的计算负载 , 即联机交易的计算负载和海量数据的实时分析 。 此前 , 在数据库领域 , 这两种计算还不能完全放在一起 , 因为它们对资源的消耗、对计算本身的性能要求 , 以及对数据的处理方式是完全矛盾的 。
姚维表示:“我们经过两年多的内部开发 , 终于将OLAP和OLTP真正放在同一套TiDB集群上 , 让TiDB可以同时支持联机交易和海量的数据分析 。 并且这两种计算在内部转换的过程对用户是透明的 。 ”通过底层数据同步及行列透明转换的技术 , TiDB将TiKV面向联机交易的行存式引擎与TiFlash面向实时分析场景的列存引擎 , 转为真正的行列混合数据架构 。 同时 , 该版本在TiDB分布式计算层实现了透明的可根据请求自动选择行列存储引擎的能力 , 使高并发、低延迟的联机交易与海量数据实时分析查询计算 , 在TiDB新一代架构上完美地融合在一起 。
在演讲中 , 姚维也为我们展示了TiDB4.0版本性能优化的部分成果(图中的纵轴是指语句耗时 , 该值越低代表性能越好):
【「PingCAP」会成为数据库的未来吗?,HTAP】
「PingCAP」会成为数据库的未来吗?,HTAP
文章图片
「PingCAP」会成为数据库的未来吗?,HTAP
文章图片
三、未来 , TiDB将跑在云上!和很多企业一样 , PingCAP也是云的用户 , 数据中心的上百台机器在云上24小时不停运转着 。
姚维感慨道:“云给我们的业务带来了看得到的便利 , 比如降低成本、提高效率、灵活性高等 , 这些好处都是实实在在的 。 因此 , 我们相信 , 未来云一定会成为主流的方向 。 TiDB在过去两年时间里面已经在做云的适配 。 TiDB跑在云上 , 底层有很强的计算能力、扩展能力 , 以及完备的基础设施和基础网络作为支撑 , 再加上数据库引擎本身的自动横向弹性伸缩能力 , 其整体所提供的能力很多用户非常想要获得 。 ”
在企业全面上云的大背景下 , 数据库因其成本昂贵、高运维难度、以及低扩展性和可用性受到挑战 , 尤其是对传统的数据库而言 , 在服务用户的过程当中往往没有办法满足用户上云的很多需求 。 而云计算+数据库将带来更低的运营成本、更高的灵活性 , 以及与未来物联网、5G结合满足庞大而复杂数据需求的能力 。 将数据库“搬”到云上 , 将成为未来数据库发展的主旋律 。
在研发TiDB的Cloud版本过程中 , PingCAP前期主要在与x86架构适配 。 如今 , 基于用户对异构平台的需求 , PingCAP主要在做TiDB在鲲鹏计算平台上的性能优化 。 根据姚维的介绍 , 除了市场诉求外 , 在技术层面还有以下两个主要原因:
来自分布式数据库的底层需求 。 x86平台现在虽然比较成熟 , 但该架构的扩展性具有比较明显的限制 。 TiDB在x86架构和ARM架构上最大的一个差异在于单台服务器上CPU核的数量 。 因为在固定的情况下 , 分布式数据库意味着需要多台服务器来组成该集群 。 PingCAP在与用户合作的过程中发现 , 很多企业希望采用具有更多核心的服务器 。 x86架构的服务器多为64核 , 而基于鲲鹏高密度的CPU核架构 , 数据库的性能可以有很大的提高 。 相应地 , 对用户而言 , 部署成本也会有所降低 。 当单台机器CPU核数增多 , 处理能力会随之增强 。 在达到同样性能的情况下 , 采用ARM架构的机器台数要比x86架构下少 。 机架、服务器、电源、交换机等周边费用 , 也会有比较明显的降低 。 ARM的指令级不同于x86复杂的指令级 , 其在语言的优化层面有较大的空间 。 TiDB有两种开发语言 , 其中 , 与数据库性能息息相关的存储引擎TiKV采用的是Rust语言 , 这是一种支持并行的编译型语言 , 通过优化该语言对鲲鹏处理器架构有比较好的支持性 , 同时也为编译器等底层的进一步优化提供了空间 。 四、TiDBon鲲鹏 , 结果如何?在TiDB迁移到鲲鹏计算平台的过程中 , PingCAP做了深入的性能优化 , 其中涉及诸多层面和细节 , 仅代码上的重要优化少则有几十项 。 姚维为我们介绍了其中对TiDB性能影响较大的三个优化工作:


推荐阅读