TiDB 7.5 LTS 发版丨提升规模化场景下关键应用的稳定性和成本的灵活性

news2024/11/16 3:42:47

互联网时代,数据的迅猛增长给数据库带来了可扩展性的挑战,Gen AI 带来的数据暴增更加剧了这种挑战。传统的数据分片已经不能承载新时代数据暴增的需求,更简单且具有前瞻性的方法则是采用原生分布式数据库来解决扩展性问题。在这种规模化场景的背景下,TiDB 的研发团队和开源贡献者们始终致力于解决事务一致性、数据持久性以及大规模扩展所带来的新挑战,以及保障关键应用的稳定性。

作为 TiDB 7 系列的第二个长期支持版本 (LTS) ,TiDB 7.5 着眼于提升规模化场景下关键应用的稳定性。 新版本中,TiDB 在可扩展性与性能、稳定性与高可用、SQL 以及可观测性等方面获得了持续的提升。TiDB 7.5 LTS 包含了已发布的 7.2.0-DMR、7.3.0-DMR 和 7.4.0-DMR 版本中的新功能、提升改进和错误修复,累计优化和修复功能 70 余项。

本文将探讨 TiDB 7.5 如何在规模化场景下实现关键应用整体稳定性的提升,探讨资源管控支持后端任务和管理资源消耗超出预期的查询(Runaway Queries)等重要特性,这些特性让用户可以在灵活调度资源降低总体成本的情况下可以保持关键应用的稳定性。

资源管控支持后端任务管理,提升执行关键业务的稳定性

TiDB 7.1 引入的资源管控(Resource Control)特性,多个业务可共享同一个 TiDB 集群,DBA 可为不同的工作负载设置资源配额和优先级,例如为关键业务分配更高的优先级,确保其能够优先获得资源,避免受到其他工作负载的干扰。 此前,资源管控无法对 DDL、analyze、import 等后端任务进行控制,这些任务通常定期或不定期触发,在执行的时候会消耗资源,从而对关键业务的运行产生影响。

自 TiDB 7.4 开始,资源管控支持后端任务管理。当一种任务被标记为后端任务时,TiKV 会动态地限制该任务的资源使用,以尽量避免此类任务在执行时对前台任务产生影响。TiKV 通过实时地监测所有前台任务所消耗的 CPU 和 IO 等资源,并根据实例的总体资源上限计算出后端任务可使用的资源阈值,所有后端任务在执行时会受此阈值的限制。当后端任务被识别匹配后,资源管控会自动进行,即当系统资源紧张时,后端任务会自动降为最低优先级,以确保前台任务的执行效率。 这个功能的增强允许 DBA 通过设置自动识别后端任务,并降低其资源消耗。 未来,这个功能将进一步扩展,提供给用户更丰富的配置选择,从而赋予用户对集群中后端任务更多的控制权。

下表展示了当“analyze”后端任务以默认优先级和低优先级运行时对前台工作负载的影响对比:

在上表的示例 中,第一行展示了当所有集群资源均可供前台工作负载使用时的性能。 第二行展示了在后台添加 “analyze” 任务时发生的情况。 第三行则展示了利用新特性自动对 “analyze” 任务进行管控时的效果。

将后端任务 (Add index, lmport into 任务) 调度到指定的 TiDB 节点执行

