正文内容 评论(0

TiDB 7.1 LTS 发版:为关键业务提供业务稳定性和多租户场景支持
2023-06-08 15:00:23  作者:cici 编辑:cici     评论(0)点击可以复制本篇文章的标题和链接

近日,企业级开源分布式数据库厂商PingCAP正式发布TiDB 7.1版本,这也是2023年度发布的首个LTS(Long Term Support)版本,汇集了来自20+个真实场景带来的功能增强,累计优化和修复140+功能,旨在提升关键业务的稳定性和性能,帮助开发人员和数据库管理员提高生产力并进一步降低总体拥有成本(TCO)。用户可在生产环境中使用TiDB 7.1。

TiDB半年版本回顾

TiDB 7.1 LTS距离上一个LTS版本6.5已经过去了整半年,在这期间,PingCAP对产品的关键能力做了大量的增强和优化,其中最重要的特性有:

●TiDB 7.0提供了基于资源组的资源管控(Resource Control):这使得TiDB在针对多租户场景有了很好的应对。事实上,经常有用户希望借助TiDB的可伸缩特性将多套业务系统归一到一个集群中,从而使得集群管理、资源利用都能得到有效的改进。资源管控特性提供了对多租户的支持,并解决了不同租户间资源争抢的问题。在新版本中,用户可以很方便地借助这个功能完善数据库整合的使用场景。

●Multi-RocksDB特性:借助将单一TiKV实例中的RocksDB拆成多份,TiKV的写吞吐提升近三倍;此外,在新架构中数据分片(Region)大小将变得更大,由此减小维护分片所带来的开销,减少单位存储所需的固定CPU消耗,更节省成本。这使得大写入吞吐,或者需要大量存放温数据的Data Serving场景下,TiDB的表现得到了本质的提升。

对于这些重要的重量级特性,在新版本中也将持续得到打磨和加强。这半年中,TiDB在一些关键场景的性能也得到长足提升:

●数据导入Lightning性能提升近30%;

●真实业务测试下,Analyze Table性能提升42%+;

●标准测试TPC-H和真实业务测试下,TiDB分析能力分别提升15%和25%;

●TiCDC针对大型单表复制性能提升可达90%+。

TiDB 7.1功能特性

TiDB 7.1是PingCAP计划在2023年发布的两个长期可支持(LTS)版本中的第一个,它提供了一个面向未来的数据库,可以为各种关键业务应用程序提供动力。TiDB 7.1将为用户带来以下特性:

●更稳定地支持关键业务负载,为DBA提供多工作负载稳定性控制,并显著改善尾部延迟;

●以更少的资源提供更佳的性能,通过架构增强实现更高的吞吐以及更快的在线DDL。

此外,TiDB 7.1企业版增强了数据库审计功能,通过更细粒度的事件过滤控制、更友好的过滤条件设置方式、新增的JSON文件输出格式以及审计日志的生命周期管理,大幅提升系统的审计能力。

2.1更稳定地支持关键业务负载

2.1.1通过资源组改进资源管控的用户体验,提供更好的隔离性

PingCAP在TiDB 7.0中增加了通过资源组进行资源管控的功能,为TiDB database consolidation(数据库整合)方案奠定了基础,具有里程碑的意义。多个业务可共享同一个TiDB集群,DBA可为不同的工作负载设置资源配额和优先级,例如为关键业务分配更高的优先级,确保其能够优先获得资源,避免受到其他工作负载的干扰。

在TiDB 7.1中,资源管控特性正式GA了,并加入了两个特性增强:

●降低了在重写入密集型工作负载中出现的尾延迟:资源组通过资源配额和优先级控制工作负载。优先级由存储级别控制。当工作负载写入繁重时,基于优先级重新调度机制有时会造成更高的尾延迟(Tail Latency)。在7.1版本中,尾延迟被修正到预期水准。

●增加原生负载校准工具,帮助用户设置更准确的资源资源分配:资源分配的基础是用户对负载的资源使用量有所了解。新增的校准工具将很好的帮助您评估相关信息,以合理配置资源组。最快的方法是从SQL接口运行校准命令来估计基准测试(如TPC-C和sysbench)的资源使用情况。

2.1.2多个热点场景下性能和稳定性提升

对TiDB的底层行存储TiKV有三个关键增强,以降低延迟提升稳定性(通过p99延迟衡量)。新版本引入了三项优化,分别针对三个级别热点进行处理:Key级别、分片(Region)级别和节点级别:

●Key级热点:锁冲突优化

●Region级热点:TiKV子任务的批处理化

●节点级热点:引入了基于负载的副本读取

锁冲突优化(GA)

TiDB引入了处理Key级热点的优化。在遇到许多单点悲观锁冲突的负载中,唤醒等待请求的算法在新版本中将表现得更稳定,最大限度地减少了重试的资源浪费,从而节省了整个集群的资源并降低了尾延迟。测试表明,当启用锁冲突优化时,如果吞吐量相对较小,即使在冲突最严重的工作负载中,新版本的尾延迟也将降低40-60%。

[MD:Title]

[MD:Title]

批处理TiKV子任务(GA)

选择性较差的查询可能会导致需要读取许多数据。在TiDB的分布式存算分离架构中,这样的查询可能会带来数万或数十万个RPC请求用于获取数据,如果使用索引读取则将更进一步加重这一负担。

TiDB服务器作为TiKV客户端,现在可以识别针对同一分片的批处理任务,并将这些批量发送到对应的存储节点。这大大减少了网络的RPC开销,使得这些查询更稳定。这个增强可以将相应场景中的延迟减少多达50%。

基于负载的副本读取(GA)

这个特性用于优化节点级读热点。当大批量查询以不均匀的方式发起读取,可能会出现节点热点。注入Index Lookup JOIN这类常见的事情都可能会导致这种情况。一旦发生,读取请求会排队,当队列塞满时,一些请求可能会等待相当长时间。PingCAP希望通过更均匀地分配工作来减少延迟。

新版本中,TiDB引入了基于负载的副本读取来实现这一点。它为队列提供了一个可配置的持续时间阈值,当超过该阈值时,它会告诉TiDB开始优先考虑副本读取。在读热点的情况下,与不打散读热点相比,该功能可提高读取吞吐量70%~200%。

有关此优化的更多信息,请参阅文档( https://docs.pingcap.com/tidb/dev/troubleshoot-hot-spot-issues#scatter-read-hotspots )。

2.2更少的资源,更佳的性能

TiDB 7.1提升了TiDB读、写以及管理操作的性能,以提供更好的用户体验。新版本中,TiDB增加了多值索引以提供对JSON的查询效率。此外,在写入吞吐、分析查询速度和后台任务效率方面也进行了大量的改进和优化。

2.2.1多值索引(GA)以增加速度和灵活性

多值索引也称为“JSON索引”,这种新型辅助索引在TiDB 6.6中引入并在7.1中GA。多值索引支持索引记录到数据记录的N:1映射,使得查询可以快速检查存储在JSON数组中的特定值。

无论该数据存储为blob,还是邮政编码直接存储为zip数组,用户都可以创建多值索引来定位特定邮政编码存在于哪一行。

索引是使用表达式创建的,该表达式将JSON数据逻辑解析为生成列(Generated Column)和该列上的二级索引。如果用户将JSON存储为blob,并且需要支持遍历多层嵌套的查询,只需创建一个索引以检索。

有关用法和注意事项的更多详细信息,请参阅多值索引文档( https://docs.pingcap.com/tidb/dev/sql-statement-create-index/#multi-valued-index )。

2.2.2更快的TTL(GA)

TTL (Time to live)在PingCAP的TiDB 6.5中作为一个实验特性进行了介绍,而在7.1中这个特性GA了。此外在新版本中,TiDB节点可以共享TTL相关任务并并发执行,从而拥有了更好的性能和资源利用率。

2.2.3延迟物化加速分析查询(GA)

TiFlash是TiDB的列式存储引擎,在7.1版本中延迟物化特性GA。当表扫描拥有高过滤性的时候,TiDB优化器可选择让TiFlash启用延迟物化。开启该特性后,TiFlash支持下推部分过滤条件到TableScan算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少IO扫描和数据处理的计算量。

此功能的影响取决于实际负载和数据分布。在某些情况下,它可以显著减少延迟(在PingCAP的测试中延迟最高可降低70%)。TiDB的查询优化器可以决定是否使用它,默认情况下打开是安全的。

2.2.4 Multi-RocksDB存储引擎带来巨大性能提升

在TiDB 6.6中,PingCAP引入了对TiKV存储架构的重大更改。虽然这个架构仍然是实验性的(默认关闭,并且只能在新集群中启用),但在这个LTS版本中,该特性获得重大加强,并在预生产环境中收到了很好的测试反馈。

在TiDB 6.6之前,单一TiKV节点所有Region共享一个RockDB存储引擎。新架构则将不同Region分别存放在不同RocksDB。新架构的好处是显著的:

●减少RocksDB对应的LSM负担,增加了吞吐量,测试结果显示写入吞吐量增加了200%。

●使用不同RocksDB也会减少Compaction带来的写放大,降低资源消耗。

●更好的写入吞吐使集群的扩展速度提高500%。

●在测试一些真实的客户工作负载时,PingCAP观察到尾部延迟减少了近50%。

●更小的单位存储消耗,使得集群可扩展性进一步增强。

在TiDB 7.1中,PingCAP进一步提高了该特性的性能和稳定性,并添加了网络带宽优化。当前仍然缺失的是TiCDC、BR等生态工具的支持,当这些完成后PingCAP将宣布这个特性GA。

2.2.5 Online DDL的大幅提升(实验特性)

在TiDB 7.1中,类似于前述TTL改进,PingCAP引入了跨TiDB节点分配DDL作业的框架,以进一步提高性能。

更多TiDB 7.1版本新功能,请查阅TiDB官网Release Notes,立即下载试用,开启TiDB体验之旅。

 

【本文结束】如需转载请务必注明出处:快科技

责任编辑:

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#快讯

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...