TiDB 7.1 LTS 发版:为关键业务提供业务稳定性和多租户场景支持

news2024/11/29 11:42:51

近日,企业级开源分布式数据库厂商 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%。

批处理 TiKV 子任务(GA)

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

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

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

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

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

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,并且需要支持遍历多层嵌套的查询,只需创建一个索引以检索。

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 作业的框架,以进一步提高性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

easyui5

1.1准备工作. 今天我们的主要任务是完成分页功能; 导入数据表 t_book,数据文件在课件; 介绍拼音字段,拼音工具类,拼音jar包; 模糊查询还要实现拼音模糊查询,如:百度输入拼音也可以…

飞凌嵌入式AM62x系列核心板配置新增,单核/双核/四核随心选

新时代,工业、电力、交通、医疗等众多行业纷纷从信息化向着智能化转型,这就对主控的综合性能提出了全新的要求。在这样的背景下 TI AM62x Sitara™处理器应运而生,为AIoT时代带来了新的突破可能。作为TI官方合作伙伴,飞凌嵌入式于…

RabbitMQ - 发布确认高级

RabbitMQ - 发布确认高级 发布确认 springboot 版本回退消息备份交换机 在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始…

Steemit 会颠覆 Quora/知乎 甚至 Facebook 吗?

Steemit是基于区块链技术的社交媒体平台,其独特的激励机制吸引了众多用户。然而,是否能够真正颠覆Quora、知乎甚至Facebook这些已经成为社交巨头的平台,仍然存在着许多未知因素。本文将探讨Steemit的优势和挑战,以及其在社交领域中…

数据分析第15课pandas和matplotlib实战

01实战:911 导入: 读取数据: 转换类型:

java html导出添加空行和空格

情景: 要求导出签批单: 格式如下, 要获取“主办处室负责人”和“相关处室会签”环节的处理意见、处理人员和处理日期进行替换,导出word文档。 处理: 主要是如何拼接内容? 方法一: 导出word&…

爬虫如何发送 HTTP 请求

爬虫可以使用 Python 中的 requests 库来发送 HTTP 请求。requests 库提供了简单易用的 API,可以方便地发送 GET、POST 等请求,并且支持设置请求头、请求参数、代理等功能。 以下是一个使用 requests 库发送 GET 请求的示例代码: import re…

国产触控笔哪个牌子好?第三方电容笔推荐

对于那些把iPad当做学习工具的人来说,这已经成为了他们生活中不可缺少的一部分。但没有人买得起苹果原装电容笔,因为苹果电容笔的售价太贵了。因此,最好还是用一支普通的电容笔。我是个一个苹果粉,同时也是个数字发烧友&#xff0…

十年之约 记账表格(会员专享)

* * * 原创:刘教链 * * * 6号,教链发起了十年之约加密投资实证计划。 很多读者、会员纷纷同行。 有朋友问及教链所用记账表格。可根据文章中的介绍自制。为方便会员,教链已将该表格上传至刘教链的加密投资星球,供下载。 另外&…

喜报 | 小米智能语音通讯技术获“深圳人工智能行业应用奖”

日前,2022年度第二届“深圳人工智能奖”正式揭晓。 “小米智能语音技术在手机实时通信中的应用”项目,凭借丰硕的创新成果、广泛的应用场景,获得“深圳人工智能行业应用奖”! “深圳人工智能行业应用奖”旨在表彰人工智能行业应用…

springcloud使用nacos搭建注册中心

nacos安装这里就不细说了,(Nacos下载以及搭建环境_你非柠檬为何心酸142的博客-CSDN博客) 大家也可以去网上安装好,这里主要讲搭建 ,我们需要手动启动nacos, 输入(.\startup.cmd -m standalone),出现一下图标就代表ok 首先是父工程所需要的依…

Java009——Java数据类型变量的简单认识

一、Java数据类型 围绕以下3点学习: 1、什么是Java数据类型? 2、Java数据类型的作用? 3、Java有哪些数据类型? 4、熟悉Java8大基本数据类型 1.1、什么是Java数据类型? 当我们写Java代码时,需要把数据保存…

react设计模式,jsx

1.修改配置项: eject:暴露配置项!!!一旦暴露了就无法还原回去 会报错。这个错误:我们刚才把代码改了,在暴露之前,先让我们把代码提交到git历史区保留下来—防止暴露后的代码覆盖了我们该的代码 …

02_MySQL的索引结构

1. BTree索引 B-Tree即B树,Balance Tree,平衡树,它的高度远小于平衡二叉树的高度。2-3树是最简单的B树结构。B树的阶:节点的最多子节点个数。比如2-3树的阶是3,2-3-4树的阶是4。 1.1 初始化介绍 一颗b树,浅蓝色的块我们…

什么是AI业务流程质检,如何用它做好销售和服务过程监督

近几年,随着语音转写、语义理解和机器学习等技术的成熟,越来越多的企业开始部署基于AI技术的智能质检系统,来帮助坐席、销售和服务团队提高沟通质量管理能力,同时提升沟通中的客户体验。 不过,不论是最初的人工质检&a…

【Word技巧】打印部分内容或者隐藏不打印的内容,如何操作?

在工作中,我们经常需要打印各种Word文档,但有时候,我们只需要打印文档的其中一部分内容,或者有部分内容并不想打印出来,要如何操作呢? 还不了解的小伙伴,可以看看下面的方法哦。 一、设置打印其…

node.js+vue药品药店进销存管理系统jb526

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 重点研究的,关键的问题: (1)业务流程; (2)前台…

广发证券传媒互联网首席分析师旷实:大模型引发的创新浪潮不会很快结束丨数据猿专访...

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 AI大模型引爆了今年一季度的热点。 今年春节期间,来自微软投资的OpenAI旗下产品ChatGPT成为科技行业关注焦点,出现即推热了市场情绪。随后,国内百度首发文心一言,阿里、华为、…

DevExpress WPF功能区控件,更轻松创建应用工具栏!(上)

DevExpress WPF的Ribbon、Toolbar和Menus组件以Microsoft Office为灵感,针对WPF开发人员进行了优化,可帮助您在段时间内模拟当今最流行的商业生产力应用程序。 DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业…

深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…