TiDB 7.2 开始,引入了分布式框架 ( https://docs.pingcap.com/zh/tidb/stable/tidb-distributed-execution-framework ),该框架的目标是实现对所有后端任务的统一调度与分布式执行,并为接入的后端任务提供统一的资源管理能力。分布式框架支持后端任务(特指 Add index 和 Import into 任务)在 TiDB 集群的所有 TiDB 节点上执行,以提升此类任务的性能。而 TiDB 7.5 允许 DBA 将 Add index,Import into 这类消耗资源较多的后端任务调度到指定的 TiDB 节点上执行,从而和存量 TiDB 节点上的负载进行隔离,避免对业务产生影响 。当在想要运行后端任务的节点上设置 tidb_service_scope 为 background 时,后端任务分布式框架将调度该节点执行后端任务。但未经这样设置,则该节点将不会被用于执行后端任务。

这一改进真正的突破在于能够动态地添加 TiDB 节点来处理突发的这类后端任务。如果需要导入一个庞大的表,只需向集群中添加若干个 TiDB 节点来完成,而不会对现有 TiDB 节点造成任何额外压力,添加索引的方式也是如此。完成任务后,这些节点可以被撤销。这一功能为在生产集群上轻松处理大型任务(Add index ,Import 大量数据)提供了更加无缝的方式。

暂停和恢复执行 DDL 任务

在 v7.1 版本之前,用户在某些场景下会遇到 DDL 执行的痛点,具体表现为:

● 集群版本升级时,若有正在执行的 DDL 未被取消,可能导致升级后的数据异常。

● 对于拥有数十亿行数据的大表,为其添加索引可能需要相当长的时间,对在线业务造成不可忽视的影响。

为了解决这些问题,我们在 v7.1.0 中引入了一项新功能:DDL 任务的暂停和恢复。这一功能在 v7.5.0 中正式发布,为用户带来了更加灵活和高效的 DDL 执行体验。

具体而言,该功能巧妙地解决了上述痛点:

● 在使用 TiUP 对集群升级的过程中,系统将自动暂停正在执行的 DDL 任务,并在升级完成后自动恢复执行该 DDL 任务。全程无需人为干预,有效避免由于人员疏忽导致未暂停 DDL 而引起集群升级后数据不一致的问题。

● 针对执行耗时较长的 DDL,比如给大表添加索引,用户可以在业务高峰期来临前手动暂停该 DDL,并在业务低谷期恢复该 DDL 任务,从而有效避免对在线业务的影响。

DDL 任务的暂停和恢复机制支持断点续传,不仅保障了 DDL 任务的安全性和稳定性,同时最大化地保证了用户数据一致性和业务的稳定性。

监控和管理资源消耗超出预期的查询

突发的查询性能下降,是影响数据库整体性能最常见的问题,很难完全规避。 即使设置了资源组限额,也只能消除资源组间的相互影响,而个别 SQL 的过渡消耗仍会对降低资源组内的其他操作的性能。 为解决此问题,TiDB 7.2 资源管控引入了对 Runaway Queries 的管理,自动识别并处理消耗超出预期的查询,在 TiDB 7.3 引入了手动管理 Runaway Queries 监控列表的功能,将 SQL 特征添加到隔离监控列表,从而实现快速隔离 Runaway Queries。 无论用户是否使用了资源组,都可以借助 Runaway Queries 管理来缓和突发的 SQL 性能问题。

DBA 现在可以为每个资源组设置“查询限制 (Query Limit)”,并配备几个关键参数 。EXE C_ELAPSED 用于设定查询持续时间的阈值,任何超出这一阈值的查询都会被识别为 Runaway Query。ACTION 决定当识别到 Runaway Query 时进行的动作,可以把执行优先级降到最低也可以终止该查询。WATCH 用于快速匹配已经识别到的 Runaway Query,即在一定时间内再碰到相同或相似的查询,可以直接按照配置的措施进行处理,避免其在被识别的过程中对资源进行消耗。

如果一些 Runaway Queries 并没有被自动识别,DBA 也可以通过 SQL 命令 "QUERY WATCH"手动将查询的特征加入“监视列表”,类似于设置数据库级别的 SQL 黑名单,特别适合那些对数据库响应时间要求很高的客户,为突发的 SQL 性能问题提供了一种有效的防范措施。这项功能和资源管控结合使用,意味着在业务系统之间以及业务系统内部都能实现更高的稳定性,从而最大限度地减少多业务合并过程中可能出现的潜在风险。

立即体验 TiDB 7.5

从 TiDB 7.0 开始,TiDB 在数据库整合的技术方向上持续演进,致力于在多业务融合的场景下同时提升关键业务的稳定性和降低总体成本,7.5 LTS 将资源管控、分布式框架、可观测性理念的组合推升到更为成熟的阶段,可以为当前追求业务连续性同时也希望降低总体成本的客户带来创新的部署和运维方式 。

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

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

相关文章

2013年第二届数学建模国际赛小美赛A题数学与经济灾难解题全过程文档及程序

2013年第二届数学建模国际赛小美赛 A题 数学与经济灾难 原题再现: 2008年的市场崩盘使世界陷入经济衰退,目前世界经济仍处于低迷状态,其原因是多方面的。其中之一是数学。   当然,并非只有金融界依赖于并非总是可靠的数学模型…

微信小程序开发系列-04获取用户图像和昵称

这个功能的实现对于我这个新手来说可谓是一波三折。该功能的实现经历了三个“版本”的迭代,我的运气不是很好,从第一个“版本”开始尝试,这篇文章也是记录下这个过程,以便其他新手能快速找到解决方案。 Gen1-getUserInfo 第一个…

Quartus的Signal Tap II的使用技巧

概述: Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。 传统的FPGA板级调试是由外接…

数据挖掘(作业3

任务一 对以下数据集使用K均值聚类算法: 1)观察实验结果是否符合预期; 2)利用SSE标准确定K值; 3)自行调参并观察对聚类结果的影响。 注意:需要把类别信息去掉。 “tutorial3_Data Explorat…

