TiDB 6.5 LTS 发布 企业级关键能力跃升

2023 年 1 月 5 日,企业级开源分布式数据库厂商 PingCAP 正式发布 TiDB 6.5 LTS 版本(Long-Term Support Release)。6.5 版本包含 6.2、6.3 和 6.4 已发布的新功能,相比于 6.1 LTS 版本,6.5 版本引入 30 多项新特性,累计优化和改进功能 60 多项,在内核、性能、稳定性、容灾备份、应用开发者生态等方面实现了企业级关键能力的跃升。TiDB 新一代 HTAP 数据库满足企业在海量数据规模下在线交易和实时分析的刚需,帮助企业提升关键业务的时效性,降低数据技术栈的复杂性。

内核关键特性持续增强

支持在线 DDL 是 TiDB 的核心优势之一,在过往一年中,TiDB 加入了对并行 DDL 的支持,使得以往在 SaaS 等多租户场景因 DDL 串行执行互相阻塞导致的 DDL 语句间并发执行效率低的问题得以解决,通过引入 Metadata Lock 基本消除了 DDL 干扰 DML 的情况。v6.5 版本通过转变全量数据的索引创建模式、数据传输和并行导入三方面的改造,实现创建索引的性能的数量级提升。添加索引加速适用于单条 SQL 语句串行添加索引的场景,在多条 SQL 并行添加索引时仅对其中一条添加索引的 SQL 语句生效。经过 Sysbench 基准测试的验证,TiDB v6.5 在线 DDL 性能约是 TiDB v6.1 版本的 10 倍。

图:TiDB v6.5 在线 DDL 性能较 v6.1 提升约 10 倍

JSON 格式为应用设计提供了更灵活的建模方式,目前越来越多的应用采用 JSON 格式进行数据交换和数据存储。 特别是 Web3,游戏等行业,使用 JSON 数据类型支持敏捷多变的业务。此类业务中存在大量实时数据分析需求,但是由于 JSON 数据类型比较复杂,对于 JSON 类型数据的分析具有很大的挑战性。TiDB 陆续完善了 JSON 功能函数并对 MySQL 5.7 完整兼容,引入了针对 JSON 的表达式索引支持,更多的生态工具兼容。新版本支持将 JSON 函数 “->”、”->>”、”JSON_EXTRACT()” 下推至 TiFlash,可以提高 JSON 类型数据的分析效率,拓展 TiDB 实时分析的应用场景。

自 v6.5 版本起,TiDB 全局内存控制能够跟踪到 TiDB 中主要的内存消耗。当全局内存消耗达到 TiDB Server 所定义的内存阈值时,TiDB 会尝试 GC 或取消 SQL 操作等方法限制内存使用,保证 TiDB 的稳定性并提升内存的使用效率。

在部分交易系统尤其是银行业务中,应用会在悲观事务中利用 select for update 先锁定一条记录,从而达到对数据一致性的保护,减少事务中后续操作失败的可能。原先在 TiDB 中,对一行记录反复的 select for update,可能会造成这条记录的查询性能下降。 v6.5 版本对此项机制进行了优化, 通过记录连续的锁标记,降低了累积的悲观锁对查询性能的影响,相同场景下 QPS 可大幅提升 10 倍以上。

易用性进一步提升

线上购物场景,用户经常设置各种过滤条件,从大量商品中筛选到自己中意的商品。例如挑选一个手机壳,用户可能会查找:“黑色 AND 铝合金材质” OR “透明 AND 硅胶材质”。为了能够快速响应查询,保证用户体验,数据库表通常需要建很多索引。TiDB 的索引合并 (Index Merge)功能就是应对此类问题的理想方案。在 v6.5 之前 TiDB 仅支持 OR 条件组合情况下的索引合并,在新版本中用户可以任意组合 AND 与 OR 的过滤条件,实现与复合索引相近的性能,大大减少了索引对维护表健康的压力,也保障了极佳的查询响应时间。

线上环境的数据误操作容易导致生产事故,TiDB v6.5 引入的 FLASHBACK CLUSTER TO TIMESTAMP 支持在 Garbage Collection (GC) life time 内快速回退整个集群到指定的时间点,适用于快速撤销 DML 误操作。例如,在误执行了没有 WHERE 子句的 DELETE 后,使用 FLASHBACK CLUSTER TO TIMESTAMP 能够在几分钟内将集群数据恢复到指定的时间点。尤其特别的是,该功能无需备份支持,单条 SQL 语句即可实现集群分钟级别闪回,高效便捷;该功能还支持时间线上的多次回退,最大程度降低数据风险。

在大批量的数据处理场景中,单一大事务 SQL 处理可能对集群稳定性和性能造成影响。新版本 TiDB 提供了将大事务自动拆分的能力,非事务 DML 语句将一个 DML 语句拆成多个 SQL 语句在内部执行,拆分后的语句将牺牲事务原子性和隔离性,但是可以提升批量操作 SQL 的成功率,以及减少因内存过大导致的 OOM 问题。

