2024 年 5 月 29 日,企业级开源分布式数据库厂商 PingCAP 正式发布 TiDB 8.1 LTS 版本(Long-Term Support Release),夯实大型集群的稳定性和易用性,驱动业务融合和降低企业成本。TiDB 8.1 LTS 集成了 7.6.0-DMR 和 8.0.0-DMR 版本中的新特性、改进和修复,在稳定性、性能、易用性和可观测性等方面均有显著提升,尤其针对多 SaaS 类用户场景和多租户功能做了稳定性和性能的多方面增强。
在当前经济环境下,企业级用户更加重视数据库架构的成本效益,趋向于将分散的数据实例迁移至统一的大型集群,以优化运行和统一管理。这种转变带来了对数据库性能、稳定性和精细管理的更高要求,同时也突显了解决大规模集群运维中的风险和问题的重要性。TiDB 8.1 LTS 针对大规模数据库环境,显著增强了整体的稳定性和运维管理能力,同时在数据导入和运维安全性等方面为用户提供了全面优化的体验。
性能与稳定性:并行执行框架与全局排序协同,提升大规模数据写入的性能和稳定性
扩大并发度是提高分布式系统性能的关键,对于处理大规模数据系统尤为关键。分布式执行框架(Distributed eXecution Framework,简称 DXF)自 TiDB v7.2 引入,在 v8.1 正式 GA。分布式执行框架可以将用户提交的任务(目前支持数据导入和添加索引)分解为多个子任务,并在多个 TiDB 节点上进行调度和执行,有效提高了任务的执行效率。DXF 通过动态任务分配,实现任务的隔离执行,提升了整个集群的稳定性和可靠性。
全局排序(Global Sort)为多个 TiDB 节点维护了一块共同的排序空间,通过一体化排序整理,使得每个 TiDB 节点所导入的数据不会有重叠,不会触发 TiKV 进行 compaction 操作,从而显著提升并发数据导入的性能和稳定性。
性能与稳定性:快照备份的恢复速度提升 3 倍,守好集群可用性防线
数据备份作为数据安全的关键防线,在大型数据库系统中尤为重要。面对潜在的数据丢失或损坏,快速的数据恢复能力对于业务连续性至关重要。TiDB 研发团队通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等措施,显著提升了快照的恢复速度。v 8.1 版本实现了数据传输速度的近 10 倍提升,以及 1.5-3 倍的恢复速度提升,能够在 1 小时内完成对 100 TB 数据的恢复。这一进步在极端情况下大幅减少了业务中断的风险,对大型数据库系统的稳定运行具有重大意义。
稳定性:TiProxy 支持自有部署,实现"无感"数据库运维
随着更多数据库实例合并至 TiDB 集群,业务系统的种类和数量也相应增加,对可用性的要求也随之提高。TiProxy 因此诞生,并在 8.1 LTS 版本中正式 GA。TiProxy 作为数据库端的连接服务,根据 TiDB 实例的负载和状态智能转发客户端操作,保证了即使在 TiDB 实例宕机的情况下,客户端连接也不受影响。在 TiDB 集群执行滚动重启、升级、缩容等维护操作时,TiProxy 能够平滑迁移连接,提供负载均衡,实现客户端的"无感"数据库运维。
易用性:跨数据库执行计划绑定,简化合并数据库的 SQL 调优工作
将应用系统中的租户存储在不同数据库(Schema)中是 SaaS 或 PaaS 业务系统的常见建模方式,也适用于原有分库合并后的系统。这种方式是在每个 Schema 中创建完全一致的对象,执行相似的业务 SQL,带来了数据隔离的好处。然而,这也增加了 SQL 种类,为 SQL 调优带来挑战。TiDB 在 v8.1 中支持创建跨数据库执行计划绑定(cross-db binding),一个执行计划绑定能够匹配到只有 Schema 不同的多个 SQL 语句,大幅简化了在这类建模下的 SQL 调优工作。
可观测性:观测并识别无用或低效的索引,治愈系统调优的"后遗症"
索引设计对数据库性能调优至关重要。长时间调优后,系统可能积累大量索引,消耗存储空间,占用运行资源,降低了 DML 操作速度。在大规模集群中,删除索引是一项对性能风险极高的操作。TiDB 8.1 LTS 版本引入索引使用监控功能,通过内存表 TIDB_INDEX_USAGE 记录每个索引自实例启动以来的运行情况,包括索引被选择的次数、扫描行数以及每次扫描时的选择率范围等信息,从而帮助管理员识别出需要删除的索引和有优化空间的索引。
TiDB 将持续致力于解决大规模数据库集群的稳定性和易用性问题,不断迭代演进,为关键业务提供可靠、高效的分布式数据库解决方案,满足用户的创新发展和多样化的数据服务需求。