XUbuntu22.04之删除多余虚拟网卡和虚拟网桥(二百零四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【动画视频生成】

转自:机器之心 动画视频生成这几天火了,这次 NUS、字节的新框架不仅效果自然流畅,还在视频保真度方面比其他方法强了一大截。 最近,阿里研究团队构建了一种名为 Animate Anyone 的方法,只需要一张人物照片&#xff0…

ArkTS基本概念装饰器

目录 ArkTS基本概念 装饰器汇总 ArkTS基本概念 ArkTS是HarmonyOS的主力应用开发语言。 它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨…

Havenask 分布式索引构建服务 --Build Service

Havenask 是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了 Havenask 分布式索引构建服务——Build Service,主打稳定、快速、易管理,是在线系…

gulimall-002 分布式基础概念

1、微服务概念 微服务是一种非常流行的架构风格。 拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行。 每个服务运行在自己的单个进程使用轻量级机制通信可以使用不同的编程语言编写以及不同的数据存储技术 2、集群&分布式&…

C# MVC +Layui侧边导航栏的收缩及展开

目录 1、头部代码 2、侧边栏&#xff08;例子只写了一级导航&#xff0c;需要多级可自行添加&#xff09; 3、body内容填充 4、 JS 1、头部代码 <div class"layui-layout layui-layout-admin"> <div class"layui-header"> …

ajax请求——XMLHttpRequest请求

个人练习笔记-----Ajax01 一、GET <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</t…

BloombergGPT—金融领域大模型

文章目录 背景BloombergGPT数据集金融领域数据集通用数据集分词 模型模型结构模型相关参数训练配置训练过程 模型评估评估任务分布模型对比金融领域评估通用领域评估 背景 GPT-3的发布证明了训练非常大的自回归语言模型&#xff08;LLM&#xff09;的强大优势。GPT-3有1750亿个…

vue实现H5拖拽可视化编辑器

一款专注可视化平台工具&#xff0c;功能强大&#xff0c;高可扩展的HTML5可视化编辑器&#xff0c;致力于提供一套简单易用、高效创新、无限可能的解决方案。技术栈采用vue和typescript开发, 专注研发创新工具。 <template><div:style"style":class"…

计算机毕业设计 基于SpringBoot的高校竞赛管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

2024美赛数学建模思路A题B题C题D题E题F题思路汇总 选题分析

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间&#xff1a;北京时间2024年2月2日&#xff08;周五&#xff…

TiDB 7.1 多租户在中泰证券中的应用

本文详细介绍了中泰证券在系统国产化改造项目中采用 TiDB 多租户技术的实施过程。文章分析了中泰证券数据库系统现状以及引入 TiDB 资源管控技术的必要性&#xff0c;探讨了 TiDB 多租户的关键特性&#xff0c;并阐述了在实际应用中的具体操作步骤。通过该技术的应用&#xff0…

MariaDB单机多实例的配置方法

1、什么是数据库的单机多实例 数据库的单机多实例是指在一台物理服务器上运行多个数据库实例。这种部署方式允许多个数据库实例共享相同的物理资源&#xff0c;如CPU、内存和存储&#xff0c;从而提高硬件利用率并降低成本。每个数据库实例可以独立运行&#xff0c;处理不同的…

ElementUI的Table组件行合并上手指南

ElementUI的Table组件行合并 &#xff0c;示例用官网vue3版的文档 <el-table :data"tableData" :span-method"objectSpanMethod" border style"width: 100%; margin-top: 20px"><el-table-column prop"id" label"ID&qu…

uniapp项目如何引用安卓原生aar插件(避坑指南三)

官方文档说明&#xff1a;uni小程序SDK 1.第一步在uniapp项目下&#xff0c;创建一个nativeplugins目录&#xff0c;目录下面创建插件名称&#xff0c;这里以abcModule为例子&#xff0c;在此目录下创建android目录&#xff0c;把aar放androidd目录下&#xff0c;同时创建libs…

低代码选型注意事项

凭借着革命性的生产力优势&#xff0c;低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品&#xff0c;开发者该如何选择&#xff1f; 在研究低代码平台的年数上&#xff0c;本人已有3年&#xff0c;也算是个低代码资深用户了&#xff0c;很多企业面临低代码选型上的…