v6.5 版本中,TiFlash 通过支持 INSERT SELECT 语句,可将 TiFlash 计算结果保存到数据表中(即物化了 TiFlash 的查询结果),方便重用分析计算的结果,节省系统资源并提高响应速度。如果应用开发者能充分利用物化结果,有效重用,那么 TiDB 系统的整体负载可以减少到原先重复执行查询的几分之一甚至更多,与此同时对于物化结果表的查询则可以控制到毫秒级,并支持比单纯依赖 TiFlash 的情况高 3-4 个数量级的并发请求,足以应对大规模在线业务。

此外,v6.5 版本加入了高性能的全局单调递增主键的支持,该模式下 TiDB 将采取中心化的主键分配以确保单调递增,即使跨 TiDB 实例访问,ID 也不会出现回退,且针对其的写入也可轻松达到数万的 TPS。新版本 TiDB 新增 Time to Live (TTL) 能力,用户可以设定行级别的生命周期控制策略。通过为表设置 TTL 属性,TiDB 可以周期性地自动检查并清理表中的过期数据。

多样化的灾备能力

TiDB PITR(Point-in-Time Recovery)是结合了 BR 和变更捕获(Change Data Capture)两种能力的灾备特性,使得数据库可以更灵活地恢复到任意时间点。以往 BR 的静态灾备只能将数据恢复到备份的时间点,如果要提供针对更新和更多时间点的恢复,则需要提高备份频率,会加重备份对在线业务的负担,也需要更多的存储成本。使用 PITR 用户无需不断进行全量备份,而是可经由一个全量备份结合增量共同完成针对任意时间点的数据恢复。v6.5 新版本减少了 PITR 备份文件大小和数量,加强了稳定性,大幅提升了性能。在日志恢复阶段,单台 TiKV 的恢复速度可以达到 30GiB/h,提升了 50%,并且恢复速度可扩展,有效地降低容灾场景的 RTO 指标。

图:TiDB PITR 灾备示意图

与此同时,在 v6.5 版本中 TiCDC 的吞吐获得了数倍的提升。当下游为 Kafka 集群时,针对大单表场景的吞吐量得到了极大的提升,单个 TiCDC 节点可以支持 35k row/s QPS,吞吐量可以达到 50MB/s,并将延迟控制在 2 秒左右,而内存使用量只有之前版本的 50% 左右。 在跨区域主备集群容灾场景中,TiCDC 单个节点的吞吐量可以达到 30MB/s,且延迟可以稳定在 2 秒左右。新版本的 TiCDC 支持在向下游写入时提供特殊的时间戳,下游集群可以自动使用该时间戳进行一致性读取而无需担心读到的事务不完整,使得下游集群在需要严苛事务保证的场景下也可以良好地承担读流量分流的职责。

TiDB Data Migration (DM) 在新版本中正式发布了在数据迁移过程中的增量数据持续校验功能,该特性只对新增或变更的数据进行校验,而不是对整个数据集进行校验,在确保数据迁移过程的准确性和可靠性的同时,大大减少数据校验的时间和资源消耗。

深耕应用开发者生态

提升 DBA 和开发者的使用体验一直是 TiDB 努力的重要方向。TiDB v6.5 强化了应用开发所需的生态环境构建,例如 TiDB 通过增加对 Savepoint,User Level Lock,Multiple Schema Change 等功能的支持,完善了针对常见应用框架 django,prisma 等的支持。与此同时,PingCAP 也和更多的上下游生态伙伴建立了广泛的合作关系,包括 Vercel,Hashicorp,Retool 等。

在 v6.5 版本中,TiCDC 新增向对象存储(Object Storage)写入的支持。对象存储是一种面向云的存储服务,具有高可扩展性、高可用性、低成本等优势。使用 TiCDC 将数据同步到对象存储,可以帮助用户实现数据的长期存储、数据的跨区域复制等。这也使得 TiDB 在云环境下能直接打通对接数仓和数据湖的通路。更好的生态支持将使得开发者在使用 TiDB 构建应用时,拥有更多选择,也更加便利。

PingCAP 研发副总裁唐刘表示:此次发布的 TiDB v6.5 是 TiDB v6 系列的第二个长期支持版本,在成熟的 HTAP 平台上进一步提升了企业级关键能力,用户可放心地在关键业务场景中使用。TiDB 将持续聚焦于产品内核,不断优化企业级特性,为产品迭代打好坚实的基础。在此基础之上,TiDB 会在 Serverless、 DB 微服务化、智能化等方向上不断拓展产品的边界和能力,融入更多的数据和技术生态,为用户提供更多价值。

更多 TiDB 6.5 版本新功能,请查阅 TiDB 官网 Release Notes:https://docs.pingcap.com/zh/tidb/stable/release-6.5.0

立即开启 TiDB 体验之旅:https://pingcap.com/zh/product/

关于 PingCAP:

PingCAP 是业界领先的企业级开源分布式数据库企业,提供包括开源分布式数据库产品、解决方案与咨询、技术支持与培训认证服务,致力于为全球行业用户提供稳定高效、安全可靠、开放兼容的新型数据服务平台,解放企业生产力,加速企业数字化转型升级。