From 783d5c4ea588707fb83e814fe91003a457255268 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Fri, 1 Sep 2023 14:36:28 +0800 Subject: [PATCH 001/161] add template --- releases/release-7.4.0.md | 231 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 releases/release-7.4.0.md diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md new file mode 100644 index 000000000000..fdf4d85a8148 --- /dev/null +++ b/releases/release-7.4.0.md @@ -0,0 +1,231 @@ +--- +title: TiDB 7.4.0 Release Notes +summary: 了解 TiDB 7.4.0 版本的新功能、兼容性变更、改进提升,以及错误修复。 +--- + +# TiDB 7.4.0 Release Notes + +发版日期:2023 年 x 月 x 日 + +TiDB 版本:7.4.0 + +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v7.3/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/) + +在 7.4.0 版本中,你可以获得以下关键特性: + + + +## 功能详情 + +### 可扩展性 + + + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 性能 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 稳定性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 高可用 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### SQL 功能 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 数据库管理 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 可观测性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 安全 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 数据迁移 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +## 兼容性变更 + +> **注意:** +> +> 以下为从 v7.3.0 升级至当前版本 (v7.4.0) 所需兼容性变更信息。如果从 v7.2.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 release notes 中提到的兼容性变更信息。 + +### 行为变更 + + + +* 兼容性 1 + +* 兼容性 2 + +### 系统变量 + +| 变量名 | 修改类型 | 描述 | +|---|----|------| +| | 新增/删除/修改 | | +| | 新增/删除/修改 | | +| | 新增/删除/修改 | | +| | 新增/删除/修改 | | +| | 新增/删除/修改 | | + +### 配置文件参数 + +| 配置文件 | 配置项 | 修改类型 | 描述 | +| -------- | -------- | -------- | -------- | +| | | 新增/删除/修改 | | +| | | 新增/删除/修改 | | +| | | 新增/删除/修改 | | +| | | 新增/删除/修改 | | +| | | 新增/删除/修改 | | +| | | 新增/删除/修改 | | + +## 改进提升 + ++ TiDB + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiKV + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ PD + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiFlash + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ Tools + + + Backup & Restore (BR) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiCDC + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Data Migration (DM) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Lightning + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiUP + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## 错误修复 + ++ TiDB + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiKV + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ PD + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiFlash + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ Tools + + + Backup & Restore (BR) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiCDC + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Data Migration (DM) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Lightning + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiUP + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## 贡献者 + +感谢来自 TiDB 社区的贡献者们: + ++ [Contributor 1]() From 5c280d05729e032d5e20936d3f8b5b8c300094b1 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 4 Sep 2023 16:11:35 +0800 Subject: [PATCH 002/161] Update release-7.4.0.md add pushdown member of and partition management --- releases/release-7.4.0.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index fdf4d85a8148..247a48f35a28 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -35,6 +35,11 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 + +* 新增支持下推 [运算符](/functions-and-operators/expressions-pushed-down.md)到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@caiqian** + + * `value MEMBER OF(json_array)` + ### 稳定性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -59,6 +64,12 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 +* TiDB 支持完整的分区类型管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw@qiancai** + + 在 v7.4.0 之前,TiDB 中的分区表不能调整分区类型。从 v7.4.0 开始,TiDB 支持将分区表修改为非分区表、将非分区表修改为分区表、修改分区类型功能。你可以根据需要灵活调整表的分区类型、数量。例如,通过 `ALTER TABLE t PARTITION BY ...` 语句修改分区类型。 + + 更多信息,请参考[用户文档](/partitioned-table.md#分区管理)。 + ### 数据库管理 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 2bd44f60d69030244e2c8fbaf3c626a02fe01ba5 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 4 Sep 2023 17:11:51 +0800 Subject: [PATCH 003/161] Update release-7.4.0.md update rollup and tiflash disaggregated --- releases/release-7.4.0.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 247a48f35a28..7ce5d077a2eb 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -70,6 +70,12 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/partitioned-table.md#分区管理)。 +* TiDB 支持 ROLLUP 修饰符 和 GROUPING 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** + + 在 v7.4.0 之前,TiDB 不支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符和 GROUPING 函数是数据分析中常用的功能,用于对数据进行分级汇总。从 v7.4.0 开始,TiDB 支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符的使用方式为:`SELECT ... FROM ... GROUP BY ... WITH ROLLUP` + + 更多信息,请参考[用户文档](/functions-and-operators/aggregate-group-by-functions.md#group-by-修饰符)。 + ### 数据库管理 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -155,7 +161,7 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - + - 提升 TiFlash 在存算分离架构下的性能和稳定性(实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw@caiqian** - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) From d07672fe863eb555c5fe87f65510d0c7df59a914 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 4 Sep 2023 17:46:25 +0800 Subject: [PATCH 004/161] Update release-7.4.0.md update query spill to disk and tiflash compact log --- releases/release-7.4.0.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 7ce5d077a2eb..12b02a3af6a1 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -42,6 +42,13 @@ TiDB 版本:7.4.0 ### 稳定性 +* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) + + 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 + 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -162,7 +169,7 @@ TiDB 版本:7.4.0 + TiFlash - 提升 TiFlash 在存算分离架构下的性能和稳定性(实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw@caiqian** - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 改进 TiFlash Compact Log 策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@caiqian** - note [#issue](链接) @[贡献者 GitHub ID](链接) + Tools From 588378416898320df4cb7f8bdbdacaa4ea7d0c92 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:12:31 +0800 Subject: [PATCH 005/161] Update release-7.4.0.md update resource control of tiflash --- releases/release-7.4.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 12b02a3af6a1..f73c554590bd 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -49,6 +49,14 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 +* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) + + TiDB 在 v7.1.0 中正式发布了基于资源组的资源管控特性,但是这个特性还不包含 TiFlash。在 v7.4.0 中,TiFlash 支持了资源管控特性,完善了整体 TiDB 的资源管控能力。TiFlash 的资源管控和已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB/TiKV/TiFlash 中的资源。 + + 通过 TiFlash 配置参数 `enable_resource_control` 启用 TiFlash 资源管控特性后,TiFlash 将根据 TiDB 的资源组配置,进行资源调度管理,确保整体资源的合理分配使用。 + + 更多信息,请参考[用户文档](/tidb-resource-control.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From 6236518e03b72903a4d5e53b4594a0fccc01c883 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:14:02 +0800 Subject: [PATCH 006/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f73c554590bd..cd830c5aad79 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -42,14 +42,14 @@ TiDB 版本:7.4.0 ### 稳定性 -* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) +* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@caiqian** 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 -* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) +* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) **tw@caiqian** TiDB 在 v7.1.0 中正式发布了基于资源组的资源管控特性,但是这个特性还不包含 TiFlash。在 v7.4.0 中,TiFlash 支持了资源管控特性,完善了整体 TiDB 的资源管控能力。TiFlash 的资源管控和已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB/TiKV/TiFlash 中的资源。 From 6702e324602ddc320f4e8f97877de30ff7c50855 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:51:31 +0800 Subject: [PATCH 007/161] Update release-7.4.0.md update tiflash General frame in window function --- releases/release-7.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index cd830c5aad79..f8f8c504a0cd 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -40,6 +40,12 @@ TiDB 版本:7.4.0 * `value MEMBER OF(json_array)` +* 支持下推包含任何帧定义的窗口函数到 TiFlash [#111](https://github.com/pingcap/tiflash/issues/7427) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@caiqian** + + 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + ### 稳定性 * TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@caiqian** From 7a81badb3be0db5a7aba5a369e89c15c8687d4c3 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:56:48 +0800 Subject: [PATCH 008/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f8f8c504a0cd..ecd5b9bc4744 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -40,7 +40,7 @@ TiDB 版本:7.4.0 * `value MEMBER OF(json_array)` -* 支持下推包含任何帧定义的窗口函数到 TiFlash [#111](https://github.com/pingcap/tiflash/issues/7427) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@caiqian** +* 支持下推包含任何帧定义的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@caiqian** 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 From 5391daec0801d03563f7d4b75c3e93c14cca6e32 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:19:39 +0800 Subject: [PATCH 009/161] Update release-7.4.0.md update pipeline model GA --- releases/release-7.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ecd5b9bc4744..9849d7e232da 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -63,6 +63,12 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md)。 +* TiFlash Pipeline 执行模型正式发布(GA)[#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) + + 在 v7.2.0 版本中,TiFlash 以实验特性发布了 Pipeline 执行模型。TiFlash 引入 Pipeline 执行模型,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,将正式发布 Pipeline 执行模型。控制该特性是否启用的系统变量 [`tidb_enable_tiflash_pipeline_model`](/system-variables.md#tidb_enable_tiflash_pipeline_model-从-v720-版本开始引入) 的默认值将调整为 `true`,并且作用域调整为 `GLOBAL`。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From 93f0c3ae556da4e3b958ecaec9694ad380305448 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 6 Sep 2023 16:43:58 +0800 Subject: [PATCH 010/161] compatible with the default collation utf8mb4_0900_ai_ci of MySQL 8.0 utf8mb4 charset --- releases/release-7.4.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9849d7e232da..953025c842c9 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -111,6 +111,14 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 +* 新增排序规则 `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin` [#37566](https://github.com/pingcap/tidb/issues/37566) @[YangKeao](https://github.com/YangKeao) @[zimulala](https://github.com/zimulala) @[bb7133](https://github.com/bb7133) + + TiDB 在新版本中增强了从 MySQL 8.0 迁移的支持。新增两个排序规则 (Collation) `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin`, 其中 `utf8mb4_0900_ai_ci` 为 MySQL 8.0 的默认排序规则。 + + 同时新增支持 MySQL 8.0 兼容的系统变量 [`default_collation_for_utf8mb4`](), 允许用户为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 + + 更多信息,请参考[用户文档](/character-set-and-collation#支持的字符集和排序规则)。 + ### 可观测性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -153,7 +161,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| -| | 新增/删除/修改 | | +| [`default_collation_for_utf8mb4`]() | 新增 | 为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 | | | 新增/删除/修改 | | | | 新增/删除/修改 | | | | 新增/删除/修改 | | From 65efc0349feb453cff0dfbc4904f4b8f28bd4d65 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 6 Sep 2023 17:11:47 +0800 Subject: [PATCH 011/161] optimizer hint to set session variables --- releases/release-7.4.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 953025c842c9..546bae85dd02 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -55,6 +55,14 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 +* 部分系统变量可通过优化器提示设置 [#issue号](链接) @[winoros](https://github.com/winoros) + + TiDB 新增支持了 MySQL 8.0 相似的优化器提示 [`SET_VAR()`]()。 通过在 SQL 添加 hint `SET_VAR()`,能够在语句运行过程中临时修改部分系统变量,达到针对不同语句设置环境的目的。 比如主动提升高消耗的 SQL 的并行度,或者利用变量修改优化器行为。 + + 支持修改的系统变量请参考[用户文档](/system-variables.md),不建议在提示中设置文档中没有明确支持的变量,可能造成不可预知的结果。 + + 更多信息,请参考[用户文档](/optimizer-hints.md)。 + * TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) **tw@caiqian** TiDB 在 v7.1.0 中正式发布了基于资源组的资源管控特性,但是这个特性还不包含 TiFlash。在 v7.4.0 中,TiFlash 支持了资源管控特性,完善了整体 TiDB 的资源管控能力。TiFlash 的资源管控和已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB/TiKV/TiFlash 中的资源。 From 0af9802fb6f73ab51e1a3b8296f8221a8440f500 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 6 Sep 2023 21:57:16 +0800 Subject: [PATCH 012/161] non-prepared plan cache GA --- releases/release-7.4.0.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 546bae85dd02..f748f6719375 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -46,6 +46,17 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 +* 支持缓存非 Prepare 语句的执行计划(GA)[#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) + + 自 v7.4.0,非 Prepare 语句的执行计划缓存基本可用。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 + + 为了保持数据库行为向前兼容,非 Prepare 语句的执行计划缓存默认关闭,用户可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 按需打开,并通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 + + 此外,该功能暂时不对 DML 语句生效,对 SQL 的模式也有一定的限制,具体参见[使用限制](/sql-non-prepared-plan-cache.md#限制)。 + + + 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 + ### 稳定性 * TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@caiqian** From b8ad89208367bb2fe7fdc9de6dce1c25360735a7 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 6 Sep 2023 22:09:58 +0800 Subject: [PATCH 013/161] Introduce optimizer objective to control the behavior of cost estimation --- releases/release-7.4.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f748f6719375..a476c7d15cc0 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -88,6 +88,14 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 +* 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) + + TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。 默认值 `moderate` 维持从前的优化器行为,优化器会利用运行时统计到的数据修改来校正估算。 如果设置为 `determinate`,优化器则不考虑运行时校正,只根据统计信息来生成执行计划。 + + 对于长期稳定的 OLTP 业务,或者如果用户对已有的执行计划非常有把握,则推荐测试后切换到 `determinate` 模式减少执行计划跳变的可能。 + + 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -181,7 +189,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| | [`default_collation_for_utf8mb4`]() | 新增 | 为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 | -| | 新增/删除/修改 | | +| [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。moderate 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;determinate 则倾向于保守,保持执行计划稳定。 | | | 新增/删除/修改 | | | | 新增/删除/修改 | | | | 新增/删除/修改 | | From 53cfda0cd772a9b79da44cd26abcf54ba022ffa9 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 7 Sep 2023 09:12:10 +0800 Subject: [PATCH 014/161] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-7.4.0.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index a476c7d15cc0..9d23e2840e20 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -26,7 +26,12 @@ TiDB 版本:7.4.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* TiDB 引入设置 TiDB Service scope 的功能,用于选择适用的 TiDB 节点来执行并行的 Add index 或 import into 任务 [#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** + 功能描述 + 在资源密集型集群中并行执行 Add index 或 import into 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降的问题。现在,TiDB 引入了该功能,用户可以对存量 TiDB 节点选择其中几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope 后,所有并行执行的 Add index 和 import into 的任务只会运行在这些节点,避免对已有业务造成性能影响。 + + 更多信息,请参考[用户文档](链接)。 ### 性能 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -45,7 +50,18 @@ TiDB 版本:7.4.0 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 +* 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性[#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** + + 功能描述 + 原先用户执行分布式并行执行框架的 Add index 或 import into 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 Add index 或 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 + 更多信息,请参考[用户文档](链接)。 + +* 优化 Parallel Multi Schema Change ,提升 1 个 SQL 添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + 功能描述 + 原先用户使用 Parallel Multi Schema Change 在 1 个 SQL 中提交多个 Add index 操作,性能和多个独立的 SQL 执行 Add index 操作的性能是一样的,优化后,可大幅提升在 1 个 SQL 中添加多个索引的性能。 + + 更多信息,请参考[用户文档](链接)。 * 支持缓存非 Prepare 语句的执行计划(GA)[#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) 自 v7.4.0,非 Prepare 语句的执行计划缓存基本可用。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 @@ -169,7 +185,25 @@ TiDB 版本:7.4.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* DataMigration(DM) 支持拦截不兼容(破坏数据一致性)的 DDL 变更 [#9692](https://github.com/pingcap/tiflow/issues/9692) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** + 功能描述 + 之前用户使用 DM 的 binlog filter 功能颗粒度比较粗,例如只能过滤 alter 这种大颗粒度的 DDL event,这在一些业务场景是受限的,例如业务允许将 Decimal 字段类型的精度调大,但是不允许减小。因此引入一个新的 event name “incompatible DDL changes” 用于拦截那些变更后会导致数据丢失,数据被截断,精度损失等问题的 DDL,并报错提示给用户及时介入处理,避免对下游的业务数据产生影响。 + + 更多信息,请参考[用户文档](链接)。 + +* 支持实时更新增量数据校验的 checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ranh-huang** + + 功能描述 + 过去,用户使用增量数据校验功能,判断 DM 同步到下游的数据是否和上游是一致的,并以此作为业务流量从上游数据库割接到 TiDB 的判断依据。而增量校验 checkpoint 受同步延迟,不一致的数据等待一段时间后重新校验等机制限制,需要每隔几分钟的时间来刷新校验后的 checkpoint,这在一些割接时间只有几十秒的业务场景是不可接受的,引入该功能后,用户可以传入上游数据库填写的 binlog Postion,一旦增量校验程序在内存里校验到该 binlog Postion 后会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint,从而用户可以根据该立即返回的 checkpoint 来快速地割接。 + + 更多信息,请参考[用户文档](链接)。 + +* import into 支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + + 功能描述 + 原先用户使用 import into 导入数据,会把该任务拆分成多个子任务调度到各个 TiDB 节点并行执行,这些 TiDB 节点,需要准备一块较大的本地磁盘,用于对编码后的索引 kv pairs 以及表 kv Paris 数据进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的表数据和索引数据并行导入到 TiKV,从而提升性能和稳定性。 + 更多信息,请参考[用户文档](链接)。 ## 兼容性变更 > **注意:** @@ -198,7 +232,7 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| | | 新增/删除/修改 | | +| Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | From a6e464f1bcc576479a0f3c309f6a3ca336e62447 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Thu, 7 Sep 2023 10:22:02 +0800 Subject: [PATCH 015/161] polished draft provided by PMs --- releases/release-7.4.0.md | 99 +++++++++++++-------------------------- 1 file changed, 32 insertions(+), 67 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9d23e2840e20..da4d46c09d4a 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -21,76 +21,66 @@ TiDB 版本:7.4.0 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** +* TiDB 引入设置 TiDB Service Scope 的功能,用于选择适用的 TiDB 节点来执行并行的 Add Index 或 `IMPORT INTO` 任务 [#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + 在资源密集型集群中并行执行 Add Index 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 Add Index 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](链接)。 -* TiDB 引入设置 TiDB Service scope 的功能,用于选择适用的 TiDB 节点来执行并行的 Add index 或 import into 任务 [#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** - - 功能描述 - 在资源密集型集群中并行执行 Add index 或 import into 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降的问题。现在,TiDB 引入了该功能,用户可以对存量 TiDB 节点选择其中几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope 后,所有并行执行的 Add index 和 import into 的任务只会运行在这些节点,避免对已有业务造成性能影响。 - 更多信息,请参考[用户文档](链接)。 ### 性能 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** +* 新增支持下推[运算符](/functions-and-operators/expressions-pushed-down.md)到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@caiqian** - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + * `value MEMBER OF(json_array)` 更多信息,请参考[用户文档](链接)。 - -* 新增支持下推 [运算符](/functions-and-operators/expressions-pushed-down.md)到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@caiqian** - - * `value MEMBER OF(json_array)` - -* 支持下推包含任何帧定义的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@caiqian** +* 支持下推包含任何帧定义的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@caiqian** 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性[#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** - 功能描述 - 原先用户执行分布式并行执行框架的 Add index 或 import into 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 Add index 或 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 +* 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** + + 原先用户执行分布式并行执行框架的 Add index 或 import into 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 Add index 或 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 + 更多信息,请参考[用户文档](链接)。 -* 优化 Parallel Multi Schema Change ,提升 1 个 SQL 添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** +* 优化 Parallel Multi Schema Change ,提升 1 个 SQL 添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** - 功能描述 原先用户使用 Parallel Multi Schema Change 在 1 个 SQL 中提交多个 Add index 操作,性能和多个独立的 SQL 执行 Add index 操作的性能是一样的,优化后,可大幅提升在 1 个 SQL 中添加多个索引的性能。 更多信息,请参考[用户文档](链接)。 -* 支持缓存非 Prepare 语句的执行计划(GA)[#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) + +* 支持缓存非 Prepare 语句的执行计划(GA)[#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** 自 v7.4.0,非 Prepare 语句的执行计划缓存基本可用。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 为了保持数据库行为向前兼容,非 Prepare 语句的执行计划缓存默认关闭,用户可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 按需打开,并通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 - - 此外,该功能暂时不对 DML 语句生效,对 SQL 的模式也有一定的限制,具体参见[使用限制](/sql-non-prepared-plan-cache.md#限制)。 + 此外,该功能暂时不对 DML 语句生效,对 SQL 的模式也有一定的限制,具体参见[使用限制](/sql-non-prepared-plan-cache.md#限制)。 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 ### 稳定性 -* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@caiqian** +* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@caiqian** 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 -* 部分系统变量可通过优化器提示设置 [#issue号](链接) @[winoros](https://github.com/winoros) +* 部分系统变量可通过优化器提示设置 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - TiDB 新增支持了 MySQL 8.0 相似的优化器提示 [`SET_VAR()`]()。 通过在 SQL 添加 hint `SET_VAR()`,能够在语句运行过程中临时修改部分系统变量,达到针对不同语句设置环境的目的。 比如主动提升高消耗的 SQL 的并行度,或者利用变量修改优化器行为。 - - 支持修改的系统变量请参考[用户文档](/system-variables.md),不建议在提示中设置文档中没有明确支持的变量,可能造成不可预知的结果。 + TiDB 新增支持了 MySQL 8.0 相似的优化器提示 [`SET_VAR()`]()。 通过在 SQL 添加 hint `SET_VAR()`,能够在语句运行过程中临时修改部分系统变量,达到针对不同语句设置环境的目的。 比如主动提升高消耗的 SQL 的并行度,或者利用变量修改优化器行为。 + + 支持修改的系统变量请参考[用户文档](/system-variables.md),不建议在提示中设置文档中没有明确支持的变量,可能造成不可预知的结果。 更多信息,请参考[用户文档](/optimizer-hints.md)。 -* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) **tw@caiqian** +* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** TiDB 在 v7.1.0 中正式发布了基于资源组的资源管控特性,但是这个特性还不包含 TiFlash。在 v7.4.0 中,TiFlash 支持了资源管控特性,完善了整体 TiDB 的资源管控能力。TiFlash 的资源管控和已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB/TiKV/TiFlash 中的资源。 @@ -98,13 +88,13 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* TiFlash Pipeline 执行模型正式发布(GA)[#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) +* TiFlash Pipeline 执行模型正式发布(GA)[#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** 在 v7.2.0 版本中,TiFlash 以实验特性发布了 Pipeline 执行模型。TiFlash 引入 Pipeline 执行模型,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,将正式发布 Pipeline 执行模型。控制该特性是否启用的系统变量 [`tidb_enable_tiflash_pipeline_model`](/system-variables.md#tidb_enable_tiflash_pipeline_model-从-v720-版本开始引入) 的默认值将调整为 `true`,并且作用域调整为 `GLOBAL`。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 -* 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) +* 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) **tw@ran-huang** TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。 默认值 `moderate` 维持从前的优化器行为,优化器会利用运行时统计到的数据修改来校正估算。 如果设置为 `determinate`,优化器则不考虑运行时校正,只根据统计信息来生成执行计划。 @@ -112,12 +102,6 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -128,19 +112,13 @@ TiDB 版本:7.4.0 ### SQL 功能 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * TiDB 支持完整的分区类型管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw@qiancai** 在 v7.4.0 之前,TiDB 中的分区表不能调整分区类型。从 v7.4.0 开始,TiDB 支持将分区表修改为非分区表、将非分区表修改为分区表、修改分区类型功能。你可以根据需要灵活调整表的分区类型、数量。例如,通过 `ALTER TABLE t PARTITION BY ...` 语句修改分区类型。 更多信息,请参考[用户文档](/partitioned-table.md#分区管理)。 -* TiDB 支持 ROLLUP 修饰符 和 GROUPING 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** +* TiDB 支持 ROLLUP 修饰符 和 GROUPING 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** 在 v7.4.0 之前,TiDB 不支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符和 GROUPING 函数是数据分析中常用的功能,用于对数据进行分级汇总。从 v7.4.0 开始,TiDB 支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符的使用方式为:`SELECT ... FROM ... GROUP BY ... WITH ROLLUP` @@ -148,17 +126,11 @@ TiDB 版本:7.4.0 ### 数据库管理 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 新增排序规则 `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin` [#37566](https://github.com/pingcap/tidb/issues/37566) @[YangKeao](https://github.com/YangKeao) @[zimulala](https://github.com/zimulala) @[bb7133](https://github.com/bb7133) +* 新增排序规则 `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin` [#37566](https://github.com/pingcap/tidb/issues/37566) @[YangKeao](https://github.com/YangKeao) @[zimulala](https://github.com/zimulala) @[bb7133](https://github.com/bb7133) **tw@Oreoxmt** TiDB 在新版本中增强了从 MySQL 8.0 迁移的支持。新增两个排序规则 (Collation) `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin`, 其中 `utf8mb4_0900_ai_ci` 为 MySQL 8.0 的默认排序规则。 - 同时新增支持 MySQL 8.0 兼容的系统变量 [`default_collation_for_utf8mb4`](), 允许用户为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 + 同时新增支持 MySQL 8.0 兼容的系统变量 [`default_collation_for_utf8mb4`](),允许用户为 utf8mb4 字符集选择默认排序方式,兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 更多信息,请参考[用户文档](/character-set-and-collation#支持的字符集和排序规则)。 @@ -180,30 +152,24 @@ TiDB 版本:7.4.0 ### 数据迁移 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** +* Data Migration (DM) 支持拦截不兼容(破坏数据一致性)的 DDL 变更 [#9692](https://github.com/pingcap/tiflow/issues/9692) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + 在 v7.4.0 之前,使用 DM 的 Binlog Filter 功能颗粒度比较粗,例如只能过滤 ALTER 这种大颗粒度的 DDL Event,这种方式在某些业务场景会收到限制,例如业务允许将 Decimal 字段类型的精度调大,但是不允许减小。因此,在 v7.4.0 引入一个新的 Event Name `incompatible DDL changes`,用于拦截那些变更后会导致数据丢失、数据被截断、精度损失等问题的 DDL,并报错提示,让你可以及时介入处理,避免对下游的业务数据产生影响。 更多信息,请参考[用户文档](链接)。 -* DataMigration(DM) 支持拦截不兼容(破坏数据一致性)的 DDL 变更 [#9692](https://github.com/pingcap/tiflow/issues/9692) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** - 功能描述 - 之前用户使用 DM 的 binlog filter 功能颗粒度比较粗,例如只能过滤 alter 这种大颗粒度的 DDL event,这在一些业务场景是受限的,例如业务允许将 Decimal 字段类型的精度调大,但是不允许减小。因此引入一个新的 event name “incompatible DDL changes” 用于拦截那些变更后会导致数据丢失,数据被截断,精度损失等问题的 DDL,并报错提示给用户及时介入处理,避免对下游的业务数据产生影响。 +* 支持实时更新增量数据校验的 Checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ran-huang** + + 在 v7.4.0 之前,使用增量数据校验功能,判断 DM 同步到下游的数据是否和上游是一致的,并以此作为业务流量从上游数据库割接到 TiDB 的判断依据。而增量校验 checkpoint 受同步延迟,不一致的数据等待一段时间后重新校验等机制限制,需要每隔几分钟的时间来刷新校验后的 checkpoint,这在一些割接时间只有几十秒的业务场景是不可接受的,引入该功能后,用户可以传入上游数据库填写的 binlog Postion,一旦增量校验程序在内存里校验到该 binlog Postion 后会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint,从而用户可以根据该立即返回的 checkpoint 来快速地割接。 更多信息,请参考[用户文档](链接)。 - -* 支持实时更新增量数据校验的 checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ranh-huang** - 功能描述 - 过去,用户使用增量数据校验功能,判断 DM 同步到下游的数据是否和上游是一致的,并以此作为业务流量从上游数据库割接到 TiDB 的判断依据。而增量校验 checkpoint 受同步延迟,不一致的数据等待一段时间后重新校验等机制限制,需要每隔几分钟的时间来刷新校验后的 checkpoint,这在一些割接时间只有几十秒的业务场景是不可接受的,引入该功能后,用户可以传入上游数据库填写的 binlog Postion,一旦增量校验程序在内存里校验到该 binlog Postion 后会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint,从而用户可以根据该立即返回的 checkpoint 来快速地割接。 +* IMPORT INTO 支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 更多信息,请参考[用户文档](链接)。 - -* import into 支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + 在 v7.4.0 之前,使用 IMPORT INTO 导入数据,会把该任务拆分成多个子任务调度到各个 TiDB 节点并行执行,这些 TiDB 节点,需要准备一块较大的本地磁盘,用于对编码后的索引 kv pairs 以及表 kv Paris 数据进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的表数据和索引数据并行导入到 TiKV,从而提升性能和稳定性。 - 功能描述 - 原先用户使用 import into 导入数据,会把该任务拆分成多个子任务调度到各个 TiDB 节点并行执行,这些 TiDB 节点,需要准备一块较大的本地磁盘,用于对编码后的索引 kv pairs 以及表 kv Paris 数据进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的表数据和索引数据并行导入到 TiKV,从而提升性能和稳定性。 更多信息,请参考[用户文档](链接)。 + ## 兼容性变更 > **注意:** @@ -259,7 +225,6 @@ TiDB 版本:7.4.0 + TiFlash - 提升 TiFlash 在存算分离架构下的性能和稳定性(实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw@caiqian** - 改进 TiFlash Compact Log 策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@caiqian** - - note [#issue](链接) @[贡献者 GitHub ID](链接) + Tools From c5dc30ec7bb7eab01a18bbb6bd8ec7d9722bdf4d Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 7 Sep 2023 10:34:03 +0800 Subject: [PATCH 016/161] Apply suggestions from code review --- releases/release-7.4.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index da4d46c09d4a..827b8e4e92fc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -29,13 +29,13 @@ TiDB 版本:7.4.0 ### 性能 -* 新增支持下推[运算符](/functions-and-operators/expressions-pushed-down.md)到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@caiqian** +* 新增支持下推[运算符](/functions-and-operators/expressions-pushed-down.md)到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** * `value MEMBER OF(json_array)` 更多信息,请参考[用户文档](链接)。 -* 支持下推包含任何帧定义的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@caiqian** +* 支持下推包含任何帧定义的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 @@ -65,7 +65,7 @@ TiDB 版本:7.4.0 ### 稳定性 -* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@caiqian** +* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 @@ -223,8 +223,8 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - - 提升 TiFlash 在存算分离架构下的性能和稳定性(实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw@caiqian** - - 改进 TiFlash Compact Log 策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@caiqian** + - 提升 TiFlash 在存算分离架构下的性能和稳定性(实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** + - 改进 TiFlash Compact Log 策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + Tools From cd3ab7c32dd666eaba225ee3c6e4d0d8e012ec3b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 7 Sep 2023 11:24:46 +0800 Subject: [PATCH 017/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 827b8e4e92fc..0638cb81b8eb 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -65,6 +65,14 @@ TiDB 版本:7.4.0 ### 稳定性 +* 手动标记资源使用超出预期的查询 GA [#43691](https://github.com/pingcap/tidb/issues/43691) @[Connor1996](https://github.com/Connor1996) @[CabinfeverB](https://github.com/CabinfeverB) **tw@hfxsd** + + 在 v7.2.0 中,TiDB 自动管理资源使用超出预期的查询 (Runaway Query),即自动降级或取消运行时间超出预期的查询。在实际运行时,只依靠规则无法覆盖所有情况。因此,TiDB v7.3.0 新增手动标记查询的功能。利用新增的命令 [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md),你可以根据 SQL 的文本、SQL Digest 或执行计划标记查询,命中的查询可以被降级或取消。在 v7.4.0 中,该特性正式 GA。 + + 手动标记 Runaway Query 的功能为数据库中突发的性能问题提供了有效的干预手段。针对由查询引发的性能问题,在定位根本原因之前,该功能可以快速缓解其对整体性能的影响,从而提升系统服务质量。 + + 更多信息,请参考[用户文档](/tidb-resource-control.md#query-watch-语句说明)。 + * TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 From 5f5bd56ebf1f47ca3e415b0d8db91ef3900d3c45 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 7 Sep 2023 12:04:24 +0800 Subject: [PATCH 018/161] manage background task in resource control --- releases/release-7.4.0.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 0638cb81b8eb..e22500ed86da 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -110,6 +110,23 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 +* 后台任务自动资源管控 (实验特性) [#issue号](链接) @[glorv](https://github.com/glorv) + + 数据库集群中存在一些用户不感知的任务,用户对这部分任务的时延并不关注,而这些任务的资源消耗却可能造成系统整体性能的下降。 在新版本中,资源管控加入了对已知低优先级任务的自动管理。 默认情况下,下面任务将以低优先级运行: + + - [统计信息自动更新](/statistics.md#自动更新) + - [`MVCC`](/tidb-storage.md#mvcc) 数据自动清理 + - [`TTL`](/time-to-live.md) 超时数据自动清理 + + 通过对[资源组设定的修改](/sql-statements/sql-statement-alter-resource-group.md),用户还可以主动将下列任务作为低优先级任务运行: + + - 批量数据导入 [`Lightning`](/tidb-lightning/tidb-lightning-overview.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md) + - [DDL 语句](/ddl-introduction.md) + + 对已知后台任务的自动资源管控,降低了低优先级任务对线上业务的性能影响,实现资源的合理分配,大幅提升集群的稳定性。 + + 更多信息,请参考[用户文档](/tidb-resource-control.md)。 + ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From ce431c5cb0e3a59b36f23d7daa1c3a14ce7721bf Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 7 Sep 2023 12:08:02 +0800 Subject: [PATCH 019/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e22500ed86da..fbb143eb41bc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -110,7 +110,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 -* 后台任务自动资源管控 (实验特性) [#issue号](链接) @[glorv](https://github.com/glorv) +* 后台任务自动资源管控 (实验特性) [#issue号](链接) @[glorv](https://github.com/glorv) **tw@Oreoxmt** 数据库集群中存在一些用户不感知的任务,用户对这部分任务的时延并不关注,而这些任务的资源消耗却可能造成系统整体性能的下降。 在新版本中,资源管控加入了对已知低优先级任务的自动管理。 默认情况下,下面任务将以低优先级运行: From 9316ff35ab839e69086999cde1cc4c7481fd293f Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 7 Sep 2023 12:30:42 +0800 Subject: [PATCH 020/161] include privilege control to locking stats --- releases/release-7.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e22500ed86da..9f509ad479e1 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -127,6 +127,12 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md)。 +* 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) + + 在 v7.4.0 中,TiDB 加强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。 锁定和解锁统计信息,需要被赋予和收集统计信息相同的权限,操作的安全性得到保障。同时新增支持对特定分区的统计信息进行锁定和解锁操作,功能灵活性得以提升。 当用户数据库中的查询和执行计划有把握,不希望改变,可以利用锁定统计信息来提升统计信息的稳定性。 + + 更多信息,请参考[用户文档](/statistics.md#锁定统计信息)。 + ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 08895b0db4c950f1795503e4f56e3b018fbc2195 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 7 Sep 2023 12:35:32 +0800 Subject: [PATCH 021/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 010c6d828e85..284bccffcf4d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -127,7 +127,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) +* 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) **tw@ran-huang** 在 v7.4.0 中,TiDB 加强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。 锁定和解锁统计信息,需要被赋予和收集统计信息相同的权限,操作的安全性得到保障。同时新增支持对特定分区的统计信息进行锁定和解锁操作,功能灵活性得以提升。 当用户数据库中的查询和执行计划有把握,不希望改变,可以利用锁定统计信息来提升统计信息的稳定性。 From 0d226a3fa8840c7a7f8ab7d52c02f93479d29f11 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 7 Sep 2023 15:08:22 +0800 Subject: [PATCH 022/161] include session identifier and alias in log files. --- releases/release-7.4.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 010c6d828e85..5d4944793a7a 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -173,6 +173,14 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 +* 向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) + + 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (CONNECTION_ID) 写入与会话相关的日志内容中,包括 TiDB 日志,慢查询日志,以及 TiKV 上 coprocessor 的慢日志记录。用户可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 + + 除此之外,通过设置会话级变量 [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入),用户可以向上述日志中添加自定义的标识。借助这个能力,把业务识别信息注入日志,从而将日志中的内容与业务关联,把业务到日志的链路打通,降低诊断工作的难度。 + + 更多信息,请参考[用户文档](/system-variables.md#tidb_session_alias-从-v740-版本开始引入)。 + ### 安全 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -221,7 +229,7 @@ TiDB 版本:7.4.0 |---|----|------| | [`default_collation_for_utf8mb4`]() | 新增 | 为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。moderate 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;determinate 则倾向于保守,保持执行计划稳定。 | -| | 新增/删除/修改 | | +| [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | | 新增/删除/修改 | | | | 新增/删除/修改 | | From 9be738f7e635d62c1fef403cc96628c0d0e3400a Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:51:26 +0800 Subject: [PATCH 023/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9f068f285be0..1e6b5a0ba021 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -79,6 +79,14 @@ TiDB 版本:7.4.0 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 +* 引入自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** + + 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加,甚至达到几秒或更长。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 + + TiDB 在 v7.4.0 中引入了一个新参数 [`TIDB_KV_READ_TIMEOUT(N)`](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入),允许用户自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间,单位是毫秒。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。如果同时设置了 Hint 和系统变量,则 Hint 优先级更高。 + + 这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,减少用户体验的不便。更多的信息,请参考[用户文档](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入)。 + * 部分系统变量可通过优化器提示设置 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** From 57e39dea0c7473c788915e272fcf29c1981f4a23 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Thu, 7 Sep 2023 17:53:56 +0800 Subject: [PATCH 024/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 1e6b5a0ba021..437877c26a65 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -26,6 +26,11 @@ TiDB 版本:7.4.0 在资源密集型集群中并行执行 Add Index 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 Add Index 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](链接)。 +* 进一步优化的 Partitioned Raft KV 引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) + + 相比之 v7.4.0 之前版本,Partitioned Raft KV 引擎在兼容性、稳定性有了进一步的提升。在 v7.4.0 版本中,Partitioned Raft KV 引擎经历了大规模数据测试,确保了对 DM、Dumpling、Lightning、TiCDC 、 BR / PITR 等关键生态组件的兼容性。同时 Partitioned Raft KV 引擎在读写混合工作负载下提供了更为稳定的性能指标,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 Core CPU 搭配 8TB 数据存储,64GB 内存。 + + 尽管仍处于非 GA 阶段,但在 v7.4.0 版本中,Partitioned Raft KV 引擎进一步提升了稳定性和兼容性,使得用户可以更好地进行 POC 和短期性能基准测试。我们将继续努力改进该引擎,以提供更强大、更稳定的功能。更多信息请参考[用户文档](/partitioned-raft-kv.md)。 ### 性能 From 746505cb27bbb958464658788c17d35b30d67972 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 8 Sep 2023 10:10:50 +0800 Subject: [PATCH 025/161] Apply suggestions from code review --- releases/release-7.4.0.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 437877c26a65..da2f96951253 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -26,7 +26,8 @@ TiDB 版本:7.4.0 在资源密集型集群中并行执行 Add Index 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 Add Index 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](链接)。 -* 进一步优化的 Partitioned Raft KV 引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) + +* 进一步优化的 Partitioned Raft KV 引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** 相比之 v7.4.0 之前版本,Partitioned Raft KV 引擎在兼容性、稳定性有了进一步的提升。在 v7.4.0 版本中,Partitioned Raft KV 引擎经历了大规模数据测试,确保了对 DM、Dumpling、Lightning、TiCDC 、 BR / PITR 等关键生态组件的兼容性。同时 Partitioned Raft KV 引擎在读写混合工作负载下提供了更为稳定的性能指标,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 Core CPU 搭配 8TB 数据存储,64GB 内存。 @@ -180,19 +181,11 @@ TiDB 版本:7.4.0 ### 可观测性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) - - 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (CONNECTION_ID) 写入与会话相关的日志内容中,包括 TiDB 日志,慢查询日志,以及 TiKV 上 coprocessor 的慢日志记录。用户可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 +* 向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) **tw@hfxsd** - 除此之外,通过设置会话级变量 [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入),用户可以向上述日志中添加自定义的标识。借助这个能力,把业务识别信息注入日志,从而将日志中的内容与业务关联,把业务到日志的链路打通,降低诊断工作的难度。 + 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (`CONNECTION_ID`) 写入与会话相关的日志内容中,包括 TiDB 日志、慢查询日志、以及 TiKV 上 coprocessor 的慢日志记录。你可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 - 更多信息,请参考[用户文档](/system-variables.md#tidb_session_alias-从-v740-版本开始引入)。 + 除此之外,通过设置会话级变量 [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入),你可以向上述日志中添加自定义的标识。借助这个能力,把业务识别信息注入日志,可以将日志中的内容与业务关联,打通了业务到日志的链路,降低了诊断工作的难度。 ### 安全 From 7f1293517062cb205c7673baaa64483f249ba40f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Sep 2023 10:43:49 +0800 Subject: [PATCH 026/161] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index da2f96951253..d01777d24b9f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -25,7 +25,7 @@ TiDB 版本:7.4.0 在资源密集型集群中并行执行 Add Index 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 Add Index 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 * 进一步优化的 Partitioned Raft KV 引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** @@ -47,7 +47,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** +* 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** 原先用户执行分布式并行执行框架的 Add index 或 import into 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 Add index 或 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 From a12b7fd9ec34e36c575c1ad9250cef8550fb7320 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Sep 2023 16:41:42 +0800 Subject: [PATCH 027/161] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> Co-authored-by: dongmen <20351731+asddongmen@users.noreply.github.com> --- releases/release-7.4.0.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d01777d24b9f..5e52e4ae07be 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -49,7 +49,7 @@ TiDB 版本:7.4.0 * 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** - 原先用户执行分布式并行执行框架的 Add index 或 import into 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 Add index 或 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 + 原先用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序。由于未能从全局的角度进行排序,各个 TiDB 节点间以及节点内部导入的数据之间均有可能存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 更多信息,请参考[用户文档](链接)。 @@ -209,12 +209,19 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 -* IMPORT INTO 支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* import into 功能增强,支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性等特性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 在 v7.4.0 之前,使用 IMPORT INTO 导入数据,会把该任务拆分成多个子任务调度到各个 TiDB 节点并行执行,这些 TiDB 节点,需要准备一块较大的本地磁盘,用于对编码后的索引 kv pairs 以及表 kv Paris 数据进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的表数据和索引数据并行导入到 TiKV,从而提升性能和稳定性。 + 同时还支了配置项 "Split_File" 可将单个大 CSV 文件切分成多个 256 MiB 的 CSV 小文件,提升并发导入的性能。支持导入压缩后的 CSV,SQL 文件,支持以下压缩格式 .gzip, .gz, .zstd, .zst and .snappy 。 更多信息,请参考[用户文档](链接)。 +* TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** + + TiCDC 现在支持与 Pulsar 无缝集成。Pulsar 是一款云原生的分布式消息流平台,它可以提升您的实时数据流体验。借助这一新功能,TiCDC 赋予你轻松捕获和同步 TiDB 变更数据到 Pulsar 的能力,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。TiCDC 目前支持以 `canal-json` 格式同步变更数据。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 + ## 兼容性变更 > **注意:** @@ -351,4 +358,4 @@ TiDB 版本:7.4.0 感谢来自 TiDB 社区的贡献者们: -+ [Contributor 1]() ++ [yumchina](https://github.com/yumchina) From f01ad7c8551dd027a090cc6c89a05e066a6c55b5 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Mon, 11 Sep 2023 18:47:55 +0800 Subject: [PATCH 028/161] Apply suggestions from code review --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 5e52e4ae07be..7f4085721a4f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -275,8 +275,8 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - - 提升 TiFlash 在存算分离架构下的性能和稳定性(实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - - 改进 TiFlash Compact Log 策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + - TiFlash 存算分离架构 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) + - 改进 TiFlash 的写入策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + Tools From c137afa833f04e7ca5e1ba5cf6ab8ef8ed2f3fee Mon Sep 17 00:00:00 2001 From: Flowyi Date: Mon, 11 Sep 2023 18:49:23 +0800 Subject: [PATCH 029/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 7f4085721a4f..4a3ae9a484a0 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -275,7 +275,7 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - - TiFlash 存算分离架构 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) + - TiFlash 存算分离架构正式发布 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) - 改进 TiFlash 的写入策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + Tools From 34f9822ad55e794dbcbc79f58dff1820a7418965 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Mon, 11 Sep 2023 18:50:17 +0800 Subject: [PATCH 030/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 4a3ae9a484a0..916280f2a5bc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -275,7 +275,7 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - - TiFlash 存算分离架构正式发布 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) + - TiFlash 存算分离架构正式发布(GA)[#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) - 改进 TiFlash 的写入策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + Tools From f11d89d47f01df0d68959ad0f0e8da912185a173 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Tue, 12 Sep 2023 10:31:36 +0800 Subject: [PATCH 031/161] Apply suggestions from code review --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 916280f2a5bc..157a07a5005d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -275,8 +275,8 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - - TiFlash 存算分离架构正式发布(GA)[#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) - - 改进 TiFlash 的写入策略,提升随机写入负载下的读性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + - TiFlash 存算分离架构正式发布(GA)[#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) + - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) + Tools From 9e45e08b65901ccc7e817230729dacb9452998af Mon Sep 17 00:00:00 2001 From: 3AceShowHand Date: Tue, 12 Sep 2023 11:19:24 +0800 Subject: [PATCH 032/161] add release note about the claim check functionality. --- releases/release-7.4.0.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 157a07a5005d..ef82090112a1 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -221,7 +221,11 @@ TiDB 版本:7.4.0 TiCDC 现在支持与 Pulsar 无缝集成。Pulsar 是一款云原生的分布式消息流平台,它可以提升您的实时数据流体验。借助这一新功能,TiCDC 赋予你轻松捕获和同步 TiDB 变更数据到 Pulsar 的能力,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。TiCDC 目前支持以 `canal-json` 格式同步变更数据。 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 - + +* TiCDC 支持 Claim-Check 功能,在配置下游为 Kafka 的 Changefeed 的时候,允许用户配置一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大消息,同时一条含有该条大消息在挖不存储中的地址的引用消息,将会被发送到 Kafka,消息消费者在收到了该条引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大消息内容 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) + + 更多信息,请参考[用户文档](链接)。 + ## 兼容性变更 > **注意:** From 7fbab3177522d059186453a05b34fb2e50c86d26 Mon Sep 17 00:00:00 2001 From: Ling Jin <7138436+3AceShowHand@users.noreply.github.com> Date: Tue, 12 Sep 2023 14:15:55 +0800 Subject: [PATCH 033/161] Update releases/release-7.4.0.md Co-authored-by: xixirangrang --- releases/release-7.4.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ef82090112a1..8f7d52ae29b1 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -222,7 +222,9 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 -* TiCDC 支持 Claim-Check 功能,在配置下游为 Kafka 的 Changefeed 的时候,允许用户配置一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大消息,同时一条含有该条大消息在挖不存储中的地址的引用消息,将会被发送到 Kafka,消息消费者在收到了该条引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大消息内容 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) +* TiCDC 支持 Claim-Check 功能 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** + + 在配置下游为 Kafka 的 Changefeed 的时候,你可以配置一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大消息,同时一条含有该条大消息在外部存储中的地址的引用消息,将会被发送到 Kafka,消息消费者在收到了该条引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大消息内容。 更多信息,请参考[用户文档](链接)。 From 90f522742255bc63c04548e2aba78d20fc27add2 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Sep 2023 14:26:19 +0800 Subject: [PATCH 034/161] Apply suggestions from code review Co-authored-by: Lux Co-authored-by: Ling Jin <7138436+3AceShowHand@users.noreply.github.com> --- releases/release-7.4.0.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 8f7d52ae29b1..c88cd6d70d8d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -187,6 +187,12 @@ TiDB 版本:7.4.0 除此之外,通过设置会话级变量 [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入),你可以向上述日志中添加自定义的标识。借助这个能力,把业务识别信息注入日志,可以将日志中的内容与业务关联,打通了业务到日志的链路,降低了诊断工作的难度。 +* TiDB Dashboard 提供表格视图的执行计划 [#1589](https://github.com/pingcap/tidb-dashboard/issues/1589) @[baurine](https://github.com/baurine) **tw@Oreoxmt** + + 在 v7.4.0,TiDB Dashboard 的 Slow Query 页面和 SQL Statement 页面添加了表格视图的执行计划,以为用户提供更好的诊断体验。 + + 更多信息,请参考[用户文档](链接)。 + ### 安全 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -205,7 +211,7 @@ TiDB 版本:7.4.0 * 支持实时更新增量数据校验的 Checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ran-huang** - 在 v7.4.0 之前,使用增量数据校验功能,判断 DM 同步到下游的数据是否和上游是一致的,并以此作为业务流量从上游数据库割接到 TiDB 的判断依据。而增量校验 checkpoint 受同步延迟,不一致的数据等待一段时间后重新校验等机制限制,需要每隔几分钟的时间来刷新校验后的 checkpoint,这在一些割接时间只有几十秒的业务场景是不可接受的,引入该功能后,用户可以传入上游数据库填写的 binlog Postion,一旦增量校验程序在内存里校验到该 binlog Postion 后会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint,从而用户可以根据该立即返回的 checkpoint 来快速地割接。 + 在 v7.4.0 之前,使用增量数据校验功能,判断 DM 同步到下游的数据是否和上游是一致的,并以此作为业务流量从上游数据库割接到 TiDB 的判断依据。而增量校验 checkpoint 受同步延迟,不一致的数据等待一段时间后重新校验等机制限制,需要每隔几分钟的时间来刷新校验后的 checkpoint,这在一些割接时间只有几十秒的业务场景是不可接受的,引入该功能后,用户可以传入上游数据库填写的 binlog Position,一旦增量校验程序在内存里校验到该 binlog Postion 后会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint,从而用户可以根据该立即返回的 checkpoint 来快速地割接。 更多信息,请参考[用户文档](链接)。 @@ -224,7 +230,7 @@ TiDB 版本:7.4.0 * TiCDC 支持 Claim-Check 功能 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** - 在配置下游为 Kafka 的 Changefeed 的时候,你可以配置一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大消息,同时一条含有该条大消息在外部存储中的地址的引用消息,将会被发送到 Kafka,消息消费者在收到了该条引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大消息内容。 + 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以配置一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大消息,同时一条含有该条大消息在外部存储中的地址的引用消息,将会被发送到 Kafka,消息消费者在收到了该条引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大消息内容。 更多信息,请参考[用户文档](链接)。 From 0ed0400931c4d3cc8be7e1c840b7128fde012a14 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Sep 2023 16:12:26 +0800 Subject: [PATCH 035/161] Apply suggestions from code review --- releases/release-7.4.0.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index c88cd6d70d8d..50615f99b3ae 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -21,9 +21,9 @@ TiDB 版本:7.4.0 -* TiDB 引入设置 TiDB Service Scope 的功能,用于选择适用的 TiDB 节点来执行并行的 Add Index 或 `IMPORT INTO` 任务 [#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** +* TiDB 引入设置 TiDB Service Scope 的功能,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务 [#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** - 在资源密集型集群中并行执行 Add Index 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 Add Index 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 + 在资源密集型集群中并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 @@ -87,12 +87,11 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 * 引入自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** - 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加,甚至达到几秒或更长。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 - - TiDB 在 v7.4.0 中引入了一个新参数 [`TIDB_KV_READ_TIMEOUT(N)`](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入),允许用户自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间,单位是毫秒。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。如果同时设置了 Hint 和系统变量,则 Hint 优先级更高。 - - 这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,减少用户体验的不便。更多的信息,请参考[用户文档](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入)。 + 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 + TiDB 在 v7.4.0 中引入了一个新参数 [`TIDB_KV_READ_TIMEOUT(N)`](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。该参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 + + 更多的信息,请参考[用户文档](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入)。 * 部分系统变量可通过优化器提示设置 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** From d1e8e786b5d65a7de7a45fcea475f69a8f08a41e Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 13 Sep 2023 15:15:19 +0800 Subject: [PATCH 036/161] Apply suggestions from code review Co-authored-by: tonyxuqqi --- releases/release-7.4.0.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 50615f99b3ae..4369a052bedb 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -277,7 +277,13 @@ TiDB 版本:7.4.0 + TiKV - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - [内存优化]改进resolver的内存使用,防止OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) + - [内存优化]消除Router对象中的LRUCache,降低内存占用防止OOM[#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) + - [内存优化] 降低TICDC Resolver的内存使用 [#15412] (https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) + - [内存优化] 降低RocksDB compaction带来的内存抖动 [#15324] (https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) + - [内存优化] 降低Partitioned-raft-kv中流控模块的内存占用 [#15269] (https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) + - [PD调用优化]减少PD的MemberList请求[#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) + - [动态调参]增加动态调整rocksdb background_compaction的支持[#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) - note [#issue](链接) @[贡献者 GitHub ID](链接) + PD @@ -325,7 +331,15 @@ TiDB 版本:7.4.0 + TiKV - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - [Titan] 用lightning导入数据,挂起集群然后取消集群后,tikv陷入 CrashLoopBackOff[#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) + - [监控] 修复Thread Voluntary/Nonvoluntary面板没有数据的问题 [#15413] (https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang] (https://github.com/SpadeA-Tang) + - [监控] 修复raftstore-applys一直不断增长的数据错误[#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996] (https://github.com/Connor1996) + - [Jepsen] 修复由于meta数据不正确造成tikv的panic [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan] + - [dr-autosync] 切换sync_recovery到sync之后qps掉0 [#15366] (https://github.com/tikv/tikv/issues/13366) @[nolouch](https://github.com/nolouch) + - [dr-autosync] 当集群以sync-recover模式切换到备用集群后,在线恢复超时 [#15346] (https://github.com/tikv/tikv/issues/15346) @[Connor1996] (https://github.com/Connor1996) + - [内存泄漏] 修复CpuRecord可能的内存泄漏 [#15304] (https://github.com/tikv/tikv/issues/15304) @[overvenus] (https://github.com/overvenus) + - [dr-autosync] 当备用集群关闭后,主集群查询出现9002错误: tikv超时 [#12914] (https://github.com/tikv/tikv/issues/12914) @[Connor1996] (https://github.com/Connor1996) + - [dr-autosync]当主集群恢复后tikv再次启动,dr tikv会卡住 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) - note [#issue](链接) @[贡献者 GitHub ID](链接) + PD From e34155b37fe8dfa69cff887f071ef99f3d7797c0 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 13 Sep 2023 15:33:54 +0800 Subject: [PATCH 037/161] GA of runaway management is postponed --- releases/release-7.4.0.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 4369a052bedb..75718845d511 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -71,14 +71,6 @@ TiDB 版本:7.4.0 ### 稳定性 -* 手动标记资源使用超出预期的查询 GA [#43691](https://github.com/pingcap/tidb/issues/43691) @[Connor1996](https://github.com/Connor1996) @[CabinfeverB](https://github.com/CabinfeverB) **tw@hfxsd** - - 在 v7.2.0 中,TiDB 自动管理资源使用超出预期的查询 (Runaway Query),即自动降级或取消运行时间超出预期的查询。在实际运行时,只依靠规则无法覆盖所有情况。因此,TiDB v7.3.0 新增手动标记查询的功能。利用新增的命令 [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md),你可以根据 SQL 的文本、SQL Digest 或执行计划标记查询,命中的查询可以被降级或取消。在 v7.4.0 中,该特性正式 GA。 - - 手动标记 Runaway Query 的功能为数据库中突发的性能问题提供了有效的干预手段。针对由查询引发的性能问题,在定位根本原因之前,该功能可以快速缓解其对整体性能的影响,从而提升系统服务质量。 - - 更多信息,请参考[用户文档](/tidb-resource-control.md#query-watch-语句说明)。 - * TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 From bfb3e00191aac28dba76371ba1be341814a77709 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 13 Sep 2023 15:40:53 +0800 Subject: [PATCH 038/161] description update for background resource control --- releases/release-7.4.0.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 75718845d511..826283823046 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -117,16 +117,14 @@ TiDB 版本:7.4.0 * 后台任务自动资源管控 (实验特性) [#issue号](链接) @[glorv](https://github.com/glorv) **tw@Oreoxmt** - 数据库集群中存在一些用户不感知的任务,用户对这部分任务的时延并不关注,而这些任务的资源消耗却可能造成系统整体性能的下降。 在新版本中,资源管控加入了对已知低优先级任务的自动管理。 默认情况下,下面任务将以低优先级运行: + 数据库集群中存在一些用户不感知的任务,用户对这部分任务的时延并不关注,而这些任务的资源消耗却可能造成系统整体性能的下降。 在新版本中,资源管控加入了对已知低优先级任务的自动管理。 可以被 - - [统计信息自动更新](/statistics.md#自动更新) - - [`MVCC`](/tidb-storage.md#mvcc) 数据自动清理 - - [`TTL`](/time-to-live.md) 超时数据自动清理 - - 通过对[资源组设定的修改](/sql-statements/sql-statement-alter-resource-group.md),用户还可以主动将下列任务作为低优先级任务运行: - - - 批量数据导入 [`Lightning`](/tidb-lightning/tidb-lightning-overview.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md) - - [DDL 语句](/ddl-introduction.md) + - `lightning` 数据导入:使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 执行导入任务。同时支持 TiDB Lightning 的物理和逻辑导入模式。 + - 数据库备份:使用 [BR](/br/backup-and-restore-overview.md) 执行数据备份和恢复。目前不支持 PITR。 + - DDL 操作:对于 Reorg DDL 生效,控制批量数据回写阶段的资源使用。 + - 统计信息收集:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 + + 默认情况下,后台任务的管理功能处于关闭状态,其行为与之前版本保持一致。用户需要手动对 `default` [资源组的设定做修改](/sql-statements/sql-statement-alter-resource-group.md) 以开启后台任务管理。 对已知后台任务的自动资源管控,降低了低优先级任务对线上业务的性能影响,实现资源的合理分配,大幅提升集群的稳定性。 From a6cbc120b1a1af7a7d574bec47356cb0f40c3199 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 13 Sep 2023 16:35:45 +0800 Subject: [PATCH 039/161] Apply suggestions from code review --- releases/release-7.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 826283823046..1d9b96331958 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -101,9 +101,9 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* TiFlash Pipeline 执行模型正式发布(GA)[#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** +* TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** - 在 v7.2.0 版本中,TiFlash 以实验特性发布了 Pipeline 执行模型。TiFlash 引入 Pipeline 执行模型,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,将正式发布 Pipeline 执行模型。控制该特性是否启用的系统变量 [`tidb_enable_tiflash_pipeline_model`](/system-variables.md#tidb_enable_tiflash_pipeline_model-从-v720-版本开始引入) 的默认值将调整为 `true`,并且作用域调整为 `GLOBAL`。 + 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA)。控制该功能是否启用的系统变量 [`tidb_enable_tiflash_pipeline_model`](/system-variables.md#tidb_enable_tiflash_pipeline_model-从-v720-版本开始引入) 的默认值调整为 `true`,即默认开启,并且作用域调整为 `GLOBAL`。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 @@ -176,9 +176,9 @@ TiDB 版本:7.4.0 除此之外,通过设置会话级变量 [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入),你可以向上述日志中添加自定义的标识。借助这个能力,把业务识别信息注入日志,可以将日志中的内容与业务关联,打通了业务到日志的链路,降低了诊断工作的难度。 -* TiDB Dashboard 提供表格视图的执行计划 [#1589](https://github.com/pingcap/tidb-dashboard/issues/1589) @[baurine](https://github.com/baurine) **tw@Oreoxmt** +* TiDB Dashboard 提供表格视图的执行计划 [#1589](https://github.com/pingcap/tidb-dashboard/issues/1589) @[baurine](https://github.com/baurine) **tw@Oreoxmt** - 在 v7.4.0,TiDB Dashboard 的 Slow Query 页面和 SQL Statement 页面添加了表格视图的执行计划,以为用户提供更好的诊断体验。 + 在 v7.4.0 中,TiDB Dashboard 的 **Slow Query** 页面和 **SQL Statement** 页面提供表格视图的执行计划,以提升用户的诊断体验。 更多信息,请参考[用户文档](链接)。 From d539f236a7942f633f2912b63e1a50ba74d44303 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 13 Sep 2023 16:49:25 +0800 Subject: [PATCH 040/161] Update releases/release-7.4.0.md Co-authored-by: Aolin --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 1d9b96331958..d2ee05ec7bd5 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -103,7 +103,7 @@ TiDB 版本:7.4.0 * TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** - 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA)。控制该功能是否启用的系统变量 [`tidb_enable_tiflash_pipeline_model`](/system-variables.md#tidb_enable_tiflash_pipeline_model-从-v720-版本开始引入) 的默认值调整为 `true`,即默认开启,并且作用域调整为 `GLOBAL`。 + 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。控制该功能是否启用的系统变量从 `tidb_enable_tiflash_pipeline_model` 重命名为 [`tiflash_enable_pipeline_model`](/system-variables.md#tiflash_enable_pipeline_model-从-v740-版本开始引入) 并且作用域从 `SESSION | GLOBAL` 调整为 `GLOBAL`。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 From 36e98c77629be4a38d11ce3c4ff3718ef481a33e Mon Sep 17 00:00:00 2001 From: Ran Date: Thu, 14 Sep 2023 14:51:51 +0800 Subject: [PATCH 041/161] Apply suggestions from code review --- releases/release-7.4.0.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d2ee05ec7bd5..1f2567891065 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -47,15 +47,17 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 引入基于云存储的全局排序能力,提升并行执行的 Add index 或 import into 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** +* 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** - 原先用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务的 TiDB 节点,需要准备一块较大的本地磁盘,用于编码后的索引 kv pairs 以及表数据的 kv Paris 进行排序。由于未能从全局的角度进行排序,各个 TiDB 节点间以及节点内部导入的数据之间均有可能存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的索引数据和表数据并行导入到 TiKV,从而提升性能和稳定性。 + 在 v7.4.0 以前,用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时, TiDB 节点需要准备一块较大的本地磁盘,用于编码后的索引 KV pairs 以及表数据的 KV pairs 的排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要不断进行数据整理 (compaction) 操作,降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 - 更多信息,请参考[用户文档](链接)。 + v7.4.0 引入全局排序特性后,编码后的数据从写入本地并排序,改为了写入云存储并在云存储进行全局排序,然后将经过全局排序的索引数据和表数据并行导入到 TiKV 中,从而提升了性能和稳定性。 + + 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -* 优化 Parallel Multi Schema Change ,提升 1 个 SQL 添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** +* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** - 原先用户使用 Parallel Multi Schema Change 在 1 个 SQL 中提交多个 Add index 操作,性能和多个独立的 SQL 执行 Add index 操作的性能是一样的,优化后,可大幅提升在 1 个 SQL 中添加多个索引的性能。 + 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 ADD INDEX 操作时,性能与使用多个独立的 SQL 语句进行 ADD INDEX 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 更多信息,请参考[用户文档](链接)。 @@ -109,9 +111,9 @@ TiDB 版本:7.4.0 * 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) **tw@ran-huang** - TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。 默认值 `moderate` 维持从前的优化器行为,优化器会利用运行时统计到的数据修改来校正估算。 如果设置为 `determinate`,优化器则不考虑运行时校正,只根据统计信息来生成执行计划。 + TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。默认值 `moderate` 维持从前的优化器行为,即优化器会利用运行时统计到的数据修改来校正估算。如果设置为 `determinate`,优化器则不考虑运行时校正,只根据统计信息来生成执行计划。 - 对于长期稳定的 OLTP 业务,或者如果用户对已有的执行计划非常有把握,则推荐测试后切换到 `determinate` 模式减少执行计划跳变的可能。 + 对于长期稳定的 OLTP 业务,或者如果用户对已有的执行计划非常有把握的情况下,推荐在测试后切换到 `determinate` 模式,减少执行计划跳变的可能。 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 @@ -132,7 +134,7 @@ TiDB 版本:7.4.0 * 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) **tw@ran-huang** - 在 v7.4.0 中,TiDB 加强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。 锁定和解锁统计信息,需要被赋予和收集统计信息相同的权限,操作的安全性得到保障。同时新增支持对特定分区的统计信息进行锁定和解锁操作,功能灵活性得以提升。 当用户数据库中的查询和执行计划有把握,不希望改变,可以利用锁定统计信息来提升统计信息的稳定性。 + 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要与赋予和收集统计信息相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 更多信息,请参考[用户文档](/statistics.md#锁定统计信息)。 @@ -198,9 +200,11 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 -* 支持实时更新增量数据校验的 Checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ran-huang** +* 支持实时更新增量数据校验的 checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ran-huang** + + 在 v7.4.0 之前,使用增量数据校验功能判断 DM 同步到下游的数据是否与上游一致,并以此作为业务流量从上游数据库割接到 TiDB 的依据。然而,由于增量校验 checkpoint 受到较多因素限制,如同步延迟、不一致的数据等待重新校验等,需要每隔几分钟刷新一次校验后的 checkpoint。对于某些割接时间只有几十秒的业务场景来说,这是无法接受的。 - 在 v7.4.0 之前,使用增量数据校验功能,判断 DM 同步到下游的数据是否和上游是一致的,并以此作为业务流量从上游数据库割接到 TiDB 的判断依据。而增量校验 checkpoint 受同步延迟,不一致的数据等待一段时间后重新校验等机制限制,需要每隔几分钟的时间来刷新校验后的 checkpoint,这在一些割接时间只有几十秒的业务场景是不可接受的,引入该功能后,用户可以传入上游数据库填写的 binlog Position,一旦增量校验程序在内存里校验到该 binlog Postion 后会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint,从而用户可以根据该立即返回的 checkpoint 来快速地割接。 + 引入实时更新增量数据校验的 checkpoint 后,用户可以传入上游数据库填写的 binlog position,一旦增量校验程序在内存里校验到该 binlog postion 后,会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint。因此,用户可以根据该立即返回的 checkpoint 来快速进行割接操作。 更多信息,请参考[用户文档](链接)。 @@ -219,7 +223,7 @@ TiDB 版本:7.4.0 * TiCDC 支持 Claim-Check 功能 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** - 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以配置一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大消息,同时一条含有该条大消息在外部存储中的地址的引用消息,将会被发送到 Kafka,消息消费者在收到了该条引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大消息内容。 + 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大型消息,并将包含该大型消息在外部存储中的地址的一条引用消息发送到 Kafka。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大型消息内容。 更多信息,请参考[用户文档](链接)。 From 299b235020f6fe80116141a3b764753773af514f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 14 Sep 2023 15:38:30 +0800 Subject: [PATCH 042/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 1f2567891065..e8d64648dfca 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -210,10 +210,14 @@ TiDB 版本:7.4.0 * import into 功能增强,支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性等特性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 在 v7.4.0 之前,使用 IMPORT INTO 导入数据,会把该任务拆分成多个子任务调度到各个 TiDB 节点并行执行,这些 TiDB 节点,需要准备一块较大的本地磁盘,用于对编码后的索引 kv pairs 以及表 kv Paris 数据进行排序,如果磁盘空间不够大,各个 TiDB 节点本地编码排序后的数据之间会存在 overlap 的情况,导致把这些 kv pairs 导入 TiKV 时,TiKV 需要不断地进行 compaction ,降低了执行 import into 的性能和稳定性。引入该特性后,编码后的数据从写入本地并排序改成写入云存储并在云存储进行全局排序,之后将全局排序后的表数据和索引数据并行导入到 TiKV,从而提升性能和稳定性。 - 同时还支了配置项 "Split_File" 可将单个大 CSV 文件切分成多个 256 MiB 的 CSV 小文件,提升并发导入的性能。支持导入压缩后的 CSV,SQL 文件,支持以下压缩格式 .gzip, .gz, .zstd, .zst and .snappy 。 - - 更多信息,请参考[用户文档](链接)。 + 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/....md),提升性能和稳定性。 + + 此外,在 v7.4.0 中,`IMPORT INTO` 还引入了以下功能: + + - 支持配置 `Split_File` 选项,可将单个大 CSV 文件切分成多个 256 MiB 的小 CSV 文件进行并行处理,提升导入性能。 + - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy` 。` +· + 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** From 5ee2e1197ac6a7e5c1ea4580a88da5a08bfd11e8 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Thu, 14 Sep 2023 17:51:07 +0800 Subject: [PATCH 043/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e8d64648dfca..277aea82add0 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -32,6 +32,15 @@ TiDB 版本:7.4.0 相比之 v7.4.0 之前版本,Partitioned Raft KV 引擎在兼容性、稳定性有了进一步的提升。在 v7.4.0 版本中,Partitioned Raft KV 引擎经历了大规模数据测试,确保了对 DM、Dumpling、Lightning、TiCDC 、 BR / PITR 等关键生态组件的兼容性。同时 Partitioned Raft KV 引擎在读写混合工作负载下提供了更为稳定的性能指标,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 Core CPU 搭配 8TB 数据存储,64GB 内存。 尽管仍处于非 GA 阶段,但在 v7.4.0 版本中,Partitioned Raft KV 引擎进一步提升了稳定性和兼容性,使得用户可以更好地进行 POC 和短期性能基准测试。我们将继续努力改进该引擎,以提供更强大、更稳定的功能。更多信息请参考[用户文档](/partitioned-raft-kv.md)。 + + * TiFlash 存算分离架构正式发布 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + + 在 v7.0.0 版本,TiFlash 以实验特性发布了存算分离架构。经过持续改进,从 v7.4.0 版本开始,TiFlash 正式支持存算分离架构。 + 在存算分离架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并使用兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 + 存算一体或者存算分离架构下,TiFlash 的使用方式保持一致,包括创建 TiFlash 副本、查询、指定优化器 HINT 等。 + 注意:TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 @@ -45,8 +54,6 @@ TiDB 版本:7.4.0 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 - 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 - * 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** 在 v7.4.0 以前,用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时, TiDB 节点需要准备一块较大的本地磁盘,用于编码后的索引 KV pairs 以及表数据的 KV pairs 的排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要不断进行数据整理 (compaction) 操作,降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 @@ -79,6 +86,7 @@ TiDB 版本:7.4.0 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 + * 引入自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 @@ -290,8 +298,7 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - - TiFlash 存算分离架构正式发布(GA)[#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) - - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) + - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + Tools From f9f3372a0099312a74f0ae590a873c47ca776c74 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 15 Sep 2023 09:07:17 +0800 Subject: [PATCH 044/161] Apply suggestions from code review --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 277aea82add0..8f74a514ae13 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -68,9 +68,9 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 -* 支持缓存非 Prepare 语句的执行计划(GA)[#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** +* 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** - 自 v7.4.0,非 Prepare 语句的执行计划缓存基本可用。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 + TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。在 v7.1.0 中,该功能正式 GA。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 为了保持数据库行为向前兼容,非 Prepare 语句的执行计划缓存默认关闭,用户可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 按需打开,并通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 From 9f94e83c6dfe983a6cf84a424c686fa6d3db3b94 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 15 Sep 2023 10:54:21 +0800 Subject: [PATCH 045/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 8f74a514ae13..01cf9f8aac56 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -33,26 +33,27 @@ TiDB 版本:7.4.0 尽管仍处于非 GA 阶段,但在 v7.4.0 版本中,Partitioned Raft KV 引擎进一步提升了稳定性和兼容性,使得用户可以更好地进行 POC 和短期性能基准测试。我们将继续努力改进该引擎,以提供更强大、更稳定的功能。更多信息请参考[用户文档](/partitioned-raft-kv.md)。 - * TiFlash 存算分离架构正式发布 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** - 在 v7.0.0 版本,TiFlash 以实验特性发布了存算分离架构。经过持续改进,从 v7.4.0 版本开始,TiFlash 正式支持存算分离架构。 - 在存算分离架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并使用兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 - 存算一体或者存算分离架构下,TiFlash 的使用方式保持一致,包括创建 TiFlash 副本、查询、指定优化器 HINT 等。 - 注意:TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 + 在 v7.0.0 中,TiFlash 以实验特性引入了存算分离架构。经过一系列的改进,从 v7.4.0 起,TiFlash 正式支持存算分离架构。 + + 在存算分离架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并使用兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。在存算分离架构下,TiFlash 的使用方式与存算一体架构一致,例如创建 TiFlash 副本、查询、指定优化器 Hint 等。 + + 需要注意的是,TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 -* 新增支持下推[运算符](/functions-and-operators/expressions-pushed-down.md)到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** +* 支持下推 JSON [运算符](/functions-and-operators/expressions-pushed-down.md) `MEMBER OF` 到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** * `value MEMBER OF(json_array)` - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/functions-and-operators/expressions-pushed-down.md)。 -* 支持下推包含任何帧定义的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** +* 支持下推包含任意帧定义类型的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** - 在 v7.4.0 之前的版本中,TiFlash 不支持包含 PRECEDING 或 FOLLOWING 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,会自动下推至 TiFlash 执行。 + 在 v7.4.0 之前的版本中,TiFlash 不支持包含 `PRECEDING` 或 `FOLLOWING` 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,包含帧定义的窗口函数会自动下推至 TiFlash 执行。 * 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** @@ -80,13 +81,15 @@ TiDB 版本:7.4.0 ### 稳定性 -* TiFlash 引擎支持查询级别数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** +* TiFlash 引擎支持查询级别的数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** - 在 v7.0.0 版本中,TiFlash 支持 `GROUP BY`,`ORDER BY`,`JOIN` 三种算子的数据落盘功能,以避免数据量超过内存总大小时,TiFlash 会终止查询甚至系统崩溃的问题。控制单个算子的数据落盘,对于用户并不友好,在实际使用中,无法有效的进行整体资源控制。 - 在 v7.4.0 版本中,TiFlash 支持查询级别数据落盘功能。通过设定单个查询在单个 TiFlash 节点使用内存的上限[`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值[`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),可以方便的控制单个查询的内存使用,更好的管控 TiFlash 内存资源。 + 从 v7.0.0 起,TiFlash 支持控制 `GROUP BY`、`ORDER BY`、`JOIN` 这三种算子的数据落盘功能,避免数据量超过内存总大小时,导致查询终止甚至系统崩溃的问题。然而,单独控制每个算子的落盘较为麻烦,也无法有效进行整体资源控制。 + + 在 v7.4.0 中,TiFlash 引入了查询级别数的据落盘功能。通过设置单个查询在单个 TiFlash 节点使用内存的上限 [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值 [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),你可以方便地控制单个查询的内存使用,更好地管控 TiFlash 内存资源。 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 + * 引入自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 @@ -162,7 +165,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/partitioned-table.md#分区管理)。 -* TiDB 支持 ROLLUP 修饰符 和 GROUPING 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** +* TiDB 支持 ROLLUP 修饰符和 GROUPING 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** 在 v7.4.0 之前,TiDB 不支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符和 GROUPING 函数是数据分析中常用的功能,用于对数据进行分级汇总。从 v7.4.0 开始,TiDB 支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符的使用方式为:`SELECT ... FROM ... GROUP BY ... WITH ROLLUP` From ebdce8f8135325fdcf806279a43923342aa465b1 Mon Sep 17 00:00:00 2001 From: Yuanjia Zhang Date: Fri, 15 Sep 2023 11:39:49 +0800 Subject: [PATCH 046/161] Update releases/release-7.4.0.md Co-authored-by: Roger Song --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 01cf9f8aac56..820d2f6997ea 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -73,7 +73,7 @@ TiDB 版本:7.4.0 TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。在 v7.1.0 中,该功能正式 GA。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 - 为了保持数据库行为向前兼容,非 Prepare 语句的执行计划缓存默认关闭,用户可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 按需打开,并通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 + 对于不依赖非 Prepare 语句执行计划缓存的客户,开启缓存会引入少量性能回退,因此非 Prepare 语句的执行计划缓存从 7.4.0 开始默认关闭,用户可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 按需打开,并通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 此外,该功能暂时不对 DML 语句生效,对 SQL 的模式也有一定的限制,具体参见[使用限制](/sql-non-prepared-plan-cache.md#限制)。 From 8fff8cd306baa241fdea7306406548510e25c4f8 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Sep 2023 14:37:25 +0800 Subject: [PATCH 047/161] Update releases/release-7.4.0.md Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-7.4.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 820d2f6997ea..ffcefcfe2085 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -229,7 +229,11 @@ TiDB 版本:7.4.0 - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy` 。` · 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 +Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#issue](https:// ) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** +在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 + + 更多信息,请参考[用户文档](链接)。 * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** TiCDC 现在支持与 Pulsar 无缝集成。Pulsar 是一款云原生的分布式消息流平台,它可以提升您的实时数据流体验。借助这一新功能,TiCDC 赋予你轻松捕获和同步 TiDB 变更数据到 Pulsar 的能力,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。TiCDC 目前支持以 `canal-json` 格式同步变更数据。 From 1b5408817ebe0b5171fca8b1ada59a0e98f3bb9e Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Sep 2023 14:47:20 +0800 Subject: [PATCH 048/161] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-7.4.0.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ffcefcfe2085..62ff0b6d9c42 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -229,9 +229,10 @@ TiDB 版本:7.4.0 - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy` 。` · 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 -Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#issue](https:// ) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** + +* Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#issue](https:// ) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** -在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 + 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 更多信息,请参考[用户文档](链接)。 * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** @@ -275,7 +276,7 @@ Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#iss | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| -| | | 新增/删除/修改 | | +| Dumpling | `--csv-line-terminator` | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | From 6af4a81cb004a07d2bb2ee76b6c0c7d72bc55504 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Sep 2023 16:21:09 +0800 Subject: [PATCH 049/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 62ff0b6d9c42..991e324b2afd 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -235,6 +235,7 @@ TiDB 版本:7.4.0 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 更多信息,请参考[用户文档](链接)。 + * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** TiCDC 现在支持与 Pulsar 无缝集成。Pulsar 是一款云原生的分布式消息流平台,它可以提升您的实时数据流体验。借助这一新功能,TiCDC 赋予你轻松捕获和同步 TiDB 变更数据到 Pulsar 的能力,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。TiCDC 目前支持以 `canal-json` 格式同步变更数据。 From b9660e39f29a16adefd6edb42c5d02ff78d41ccf Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 18 Sep 2023 18:12:45 +0800 Subject: [PATCH 050/161] Apply suggestions from code review --- releases/release-7.4.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 991e324b2afd..10ab29eee05f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -27,11 +27,13 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 -* 进一步优化的 Partitioned Raft KV 引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** +* 增强 Partitioned Raft KV 存储引擎(实验特性)[#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** - 相比之 v7.4.0 之前版本,Partitioned Raft KV 引擎在兼容性、稳定性有了进一步的提升。在 v7.4.0 版本中,Partitioned Raft KV 引擎经历了大规模数据测试,确保了对 DM、Dumpling、Lightning、TiCDC 、 BR / PITR 等关键生态组件的兼容性。同时 Partitioned Raft KV 引擎在读写混合工作负载下提供了更为稳定的性能指标,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 Core CPU 搭配 8TB 数据存储,64GB 内存。 + TiDB v6.6.0 引入了 Partitioned Raft KV 存储引擎作为实验特性,该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,每个 Region 的数据都独立存储在单独的 RocksDB 实例中。 - 尽管仍处于非 GA 阶段,但在 v7.4.0 版本中,Partitioned Raft KV 引擎进一步提升了稳定性和兼容性,使得用户可以更好地进行 POC 和短期性能基准测试。我们将继续努力改进该引擎,以提供更强大、更稳定的功能。更多信息请参考[用户文档](/partitioned-raft-kv.md)。 + 在 TiDB v7.4.0 中,Partitioned Raft KV 引擎在兼容性和稳定性方面得到了了进一步的提升。通过大规模数据测试,确保了 Partitioned Raft KV 引擎与 DM、Dumpling、TiDB Lightning、TiCDC、BR、PITR 等关键生态组件或功能的兼容性。同时,在读写混合工作负载下,Partitioned Raft KV 引擎提供了更稳定的性能,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 core CPU,可搭配 8 TB 数据存储和 64 GB 内存。 + + 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** From 60c86218dcb304c4c5446b4f880bb015cc56e9b5 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 18 Sep 2023 18:57:56 +0800 Subject: [PATCH 051/161] Apply suggestions from code review --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 10ab29eee05f..8cc228e0532c 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -31,7 +31,7 @@ TiDB 版本:7.4.0 TiDB v6.6.0 引入了 Partitioned Raft KV 存储引擎作为实验特性,该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,每个 Region 的数据都独立存储在单独的 RocksDB 实例中。 - 在 TiDB v7.4.0 中,Partitioned Raft KV 引擎在兼容性和稳定性方面得到了了进一步的提升。通过大规模数据测试,确保了 Partitioned Raft KV 引擎与 DM、Dumpling、TiDB Lightning、TiCDC、BR、PITR 等关键生态组件或功能的兼容性。同时,在读写混合工作负载下,Partitioned Raft KV 引擎提供了更稳定的性能,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 core CPU,可搭配 8 TB 数据存储和 64 GB 内存。 +在 TiDB v7.4.0 中,Partitioned Raft KV 引擎在兼容性和稳定性方面得到了进一步提升。通过大规模数据测试,确保了 Partitioned Raft KV 引擎与 DM、Dumpling、TiDB Lightning、TiCDC、BR、PITR 等关键生态组件或功能的兼容性。同时,在读写混合工作负载下,Partitioned Raft KV 引擎提供了更稳定的性能,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 core CPU,并可搭配 8 TB 的数据存储和 64 GB 的内存。 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 From 69fbb8bb705496c38dbea57f604d1c52cb316109 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 19 Sep 2023 14:18:09 +0800 Subject: [PATCH 052/161] Apply suggestions from code review --- releases/release-7.4.0.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 8cc228e0532c..ba6932fc0786 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -73,11 +73,11 @@ TiDB 版本:7.4.0 * 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** - TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。在 v7.1.0 中,该功能正式 GA。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 + TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。在 v7.4.0 中,该功能正式 GA。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 - 对于不依赖非 Prepare 语句执行计划缓存的客户,开启缓存会引入少量性能回退,因此非 Prepare 语句的执行计划缓存从 7.4.0 开始默认关闭,用户可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 按需打开,并通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 + 开启非 Prepare 语句执行计划缓存可能会带来额外的内存和 CPU 开销,并不一定适用于所有场景。从 v7.4.0 开始,非 Prepare 语句的执行计划缓存默认关闭。你可以通过系统变量 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 控制是否开启该功能并通过 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。 - 此外,该功能暂时不对 DML 语句生效,对 SQL 的模式也有一定的限制,具体参见[使用限制](/sql-non-prepared-plan-cache.md#限制)。 + 此外,该功能默认不支持 DML 语句,对 SQL 的模式也有一定的限制,具体参见[使用限制](/sql-non-prepared-plan-cache.md#限制)。 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 @@ -100,11 +100,11 @@ TiDB 版本:7.4.0 更多的信息,请参考[用户文档](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入)。 -* 部分系统变量可通过优化器提示设置 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** +* 支持通过优化器提示临时修改部分系统变量的值 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - TiDB 新增支持了 MySQL 8.0 相似的优化器提示 [`SET_VAR()`]()。 通过在 SQL 添加 hint `SET_VAR()`,能够在语句运行过程中临时修改部分系统变量,达到针对不同语句设置环境的目的。 比如主动提升高消耗的 SQL 的并行度,或者利用变量修改优化器行为。 + TiDB v7.4.0 新增支持与 MySQL 8.0 相似的优化器提示 `SET_VAR()`。通过在 SQL 语句中添加 Hint `SET_VAR()`,可以在语句运行过程中临时修改部分系统变量,以针对不同语句设置环境。例如,可以主动提升高消耗 SQL 的并行度,或者通过变量修改优化器行为。 - 支持修改的系统变量请参考[用户文档](/system-variables.md),不建议在提示中设置文档中没有明确支持的变量,可能造成不可预知的结果。 + 支持使用 Hint `SET_VAR()` 修改的系统变量请参考[系统变量](/system-variables.md)。强烈建议不要利用此 Hint 修改没有明确支持的变量,这可能会引发不可预知的行为。 更多信息,请参考[用户文档](/optimizer-hints.md)。 @@ -130,18 +130,18 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 -* 后台任务自动资源管控 (实验特性) [#issue号](链接) @[glorv](https://github.com/glorv) **tw@Oreoxmt** +* 资源管控支持自动管理后台任务(实验特性)[#issue号](链接) @[glorv](https://github.com/glorv) **tw@Oreoxmt** - 数据库集群中存在一些用户不感知的任务,用户对这部分任务的时延并不关注,而这些任务的资源消耗却可能造成系统整体性能的下降。 在新版本中,资源管控加入了对已知低优先级任务的自动管理。 可以被 - - - `lightning` 数据导入:使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 执行导入任务。同时支持 TiDB Lightning 的物理和逻辑导入模式。 - - 数据库备份:使用 [BR](/br/backup-and-restore-overview.md) 执行数据备份和恢复。目前不支持 PITR。 - - DDL 操作:对于 Reorg DDL 生效,控制批量数据回写阶段的资源使用。 - - 统计信息收集:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 - - 默认情况下,后台任务的管理功能处于关闭状态,其行为与之前版本保持一致。用户需要手动对 `default` [资源组的设定做修改](/sql-statements/sql-statement-alter-resource-group.md) 以开启后台任务管理。 + 后台任务是指那些优先级不高但是需要消耗大量资源的任务,如数据备份和自动统计信息收集等。这些任务通常定期或不定期触发,在执行的时候会消耗大量资源,从而影响在线的高优先级任务的性能。在 TiDB v7.4.0 中,资源管控引入了对后台任务的自动管理。该功能有助于降低低优先级任务对在线业务的性能影响,实现资源的合理分配,大幅提升集群的稳定性。 + + 目前 TiDB 支持如下几种后台任务的类型: + + - `lightning`:使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 执行导入任务。同时支持 TiDB Lightning 的物理和逻辑导入模式。 + - `br`:使用 [BR](/br/backup-and-restore-overview.md) 执行数据备份和恢复。目前不支持 PITR。 + - `ddl`:对于 Reorg DDL,控制批量数据回写阶段的资源使用。 + - `analyze`:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 - 对已知后台任务的自动资源管控,降低了低优先级任务对线上业务的性能影响,实现资源的合理分配,大幅提升集群的稳定性。 + 默认情况下,被标记为后台任务的任务类型为空,此时后台任务的管理功能处于关闭状态,其行为与 TiDB v7.4.0 之前版本保持一致。你需要手动修改 `default` 资源组的后台任务类型以开启后台任务管理。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 From 14bbfa6e294db8ff66732bb40d35df2a0e234dd2 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 19 Sep 2023 15:19:34 +0800 Subject: [PATCH 053/161] Apply suggestions from code review --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ba6932fc0786..3669187a229f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -177,9 +177,9 @@ TiDB 版本:7.4.0 * 新增排序规则 `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin` [#37566](https://github.com/pingcap/tidb/issues/37566) @[YangKeao](https://github.com/YangKeao) @[zimulala](https://github.com/zimulala) @[bb7133](https://github.com/bb7133) **tw@Oreoxmt** - TiDB 在新版本中增强了从 MySQL 8.0 迁移的支持。新增两个排序规则 (Collation) `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin`, 其中 `utf8mb4_0900_ai_ci` 为 MySQL 8.0 的默认排序规则。 + TiDB v7.4.0 增强了从 MySQL 8.0 迁移数据的支持。新增两个排序规则 (Collation) `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin`。其中 `utf8mb4_0900_ai_ci` 为 MySQL 8.0 的默认排序规则。 - 同时新增支持 MySQL 8.0 兼容的系统变量 [`default_collation_for_utf8mb4`](),允许用户为 utf8mb4 字符集选择默认排序方式,兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 + 同时新增支持 MySQL 8.0 兼容的系统变量 `default_collation_for_utf8mb4`,允许用户为 utf8mb4 字符集指定默认的排序方式,以兼容从 MySQL 5.7 或之前版本迁移或数据复制的场景。 更多信息,请参考[用户文档](/character-set-and-collation#支持的字符集和排序规则)。 From a1ae5ec95b176f006549a52204889c047efe5733 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 19 Sep 2023 17:19:18 +0800 Subject: [PATCH 054/161] Update release-7.4.0.md update pipeline, remove variable --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 3669187a229f..8eccd7959418 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -118,7 +118,7 @@ TiDB 版本:7.4.0 * TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** - 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。控制该功能是否启用的系统变量从 `tidb_enable_tiflash_pipeline_model` 重命名为 [`tiflash_enable_pipeline_model`](/system-variables.md#tiflash_enable_pipeline_model-从-v740-版本开始引入) 并且作用域从 `SESSION | GLOBAL` 调整为 `GLOBAL`。 + 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。由于该功能和 TiFlash 资源管控特性相互依赖,因此移除之前版本中的用于控制功能是否启用的变量,该功能将和 TiFlash 资源管控特性同时启用或者禁用。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 From 4612e40fa883b705118d2a69d30734b25d8ccf67 Mon Sep 17 00:00:00 2001 From: Ran Date: Wed, 20 Sep 2023 15:07:52 +0800 Subject: [PATCH 055/161] Apply suggestions from code review --- releases/release-7.4.0.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 8eccd7959418..0ddf014d6216 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -59,15 +59,15 @@ TiDB 版本:7.4.0 * 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** - 在 v7.4.0 以前,用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时, TiDB 节点需要准备一块较大的本地磁盘,用于编码后的索引 KV pairs 以及表数据的 KV pairs 的排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要不断进行数据整理 (compaction) 操作,降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 + 在 v7.4.0 以前,当用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时,TiDB 节点需要准备一块较大的本地磁盘,对编码后的索引 KV pairs 和表数据 KV pairs 进行排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要不断进行数据整理 (compaction) 操作,降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 - v7.4.0 引入全局排序特性后,编码后的数据从写入本地并排序,改为了写入云存储并在云存储进行全局排序,然后将经过全局排序的索引数据和表数据并行导入到 TiKV 中,从而提升了性能和稳定性。 + v7.4.0 引入全局排序特性后,编码后的数据不再写入本地进行排序,而是写入云存储,并在云存储中进行全局排序。然后,TiDB 将经过全局排序的索引数据和表数据并行导入到 TiKV 中,从而提升了性能和稳定性。 更多信息,请参考[用户文档](/tidb-global-sort.md)。 * 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** - 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 ADD INDEX 操作时,性能与使用多个独立的 SQL 语句进行 ADD INDEX 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 + 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 `ADD INDEX` 操作时,其性能与使用多个独立的 SQL 语句进行 `ADD INDEX` 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 更多信息,请参考[用户文档](链接)。 @@ -124,7 +124,7 @@ TiDB 版本:7.4.0 * 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) **tw@ran-huang** - TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。默认值 `moderate` 维持从前的优化器行为,即优化器会利用运行时统计到的数据修改来校正估算。如果设置为 `determinate`,优化器则不考虑运行时校正,只根据统计信息来生成执行计划。 + TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。默认值 `moderate` 维持从前的优化器行为,即优化器会利用运行时统计到的数据修改来校正估算。如果设置为 `determinate`,则优化器不考虑运行时校正,只根据统计信息来生成执行计划。 对于长期稳定的 OLTP 业务,或者如果用户对已有的执行计划非常有把握的情况下,推荐在测试后切换到 `determinate` 模式,减少执行计划跳变的可能。 @@ -147,7 +147,7 @@ TiDB 版本:7.4.0 * 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) **tw@ran-huang** - 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要与赋予和收集统计信息相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 + 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要赋予与收集统计信息 (`ANALYZE TABLE`) 相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 更多信息,请参考[用户文档](/statistics.md#锁定统计信息)。 @@ -215,9 +215,9 @@ TiDB 版本:7.4.0 * 支持实时更新增量数据校验的 checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ran-huang** - 在 v7.4.0 之前,使用增量数据校验功能判断 DM 同步到下游的数据是否与上游一致,并以此作为业务流量从上游数据库割接到 TiDB 的依据。然而,由于增量校验 checkpoint 受到较多因素限制,如同步延迟、不一致的数据等待重新校验等,需要每隔几分钟刷新一次校验后的 checkpoint。对于某些割接时间只有几十秒的业务场景来说,这是无法接受的。 + 在 v7.4.0 之前,你可以使用[增量数据校验功能](/dm/dm-continuous-data-validation.md)来判断 DM 同步到下游的数据是否与上游一致,并以此作为业务流量从上游数据库割接到 TiDB 的依据。然而,由于增量校验 checkpoint 受到较多限制,如同步延迟、不一致的数据等待重新校验等因素,需要每隔几分钟刷新一次校验后的 checkpoint。对于某些只有几十秒割接时间的业务场景来说,这是无法接受的。 - 引入实时更新增量数据校验的 checkpoint 后,用户可以传入上游数据库填写的 binlog position,一旦增量校验程序在内存里校验到该 binlog postion 后,会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint。因此,用户可以根据该立即返回的 checkpoint 来快速进行割接操作。 + v7.4.0 引入实时更新增量数据校验的 checkpoint 后,你可以传入上游数据库填写的 binlog position。一旦增量校验程序在内存里校验到该 binlog postion,会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint。因此,用户可以根据该立即返回的 checkpoint 来快速进行割接操作。 更多信息,请参考[用户文档](链接)。 @@ -244,9 +244,9 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 -* TiCDC 支持 Claim-Check 功能 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** +* TiCDC 支持 Claim-Check 功能,改进对大型消息的处理 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** - 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大型消息,并将包含该大型消息在外部存储中的地址的一条引用消息发送到 Kafka。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大型消息内容。 + 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大型消息,并将一条包含该大型消息在外部存储中的地址的引用消息发送到 Kafka。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大型消息内容。 更多信息,请参考[用户文档](链接)。 From 62503b889b3fc9ae862138186ad7c98a5817f5ac Mon Sep 17 00:00:00 2001 From: Ran Date: Thu, 21 Sep 2023 11:28:08 +0800 Subject: [PATCH 056/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 0ddf014d6216..1c699c1a0813 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -246,7 +246,7 @@ TiDB 版本:7.4.0 * TiCDC 支持 Claim-Check 功能,改进对大型消息的处理 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** - 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储消息大小超过 Kafka 消息尺寸限制 (`max.message.bytes`) 的大型消息,并将一条包含该大型消息在外部存储中的地址的引用消息发送到 Kafka。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的大型消息内容。 + 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小 (`max.message.bytes`) 的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储超过 Kafka 限制的大型消息,并将一条包含该大型消息在外部存储中的地址的引用消息发送到 Kafka。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的消息内容。 更多信息,请参考[用户文档](链接)。 From af78e43d35c03fe58669c2b147ce1167e689d72e Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 21 Sep 2023 15:27:43 +0800 Subject: [PATCH 057/161] Apply suggestions from code review --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 1c699c1a0813..b7d3d9e77e11 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -110,9 +110,9 @@ TiDB 版本:7.4.0 * TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** - TiDB 在 v7.1.0 中正式发布了基于资源组的资源管控特性,但是这个特性还不包含 TiFlash。在 v7.4.0 中,TiFlash 支持了资源管控特性,完善了整体 TiDB 的资源管控能力。TiFlash 的资源管控和已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB/TiKV/TiFlash 中的资源。 + 在 TiDB v7.1.0 中,资源管控成为正式功能,提供对 TiDB 和 TiKV 的资源管理能力。在 v7.4.0 中,TiFlash 支持资源管控特性,完善了 TiDB 整体的资源管控能力。TiFlash 的资源管控与已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB、TiKV 和 TiFlash 中的资源。 - 通过 TiFlash 配置参数 `enable_resource_control` 启用 TiFlash 资源管控特性后,TiFlash 将根据 TiDB 的资源组配置,进行资源调度管理,确保整体资源的合理分配使用。 + 通过配置 TiFlash 参数 `enable_resource_control`,你可以控制是否开启 TiFlash 资源管控特性。开启后,TiFlash 将根据 TiDB 的资源组配置进行资源调度管理,确保整体资源的合理分配和使用。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 From 96104ae5b563ea1039b19f5a0237b3612de13d8a Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 21 Sep 2023 15:53:16 +0800 Subject: [PATCH 058/161] fix format --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index b7d3d9e77e11..2446cf49802f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -31,7 +31,7 @@ TiDB 版本:7.4.0 TiDB v6.6.0 引入了 Partitioned Raft KV 存储引擎作为实验特性,该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,每个 Region 的数据都独立存储在单独的 RocksDB 实例中。 -在 TiDB v7.4.0 中,Partitioned Raft KV 引擎在兼容性和稳定性方面得到了进一步提升。通过大规模数据测试,确保了 Partitioned Raft KV 引擎与 DM、Dumpling、TiDB Lightning、TiCDC、BR、PITR 等关键生态组件或功能的兼容性。同时,在读写混合工作负载下,Partitioned Raft KV 引擎提供了更稳定的性能,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 core CPU,并可搭配 8 TB 的数据存储和 64 GB 的内存。 + 在 TiDB v7.4.0 中,Partitioned Raft KV 引擎在兼容性和稳定性方面得到了进一步提升。通过大规模数据测试,确保了 Partitioned Raft KV 引擎与 DM、Dumpling、TiDB Lightning、TiCDC、BR、PITR 等关键生态组件或功能的兼容性。同时,在读写混合工作负载下,Partitioned Raft KV 引擎提供了更稳定的性能,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 core CPU,并可搭配 8 TB 的数据存储和 64 GB 的内存。 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 From ccbf9e1116bd9dc1b30f96c8c7616d7098e06a6c Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Thu, 21 Sep 2023 16:13:32 +0800 Subject: [PATCH 059/161] Update releases/release-7.4.0.md Co-authored-by: Aolin --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 2446cf49802f..f4e7b6ea9f32 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -118,7 +118,7 @@ TiDB 版本:7.4.0 * TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** - 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。由于该功能和 TiFlash 资源管控特性相互依赖,因此移除之前版本中的用于控制功能是否启用的变量,该功能将和 TiFlash 资源管控特性同时启用或者禁用。 + 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。由于该功能与 TiFlash 资源管控特性相互依赖,TiDB v7.4.0 移除了之前版本中用于控制是否启用 Pipeline 执行模型的变量 `tidb_enable_tiflash_pipeline_model`,你可以通过 TiFlash 参数 `tidb_enable_resource_control` 同时开启或关闭 Pipeline 执行模型和 TiFlash 资源管控特性。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 From e430740d1e842652ab62440ecdeec61fdf5d2b3f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 22 Sep 2023 10:51:03 +0800 Subject: [PATCH 060/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f4e7b6ea9f32..f12738ca05b9 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -221,7 +221,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 -* import into 功能增强,支持对导入的数据通过云存储进行全局排序提升导入性能和稳定性等特性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 增强 `IMPORT INTO` 功能,支持对导入的数据通过云存储进行全局排序,并提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/....md),提升性能和稳定性。 From d9fd56966bb26f7d48ffde9dcd5f5603e9bd9bad Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 22 Sep 2023 10:52:09 +0800 Subject: [PATCH 061/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f12738ca05b9..faf244e7abd2 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -221,7 +221,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 -* 增强 `IMPORT INTO` 功能,支持对导入的数据通过云存储进行全局排序,并提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 增强 `IMPORT INTO` 功能,支持对导入的数据通过云存储进行全局排序(实验特性),并提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/....md),提升性能和稳定性。 From 6d5c0f1cdbe0709645b2b98b723094a1aa8cb0be Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Sep 2023 15:51:47 +0800 Subject: [PATCH 062/161] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> Co-authored-by: Roger Song --- releases/release-7.4.0.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index faf244e7abd2..ec6ccefff2f8 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -21,9 +21,9 @@ TiDB 版本:7.4.0 -* TiDB 引入设置 TiDB Service Scope 的功能,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务 [#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** +* TiDB 引入设置 TiDB Service Scope 的功能,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** - 在资源密集型集群中并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 + 在资源密集型集群中并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能作为实验特性,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 @@ -207,9 +207,11 @@ TiDB 版本:7.4.0 ### 数据迁移 -* Data Migration (DM) 支持拦截不兼容(破坏数据一致性)的 DDL 变更 [#9692](https://github.com/pingcap/tiflow/issues/9692) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** +* Data Migration (DM) 支持拦截不兼容(破坏数据一致性)的 DDL 变更(实验特性) [#9692](https://github.com/pingcap/tiflow/issues/9692) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** - 在 v7.4.0 之前,使用 DM 的 Binlog Filter 功能颗粒度比较粗,例如只能过滤 ALTER 这种大颗粒度的 DDL Event,这种方式在某些业务场景会收到限制,例如业务允许将 Decimal 字段类型的精度调大,但是不允许减小。因此,在 v7.4.0 引入一个新的 Event Name `incompatible DDL changes`,用于拦截那些变更后会导致数据丢失、数据被截断、精度损失等问题的 DDL,并报错提示,让你可以及时介入处理,避免对下游的业务数据产生影响。 + 在 v7.4.0 之前,使用 DM 的 Binlog Filter 功能颗粒度比较粗,例如只能过滤 ALTER 这种大颗粒度的 DDL Event,这种方式在某些业务场景会收到限制,例如业务允许将 Decimal 字段类型的精度调大,但是不允许减小。 + + 因此,在 v7.4.0 引入一个新的 Event Name `incompatible DDL changes`,用于拦截那些变更后会导致数据丢失、数据被截断、精度损失等问题的 DDL,并报错提示,让你可以及时介入处理,避免对下游的业务数据产生影响。 更多信息,请参考[用户文档](链接)。 @@ -232,7 +234,7 @@ TiDB 版本:7.4.0 · 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 -* Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#issue](https:// ) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** +* Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#46982](https://github.com/pingcap/tidb/issues/46982) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 @@ -260,7 +262,7 @@ TiDB 版本:7.4.0 -* 兼容性 1 +* 自 v7.4.0 起, TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 * 兼容性 2 From c45db84e9064d4e0659a2dc8a890d1c98c847a83 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 22 Sep 2023 16:47:18 +0800 Subject: [PATCH 063/161] Apply suggestions from code review Co-authored-by: Ran --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ec6ccefff2f8..de9f2fe5cc23 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -118,7 +118,7 @@ TiDB 版本:7.4.0 * TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** - 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性,对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。由于该功能与 TiFlash 资源管控特性相互依赖,TiDB v7.4.0 移除了之前版本中用于控制是否启用 Pipeline 执行模型的变量 `tidb_enable_tiflash_pipeline_model`,你可以通过 TiFlash 参数 `tidb_enable_resource_control` 同时开启或关闭 Pipeline 执行模型和 TiFlash 资源管控特性。 + 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性。该模型对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。由于该功能与 TiFlash 资源管控特性相互依赖,TiDB v7.4.0 移除了之前版本中用于控制是否启用 Pipeline 执行模型的变量 `tidb_enable_tiflash_pipeline_model`。现在你可以通过 TiFlash 参数 `tidb_enable_resource_control` 同时开启或关闭 Pipeline 执行模型和 TiFlash 资源管控特性。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 From 799e49cf180d93c6e085f8bed06de1932ac9800c Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Sep 2023 17:11:00 +0800 Subject: [PATCH 064/161] Apply suggestions from code review --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index de9f2fe5cc23..9800c1aaa6b6 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -238,7 +238,7 @@ TiDB 版本:7.4.0 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/dumpling-overview.md#dumpling-主要选项表)。 * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** From 79296eddd11ca6c2c619b77587a5312be80b3659 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Sep 2023 17:29:07 +0800 Subject: [PATCH 065/161] Apply suggestions from code review --- releases/release-7.4.0.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9800c1aaa6b6..54b146a7957a 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -96,7 +96,7 @@ TiDB 版本:7.4.0 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 - TiDB 在 v7.4.0 中引入了一个新参数 [`TIDB_KV_READ_TIMEOUT(N)`](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。该参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 + TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。该参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 更多的信息,请参考[用户文档](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入)。 @@ -273,7 +273,9 @@ TiDB 版本:7.4.0 | [`default_collation_for_utf8mb4`]() | 新增 | 为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。moderate 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;determinate 则倾向于保守,保持执行计划稳定。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | -| | 新增/删除/修改 | | +| [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | +| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。当 TiDB 集群在网络不稳定或 TiKV 的 I/O 延迟抖动严重的环境下,且用户对查询 SQL 的延迟比较敏感时,可以通过设置 `tikv_client_read_timeout` 调小 TiKV RPC 读请求的超时时间,这样当某个 TiKV 节点出现 I/O 延迟抖动时,TiDB 侧可以快速超时并重新发送 TiKV RPC 请求给下一个 TiKV Region Peer 所在的 TiKV 节点。如果所有 TiKV Region Peer 都请求超时,则会用默认的超时时间(通常是 40 秒)进行新一轮的重试。 | + | | 新增/删除/修改 | | ### 配置文件参数 From c887d404370d8e71ce59ad8f39066f102011a951 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Sep 2023 17:30:13 +0800 Subject: [PATCH 066/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 54b146a7957a..77b0a2ddb877 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -98,7 +98,7 @@ TiDB 版本:7.4.0 TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。该参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 - 更多的信息,请参考[用户文档](/system-variables.md#tidb_kv_read_timeout-从-v740-版本开始引入)。 + 更多的信息,请参考[用户文档](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入)。 * 支持通过优化器提示临时修改部分系统变量的值 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** From 0172201f7521aa825c2b9191aa76a87cff4c92ee Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Sep 2023 17:36:10 +0800 Subject: [PATCH 067/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 77b0a2ddb877..dc75e126b09d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -283,7 +283,7 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| -| Dumpling | `--csv-line-terminator` | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | +| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | From ad853458d72b8d9d599831e31780c2f64e428d77 Mon Sep 17 00:00:00 2001 From: qiancai Date: Sun, 24 Sep 2023 21:22:46 +0800 Subject: [PATCH 068/161] add system variable and parameter changes --- releases/release-7.4.0.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index dc75e126b09d..a986d2375bf7 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -274,8 +274,9 @@ TiDB 版本:7.4.0 | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。moderate 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;determinate 则倾向于保守,保持执行计划稳定。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | +| [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | +| [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。当 TiDB 集群在网络不稳定或 TiKV 的 I/O 延迟抖动严重的环境下,且用户对查询 SQL 的延迟比较敏感时,可以通过设置 `tikv_client_read_timeout` 调小 TiKV RPC 读请求的超时时间,这样当某个 TiKV 节点出现 I/O 延迟抖动时,TiDB 侧可以快速超时并重新发送 TiKV RPC 请求给下一个 TiKV Region Peer 所在的 TiKV 节点。如果所有 TiKV Region Peer 都请求超时,则会用默认的超时时间(通常是 40 秒)进行新一轮的重试。 | - | | 新增/删除/修改 | | ### 配置文件参数 @@ -284,7 +285,8 @@ TiDB 版本:7.4.0 | -------- | -------- | -------- | -------- | | Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| | Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | -| | | 新增/删除/修改 | | +| TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | +| TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | From 31c76a5631087a660b3d498d46fa89f27e4cda0c Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 25 Sep 2023 10:09:17 +0800 Subject: [PATCH 069/161] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-7.4.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index a986d2375bf7..612ac8eba27e 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -59,7 +59,7 @@ TiDB 版本:7.4.0 * 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** - 在 v7.4.0 以前,当用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时,TiDB 节点需要准备一块较大的本地磁盘,对编码后的索引 KV pairs 和表数据 KV pairs 进行排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要不断进行数据整理 (compaction) 操作,降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 + 在 v7.4.0 以前,当用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时,TiDB 节点需要准备一块较大的本地磁盘,对编码后的索引 KV pairs 和表数据 KV pairs 进行排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要频繁进行数据整理 (compaction),降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 v7.4.0 引入全局排序特性后,编码后的数据不再写入本地进行排序,而是写入云存储,并在云存储中进行全局排序。然后,TiDB 将经过全局排序的索引数据和表数据并行导入到 TiKV 中,从而提升了性能和稳定性。 @@ -124,9 +124,9 @@ TiDB 版本:7.4.0 * 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) **tw@ran-huang** - TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。默认值 `moderate` 维持从前的优化器行为,即优化器会利用运行时统计到的数据修改来校正估算。如果设置为 `determinate`,则优化器不考虑运行时校正,只根据统计信息来生成执行计划。 + TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。默认值 `moderate` 维持之前版本的优化器行为,即优化器会利用运行时统计到的数据修改来校正估算。如果设置为 `determinate`,则优化器不考虑运行时校正,只根据统计信息来生成执行计划。 - 对于长期稳定的 OLTP 业务,或者如果用户对已有的执行计划非常有把握的情况下,推荐在测试后切换到 `determinate` 模式,减少执行计划跳变的可能。 + 对于长期稳定的 OLTP 业务,或者用户对已有的执行计划非常有把握的情况,推荐在测试后切换到 `determinate` 模式,减少执行计划跳变的可能。 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 @@ -147,7 +147,7 @@ TiDB 版本:7.4.0 * 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) **tw@ran-huang** - 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要赋予与收集统计信息 (`ANALYZE TABLE`) 相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 + 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要与收集统计信息 (`ANALYZE TABLE`) 相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 更多信息,请参考[用户文档](/statistics.md#锁定统计信息)。 @@ -219,7 +219,7 @@ TiDB 版本:7.4.0 在 v7.4.0 之前,你可以使用[增量数据校验功能](/dm/dm-continuous-data-validation.md)来判断 DM 同步到下游的数据是否与上游一致,并以此作为业务流量从上游数据库割接到 TiDB 的依据。然而,由于增量校验 checkpoint 受到较多限制,如同步延迟、不一致的数据等待重新校验等因素,需要每隔几分钟刷新一次校验后的 checkpoint。对于某些只有几十秒割接时间的业务场景来说,这是无法接受的。 - v7.4.0 引入实时更新增量数据校验的 checkpoint 后,你可以传入上游数据库填写的 binlog position。一旦增量校验程序在内存里校验到该 binlog postion,会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint。因此,用户可以根据该立即返回的 checkpoint 来快速进行割接操作。 + v7.4.0 引入实时更新增量数据校验的 checkpoint 后,你可以传入上游数据库填写的 binlog 位置。一旦增量校验程序在内存里校验到该 binlog 位置,会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint。因此,你可以根据该立即返回的 checkpoint 快速进行割接操作。 更多信息,请参考[用户文档](链接)。 @@ -248,7 +248,7 @@ TiDB 版本:7.4.0 * TiCDC 支持 Claim-Check 功能,改进对大型消息的处理 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** - 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小 (`max.message.bytes`) 的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储超过 Kafka 限制的大型消息,并将一条包含该大型消息在外部存储中的地址的引用消息发送到 Kafka。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的消息内容。 + 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小 (`max.message.bytes`) 的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储超过 Kafka 限制的大型消息。TiCDC 会向 Kafka 发送一条引用消息,其中记录了该大型消息在外部存储中的地址。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的消息内容。 更多信息,请参考[用户文档](链接)。 From 633b7a874d2a341eb4af3e1ff47cd619d43aadde Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 25 Sep 2023 11:51:32 +0800 Subject: [PATCH 070/161] Apply suggestions from code review --- releases/release-7.4.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 612ac8eba27e..4d87be2cfb54 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -35,7 +35,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 - * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** 在 v7.0.0 中,TiFlash 以实验特性引入了存算分离架构。经过一系列的改进,从 v7.4.0 起,TiFlash 正式支持存算分离架构。 @@ -83,7 +83,7 @@ TiDB 版本:7.4.0 ### 稳定性 -* TiFlash 引擎支持查询级别的数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** +* TiFlash 支持查询级别的数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** 从 v7.0.0 起,TiFlash 支持控制 `GROUP BY`、`ORDER BY`、`JOIN` 这三种算子的数据落盘功能,避免数据量超过内存总大小时,导致查询终止甚至系统崩溃的问题。然而,单独控制每个算子的落盘较为麻烦,也无法有效进行整体资源控制。 @@ -167,11 +167,11 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/partitioned-table.md#分区管理)。 -* TiDB 支持 ROLLUP 修饰符和 GROUPING 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** +* TiDB 支持 `WITH ROLLUP` 修饰符和 `GROUPING` 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** - 在 v7.4.0 之前,TiDB 不支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符和 GROUPING 函数是数据分析中常用的功能,用于对数据进行分级汇总。从 v7.4.0 开始,TiDB 支持 ROLLUP 修饰符和 GROUPING 函数。ROLLUP 修饰符的使用方式为:`SELECT ... FROM ... GROUP BY ... WITH ROLLUP` + `WITH ROLLUP` 修饰符和 `GROUPING` 函数是数据分析中常用的功能,用于对数据进行多维度的汇总。从 v7.4.0 开始,TiDB 支持在 `GROUP BY` 子句中使用 `WITH ROLLUP` 修饰符和 `GROUPING` 函数。例如,你可以通过 `SELECT ... FROM ... GROUP BY ... WITH ROLLUP` 语法使用 `WITH ROLLUP` 修饰符。 - 更多信息,请参考[用户文档](/functions-and-operators/aggregate-group-by-functions.md#group-by-修饰符)。 + 更多信息,请参考[用户文档](functions-and-operators/group-by-modifier.md)。 ### 数据库管理 @@ -223,9 +223,9 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](链接)。 -* 增强 `IMPORT INTO` 功能,支持对导入的数据通过云存储进行全局排序(实验特性),并提升导入性能和稳定性 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 增强 `IMPORT INTO` 功能 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/....md),提升性能和稳定性。 + 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/....md)(实验特性),提升性能和稳定性。 此外,在 v7.4.0 中,`IMPORT INTO` 还引入了以下功能: From e4488ae04cb709fce1675c249e21fc7b423edc83 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 25 Sep 2023 14:21:29 +0800 Subject: [PATCH 071/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 4d87be2cfb54..d992bb76c6a5 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -47,7 +47,7 @@ TiDB 版本:7.4.0 ### 性能 -* 支持下推 JSON [运算符](/functions-and-operators/expressions-pushed-down.md) `MEMBER OF` 到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** +* 支持下推 JSON 运算符 `MEMBER OF` 到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** * `value MEMBER OF(json_array)` From 3f2b428bc2ea5a2de7bc340a338a5bd38db86e7d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 25 Sep 2023 15:22:13 +0800 Subject: [PATCH 072/161] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-7.4.0.md | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d992bb76c6a5..52d767a1694f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -21,9 +21,9 @@ TiDB 版本:7.4.0 -* TiDB 引入设置 TiDB Service Scope 的功能,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** +* 支持设置 TiDB 节点的服务范围,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** - 在资源密集型集群中并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。TiDB v7.4.0 引入了设置 TiDB Service Scope 的功能作为实验特性,你可以在存量 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置 TiDB Service Scope,所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 + 在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。从 v7.4.0 起,你可以通过变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围。所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 @@ -92,11 +92,11 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 -* 引入自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** +* 支持自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 - TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。该参数也支持通过 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 + TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。此外,你也可以在查询语句中使用 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 更多的信息,请参考[用户文档](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入)。 @@ -185,7 +185,7 @@ TiDB 版本:7.4.0 ### 可观测性 -* 向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) **tw@hfxsd** +* 支持向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) **tw@hfxsd** 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (`CONNECTION_ID`) 写入与会话相关的日志内容中,包括 TiDB 日志、慢查询日志、以及 TiKV 上 coprocessor 的慢日志记录。你可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 @@ -207,21 +207,6 @@ TiDB 版本:7.4.0 ### 数据迁移 -* Data Migration (DM) 支持拦截不兼容(破坏数据一致性)的 DDL 变更(实验特性) [#9692](https://github.com/pingcap/tiflow/issues/9692) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** - - 在 v7.4.0 之前,使用 DM 的 Binlog Filter 功能颗粒度比较粗,例如只能过滤 ALTER 这种大颗粒度的 DDL Event,这种方式在某些业务场景会收到限制,例如业务允许将 Decimal 字段类型的精度调大,但是不允许减小。 - - 因此,在 v7.4.0 引入一个新的 Event Name `incompatible DDL changes`,用于拦截那些变更后会导致数据丢失、数据被截断、精度损失等问题的 DDL,并报错提示,让你可以及时介入处理,避免对下游的业务数据产生影响。 - - 更多信息,请参考[用户文档](链接)。 - -* 支持实时更新增量数据校验的 checkpoint [#issue号](链接) @[lichunzhu](https://github.com/lichunzhu) **tw@ran-huang** - - 在 v7.4.0 之前,你可以使用[增量数据校验功能](/dm/dm-continuous-data-validation.md)来判断 DM 同步到下游的数据是否与上游一致,并以此作为业务流量从上游数据库割接到 TiDB 的依据。然而,由于增量校验 checkpoint 受到较多限制,如同步延迟、不一致的数据等待重新校验等因素,需要每隔几分钟刷新一次校验后的 checkpoint。对于某些只有几十秒割接时间的业务场景来说,这是无法接受的。 - - v7.4.0 引入实时更新增量数据校验的 checkpoint 后,你可以传入上游数据库填写的 binlog 位置。一旦增量校验程序在内存里校验到该 binlog 位置,会立即刷新 checkpoint,而不是每隔几分钟刷新 checkpoint。因此,你可以根据该立即返回的 checkpoint 快速进行割接操作。 - - 更多信息,请参考[用户文档](链接)。 * 增强 `IMPORT INTO` 功能 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** @@ -236,13 +221,13 @@ TiDB 版本:7.4.0 * Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#46982](https://github.com/pingcap/tidb/issues/46982) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** - 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符默认为 "\r\n",无法被一些只能解析 "\n" 换行符的下游系统解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 引入了新的参数 `--csv-line-terminator`,你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n" ,即和历史版本保持一致。 + 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符为 "\r\n",导致一些只能解析 "\n" 换行符的下游系统无法解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 中,Dumpling 引入了新的参数 `--csv-line-terminator`。当你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n",即和历史版本保持一致。 更多信息,请参考[用户文档](/dumpling-overview.md#dumpling-主要选项表)。 * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** - TiCDC 现在支持与 Pulsar 无缝集成。Pulsar 是一款云原生的分布式消息流平台,它可以提升您的实时数据流体验。借助这一新功能,TiCDC 赋予你轻松捕获和同步 TiDB 变更数据到 Pulsar 的能力,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。TiCDC 目前支持以 `canal-json` 格式同步变更数据。 + Pulsar 是一款云原生的分布式消息流平台,它能够显著提升你的实时数据流体验。从 v7.4.0 起,TiCDC 支持以 `canal-json` 格式同步变更数据至 Pulsar,实现与 Pulsar 的无缝集成。通过该功能 ,TiCDC 可以让你轻松捕获和同步 TiDB 变更数据到 Pulsar,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 From eaef951655cad79b279bee659b0085306377c318 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 25 Sep 2023 16:38:58 +0800 Subject: [PATCH 073/161] Apply suggestions from code review --- releases/release-7.4.0.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 52d767a1694f..30138f607dce 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -256,7 +256,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| | [`default_collation_for_utf8mb4`]() | 新增 | 为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 | -| [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。moderate 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;determinate 则倾向于保守,保持执行计划稳定。 | +| [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | @@ -268,11 +268,14 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | +| TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | | Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| | Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | -| | | 新增/删除/修改 | | +| TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | +| TiCDC | [`claim-check-storage-uri`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 新增 | 当指定 `large-message-handle-option` 为 `claim-check` 时,`claim-check-storage-uri` 必须设置为一个有效的外部存储服务地址,否则创建 Changefeed 将会报错。| +| TiCDC | [`large-message-handle-compression`](/ticdc/ticdc-sink-to-kafka.md#ticdc-层数据压缩功能) | 新增 | 控制是否开启编码时的压缩功能,默认为空,即不开启。| | | | 新增/删除/修改 | | | | | 新增/删除/修改 | | From 789fc50431b986f42b8b5ae9545ba58ea4b90227 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Mon, 25 Sep 2023 16:46:59 +0800 Subject: [PATCH 074/161] include the description of tidb_opt_enable_hash_join --- releases/release-7.4.0.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 52d767a1694f..e4c84b373ae6 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -151,6 +151,12 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/statistics.md#锁定统计信息)。 +* 引入系统变量禁用表的哈希连接 [#46695](https://github.com/pingcap/tidb/issues/46695) @[coderplay](https://github.com/coderplay) + + 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择到表的哈希连接可能会对性能产生风险。MySQL 通过[`优化器开关`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。TiDB 同样在新版本中引入系统变量 [tidb_opt_enable_hash_join](#) 对表的哈希连接进行控制。默认开启,如果客户非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `NO`,降低执行计划回退的可能性,提升系统稳定性。 + + 更多信息,请参考[用户文档](#)。 + ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -262,6 +268,7 @@ TiDB 版本:7.4.0 | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。当 TiDB 集群在网络不稳定或 TiKV 的 I/O 延迟抖动严重的环境下,且用户对查询 SQL 的延迟比较敏感时,可以通过设置 `tikv_client_read_timeout` 调小 TiKV RPC 读请求的超时时间,这样当某个 TiKV 节点出现 I/O 延迟抖动时,TiDB 侧可以快速超时并重新发送 TiKV RPC 请求给下一个 TiKV Region Peer 所在的 TiKV 节点。如果所有 TiKV Region Peer 都请求超时,则会用默认的超时时间(通常是 40 秒)进行新一轮的重试。 | +| [tidb_opt_enable_hash_join](#) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开,设置为 `NO` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | | 新增/删除/修改 | | ### 配置文件参数 From acf09b4e312f9f99c1aa9eba2d095658dcd21b94 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 25 Sep 2023 21:21:53 +0800 Subject: [PATCH 075/161] compatibility changes: add default_collation_for_utf8mb4, tidb_enable_non_prepared_plan_cache, tidb_enable_tiflash_pipeline_model, and enable_resource_control Signed-off-by: Aolin --- releases/release-7.4.0.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 6773f5ae0a0e..eb571a33d709 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -261,7 +261,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| -| [`default_collation_for_utf8mb4`]() | 新增 | 为 utf8mb4 字符集选择默认排序方式, 兼容从 MySQL 5.7 或更旧版本的迁移或数据复制场景。 | +| [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | @@ -269,6 +269,8 @@ TiDB 版本:7.4.0 | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。当 TiDB 集群在网络不稳定或 TiKV 的 I/O 延迟抖动严重的环境下,且用户对查询 SQL 的延迟比较敏感时,可以通过设置 `tikv_client_read_timeout` 调小 TiKV RPC 读请求的超时时间,这样当某个 TiKV 节点出现 I/O 延迟抖动时,TiDB 侧可以快速超时并重新发送 TiKV RPC 请求给下一个 TiKV Region Peer 所在的 TiKV 节点。如果所有 TiKV Region Peer 都请求超时,则会用默认的超时时间(通常是 40 秒)进行新一轮的重试。 | | [tidb_opt_enable_hash_join](#) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开,设置为 `NO` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | +| [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | +| `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | | | 新增/删除/修改 | | ### 配置文件参数 @@ -278,6 +280,7 @@ TiDB 版本:7.4.0 | TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | | Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| | Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | +| TiFlash | [`enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | | TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | From e0cffaf5ce9e6d63b41f27c9f7988b6aab2a87ad Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Sep 2023 10:14:31 +0800 Subject: [PATCH 076/161] Apply suggestions from code review --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index eb571a33d709..ba2efadd26a4 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -263,8 +263,8 @@ TiDB 版本:7.4.0 |---|----|------| | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | -| [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | +| [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。当 TiDB 集群在网络不稳定或 TiKV 的 I/O 延迟抖动严重的环境下,且用户对查询 SQL 的延迟比较敏感时,可以通过设置 `tikv_client_read_timeout` 调小 TiKV RPC 读请求的超时时间,这样当某个 TiKV 节点出现 I/O 延迟抖动时,TiDB 侧可以快速超时并重新发送 TiKV RPC 请求给下一个 TiKV Region Peer 所在的 TiKV 节点。如果所有 TiKV Region Peer 都请求超时,则会用默认的超时时间(通常是 40 秒)进行新一轮的重试。 | @@ -279,7 +279,7 @@ TiDB 版本:7.4.0 | -------- | -------- | -------- | -------- | | TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | | Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| -| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 你可以通过该参数传入导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | +| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | TiFlash | [`enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | From ac46aeed6167534a8bd7bb21f834e846f391c14c Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Sep 2023 10:20:09 +0800 Subject: [PATCH 077/161] Apply suggestions from code review --- releases/release-7.4.0.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ba2efadd26a4..fce40d57e4b0 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -278,7 +278,6 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | -| Import into |SPLIT_FILE | 新增| 对需要导入的大型 CSV 文件切割成多个 256 MiB 大小的 CSV 文件| | Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | TiFlash | [`enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | @@ -286,8 +285,6 @@ TiDB 版本:7.4.0 | TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | | TiCDC | [`claim-check-storage-uri`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 新增 | 当指定 `large-message-handle-option` 为 `claim-check` 时,`claim-check-storage-uri` 必须设置为一个有效的外部存储服务地址,否则创建 Changefeed 将会报错。| | TiCDC | [`large-message-handle-compression`](/ticdc/ticdc-sink-to-kafka.md#ticdc-层数据压缩功能) | 新增 | 控制是否开启编码时的压缩功能,默认为空,即不开启。| -| | | 新增/删除/修改 | | -| | | 新增/删除/修改 | | ## 改进提升 From 5293a116b676854c075e01e3bb142abe11b2f65e Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Sep 2023 10:24:52 +0800 Subject: [PATCH 078/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index fce40d57e4b0..69011b3d0fe4 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -267,7 +267,7 @@ TiDB 版本:7.4.0 | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | -| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。当 TiDB 集群在网络不稳定或 TiKV 的 I/O 延迟抖动严重的环境下,且用户对查询 SQL 的延迟比较敏感时,可以通过设置 `tikv_client_read_timeout` 调小 TiKV RPC 读请求的超时时间,这样当某个 TiKV 节点出现 I/O 延迟抖动时,TiDB 侧可以快速超时并重新发送 TiKV RPC 请求给下一个 TiKV Region Peer 所在的 TiKV 节点。如果所有 TiKV Region Peer 都请求超时,则会用默认的超时时间(通常是 40 秒)进行新一轮的重试。 | +| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | | [tidb_opt_enable_hash_join](#) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开,设置为 `NO` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | From 91f8a4c4d83b139d2fae6fffc670a59bb2c88a3a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Sep 2023 10:34:37 +0800 Subject: [PATCH 079/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 69011b3d0fe4..63948951871f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -278,10 +278,10 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | -| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | TiFlash | [`enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | +| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | | TiCDC | [`claim-check-storage-uri`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 新增 | 当指定 `large-message-handle-option` 为 `claim-check` 时,`claim-check-storage-uri` 必须设置为一个有效的外部存储服务地址,否则创建 Changefeed 将会报错。| | TiCDC | [`large-message-handle-compression`](/ticdc/ticdc-sink-to-kafka.md#ticdc-层数据压缩功能) | 新增 | 控制是否开启编码时的压缩功能,默认为空,即不开启。| From 3f0f2d583bd59cec4db26fac693b9e6b2cdef639 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 26 Sep 2023 11:56:25 +0800 Subject: [PATCH 080/161] Apply suggestions from code review --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 63948951871f..7a3c5cec6669 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -139,7 +139,7 @@ TiDB 版本:7.4.0 - `lightning`:使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 执行导入任务。同时支持 TiDB Lightning 的物理和逻辑导入模式。 - `br`:使用 [BR](/br/backup-and-restore-overview.md) 执行数据备份和恢复。目前不支持 PITR。 - `ddl`:对于 Reorg DDL,控制批量数据回写阶段的资源使用。 - - `analyze`:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 + - `stats`:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 默认情况下,被标记为后台任务的任务类型为空,此时后台任务的管理功能处于关闭状态,其行为与 TiDB v7.4.0 之前版本保持一致。你需要手动修改 `default` 资源组的后台任务类型以开启后台任务管理。 From 50930b75813695ac6f8d6cb705c85563440883e1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 26 Sep 2023 13:29:26 +0800 Subject: [PATCH 081/161] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 7a3c5cec6669..700fc3e09dc8 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -87,7 +87,7 @@ TiDB 版本:7.4.0 从 v7.0.0 起,TiFlash 支持控制 `GROUP BY`、`ORDER BY`、`JOIN` 这三种算子的数据落盘功能,避免数据量超过内存总大小时,导致查询终止甚至系统崩溃的问题。然而,单独控制每个算子的落盘较为麻烦,也无法有效进行整体资源控制。 - 在 v7.4.0 中,TiFlash 引入了查询级别数的据落盘功能。通过设置单个查询在单个 TiFlash 节点使用内存的上限 [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入)及触发数据落盘的内存阈值 [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),你可以方便地控制单个查询的内存使用,更好地管控 TiFlash 内存资源。 + 在 v7.4.0 中,TiFlash 引入了查询级别数的据落盘功能。通过设置单个查询在单个 TiFlash 节点使用内存的上限 [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) 及触发数据落盘的内存阈值 [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入),你可以方便地控制单个查询的内存使用,更好地管控 TiFlash 内存资源。 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 @@ -216,7 +216,7 @@ TiDB 版本:7.4.0 * 增强 `IMPORT INTO` 功能 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/....md)(实验特性),提升性能和稳定性。 + 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/tidb-global-sort.md)(实验特性),提升性能和稳定性。 此外,在 v7.4.0 中,`IMPORT INTO` 还引入了以下功能: From 9c695a276965efea331d445c6e7f2df210afe3e1 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Sep 2023 14:53:48 +0800 Subject: [PATCH 082/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 700fc3e09dc8..29c76ce4ce56 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -23,7 +23,7 @@ TiDB 版本:7.4.0 * 支持设置 TiDB 节点的服务范围,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** - 在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。从 v7.4.0 起,你可以通过变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围。所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 + 在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。从 v7.4.0 起,你可以通过变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围。所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 @@ -94,7 +94,7 @@ TiDB 版本:7.4.0 * 支持自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** - 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整,因此当 TiKV 节点出现问题时,TiDB 必须等待超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 + 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整。因此,当 TiKV 节点出现问题时,TiDB 必须等待固定时长的超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。此外,你也可以在查询语句中使用 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 @@ -233,7 +233,7 @@ TiDB 版本:7.4.0 * TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** - Pulsar 是一款云原生的分布式消息流平台,它能够显著提升你的实时数据流体验。从 v7.4.0 起,TiCDC 支持以 `canal-json` 格式同步变更数据至 Pulsar,实现与 Pulsar 的无缝集成。通过该功能 ,TiCDC 可以让你轻松捕获和同步 TiDB 变更数据到 Pulsar,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。 + Pulsar 是一款云原生的分布式消息流平台,它能够显著提升你的实时数据流体验。从 v7.4.0 起,TiCDC 支持以 `canal-json` 格式同步变更数据至 Pulsar,实现与 Pulsar 的无缝集成。通过该功能,TiCDC 可以让你轻松捕获和同步 TiDB 变更数据到 Pulsar,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 @@ -310,6 +310,7 @@ TiDB 版本:7.4.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash + - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + Tools From 0d5213004b5a84e32055d49aa4de4878f2bcdaf7 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Sep 2023 15:06:38 +0800 Subject: [PATCH 083/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 29c76ce4ce56..a3fbcf7c73ec 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -265,9 +265,9 @@ TiDB 版本:7.4.0 | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | +| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | -| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | | [tidb_opt_enable_hash_join](#) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开,设置为 `NO` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | From 88cec14d22348441f5b7c49af60a499200fc5853 Mon Sep 17 00:00:00 2001 From: JaySon Date: Wed, 27 Sep 2023 10:38:13 +0800 Subject: [PATCH 084/161] Apply suggestions from code review --- releases/release-7.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index a3fbcf7c73ec..9da12d0bbf1d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -35,7 +35,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 - * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw@qiancai** 在 v7.0.0 中,TiFlash 以实验特性引入了存算分离架构。经过一系列的改进,从 v7.4.0 起,TiFlash 正式支持存算分离架构。 @@ -278,8 +278,8 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | -| TiFlash | [`enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | -| TiFlash | [`compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | +| TiFlash | [`profiles.default.enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | +| TiFlash | [`flash.compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | | Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | | TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | From 76706deee295f20a925c9832dd6980cf378e6250 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Sep 2023 17:04:25 +0800 Subject: [PATCH 085/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9da12d0bbf1d..0ed0b2f14c6b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -262,13 +262,13 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | +| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-new-in-v740) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | -| [tidb_opt_enable_hash_join](#) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开,设置为 `NO` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | | | 新增/删除/修改 | | From 961e9ec1a99ef4a8c0f1a61a07cc84e20a315f47 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Sep 2023 17:09:06 +0800 Subject: [PATCH 086/161] Apply suggestions from code review --- releases/release-7.4.0.md | 65 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 0ed0b2f14c6b..46f76d7c69ea 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -13,7 +13,70 @@ TiDB 版本:7.4.0 在 7.4.0 版本中,你可以获得以下关键特性: - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryFeatureDescription
Scalability and PerformanceEnhance the performance for adding several indexes of a table in a single ALTER statement (experimental) From v6.2 the user can add several indexes of a table in a single ALTER statement. However, the performance is the same as running two single add index DDL statements x, y, which used to take x-time +y-time, they now take significantly less.
Reliability and AvailabilityImproving the performance and stability of 'Import into' and 'Add Index' operations via `global sorting` Before v7.4.0, tasks like ADD INDEX or IMPORT INTO in the distributed parallel execution framework required TiDB nodes to allocate local disk space for sorting data before importing it into TiKV. This approach, involving partial and localized sorting, often led to data overlaps, increasing TiKV's resource consumption and lower performance and stability. With the Global Sorting feature in v7.4.0, data is temporarily stored in S3 for global sorting. Then the data is imported into TiKV in an orderly, eliminating the need for TiKV to consume extra resources on compactions. This significantly enhances the performance and stability of operations like IMPORT INTO and ADD INDEX.
Resource Control for background jobs (experimental) v7.1 introduced Resource Control to mitigate resource and storage access interference between workloads. v7.4 applies this contorl to background tasks as well. Now the resource produced by background tasks can be identified and managed by resource control. The first to realize this benefit are: Auto-analyze, Backup & Recovery, Load Data, and Online DDL. This should apply to all background tasks eventually.
TiFlash supports storage-computing separation and S3 TiFlash introduces a cloud-native architecture as an option: +
    +
  • Disaggregates TiFlash's compute and storage, which is a milestone for elastic HTAP resource utilization.
  • +
  • Introduces S3-based storage engine, which can provide shared storage at a lower cost.
  • +
+
SQLMore complete partition management Prior to v7.4, TiDB supported truncate partition, exchange partition, add/drop/reorganize partition on Range/List Partitioning, and add/coalesce partition on Hash/Key partitioning +In this version, TiDB partition management adds: +
    +
  • Remove partition
  • +
  • Partitioning existing non-partitioned tables
  • +
  • Modifying existing partition types on tables
  • +
+
MySQL 8.0 compatibility: Include collation utf8mb4_0900_ai_ci One of remarkable change in MySQL 8.0: the default characterset is utf8mb4, while the default collation of utf8mb4 is utf8mb4_0900_ai_ci. If the database was created on MySQL 8.0 with default collection, it can be migrated or replicated to TiDB smoothly. This was the last piece waiting to call TiDB generally MySQL 8.0 compatible.
TiDB&TiFlash support modifier ROLLUP and function GROUPING() ROLLUP modifier can cause summary output to include extra rows that represent higher-level summary operations, thus enables you to answer questions at multiple levels of analysis with a single query. ROLLUP modifier is commonly used in data analysis and is used to summarize data in multiple dimensions.
TiFlash supports resource control Prior to v7.4, TiDB resource control can not manage resource of TiFlash. In v7.4, TiFlash can manage resource better, and improving the overall resource management capabilities of TiDB.
DB Operations and ObservabilitySpecify the respective TiDB nodes to execute the 'IMPORT INTO' and 'ADD INDEX' SQL statements. You have the flexibility to specify whether to execute 'IMPORT INTO' or 'ADD INDEX' SQL statements on some of the existing TiDB nodes or newly added TiDB nodes. This approach enables resource isolation from the rest of the TiDB nodes, preventing any impact on business operations while ensuring optimal performance for executing 'IMPORT INTO' or 'ADD INDEX' SQL statements.
## 功能详情 From e4b2113f5b9325370b75d171f4483cb89695364e Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Sep 2023 17:36:42 +0800 Subject: [PATCH 087/161] Apply suggestions from code review --- releases/release-7.4.0.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 46f76d7c69ea..d99907b4239b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -16,20 +16,20 @@ TiDB 版本:7.4.0 - - - + + + - + - + @@ -71,9 +71,9 @@ In this version, TiDB partition management adds: - - - + + +
CategoryFeatureDescription分类功能描述
Scalability and Performance可扩展性与性能 Enhance the performance for adding several indexes of a table in a single ALTER statement (experimental) From v6.2 the user can add several indexes of a table in a single ALTER statement. However, the performance is the same as running two single add index DDL statements x, y, which used to take x-time +y-time, they now take significantly less.
Reliability and Availability稳定性与高可用 Improving the performance and stability of 'Import into' and 'Add Index' operations via `global sorting` Before v7.4.0, tasks like ADD INDEX or IMPORT INTO in the distributed parallel execution framework required TiDB nodes to allocate local disk space for sorting data before importing it into TiKV. This approach, involving partial and localized sorting, often led to data overlaps, increasing TiKV's resource consumption and lower performance and stability. With the Global Sorting feature in v7.4.0, data is temporarily stored in S3 for global sorting. Then the data is imported into TiKV in an orderly, eliminating the need for TiKV to consume extra resources on compactions. This significantly enhances the performance and stability of operations like IMPORT INTO and ADD INDEX.
Prior to v7.4, TiDB resource control can not manage resource of TiFlash. In v7.4, TiFlash can manage resource better, and improving the overall resource management capabilities of TiDB.
DB Operations and ObservabilitySpecify the respective TiDB nodes to execute the 'IMPORT INTO' and 'ADD INDEX' SQL statements. You have the flexibility to specify whether to execute 'IMPORT INTO' or 'ADD INDEX' SQL statements on some of the existing TiDB nodes or newly added TiDB nodes. This approach enables resource isolation from the rest of the TiDB nodes, preventing any impact on business operations while ensuring optimal performance for executing 'IMPORT INTO' or 'ADD INDEX' SQL statements.数据库管理与可观测性选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` SQL 语句(实验特性)你可以选择在现有 TiDB 节点、或者新增 TiDB 节点执行 `ADD INDEX` 和 `IMPORT INTO` SQL 语句。该方法可以实现与其他 TiDB 节点的资源隔离,确保在执行上述语句时的最佳性能,并避免对已有业务造成性能影响。
From f20fa4abb2eb8a7045ebf52f045aa0d0b95f277b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Sep 2023 19:53:27 +0800 Subject: [PATCH 088/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d99907b4239b..2f6259045d35 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -72,8 +72,8 @@ In this version, TiDB partition management adds: 数据库管理与可观测性 - 选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` SQL 语句(实验特性) - 你可以选择在现有 TiDB 节点、或者新增 TiDB 节点执行 `ADD INDEX` 和 `IMPORT INTO` SQL 语句。该方法可以实现与其他 TiDB 节点的资源隔离,确保在执行上述语句时的最佳性能,并避免对已有业务造成性能影响。 + 选择适用的 TiDB 节点来执行并行的 ADD INDEXIMPORT INTO SQL 语句(实验特性) + 你可以选择在现有 TiDB 节点、或者新增 TiDB 节点执行 ADD INDEXIMPORT INTO SQL 语句。该方法可以实现与其他 TiDB 节点的资源隔离,确保在执行上述语句时的最佳性能,并避免对已有业务造成性能影响。 From 5bd18f09ea482994e56f8949ada47ebe90afd7ba Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 28 Sep 2023 15:56:49 +0800 Subject: [PATCH 089/161] add issue link --- releases/release-7.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 2f6259045d35..8e2b031a84cc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -90,7 +90,7 @@ In this version, TiDB partition management adds: 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 -* 增强 Partitioned Raft KV 存储引擎(实验特性)[#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** +* 增强 Partitioned Raft KV 存储引擎(实验特性)[#11515](https://github.com/tikv/tikv/issues/11515) [#12842](https://github.com/tikv/tikv/issues/12842) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** TiDB v6.6.0 引入了 Partitioned Raft KV 存储引擎作为实验特性,该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,每个 Region 的数据都独立存储在单独的 RocksDB 实例中。 @@ -193,7 +193,7 @@ In this version, TiDB partition management adds: 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 -* 资源管控支持自动管理后台任务(实验特性)[#issue号](链接) @[glorv](https://github.com/glorv) **tw@Oreoxmt** +* 资源管控支持自动管理后台任务(实验特性)[#44517](https://github.com/pingcap/tidb/issues/44517) @[glorv](https://github.com/glorv) **tw@Oreoxmt** 后台任务是指那些优先级不高但是需要消耗大量资源的任务,如数据备份和自动统计信息收集等。这些任务通常定期或不定期触发,在执行的时候会消耗大量资源,从而影响在线的高优先级任务的性能。在 TiDB v7.4.0 中,资源管控引入了对后台任务的自动管理。该功能有助于降低低优先级任务对在线业务的性能影响,实现资源的合理分配,大幅提升集群的稳定性。 @@ -206,7 +206,7 @@ In this version, TiDB partition management adds: 默认情况下,被标记为后台任务的任务类型为空,此时后台任务的管理功能处于关闭状态,其行为与 TiDB v7.4.0 之前版本保持一致。你需要手动修改 `default` 资源组的后台任务类型以开启后台任务管理。 - 更多信息,请参考[用户文档](/tidb-resource-control.md)。 + 更多信息,请参考[用户文档](/tidb-resource-control.md#管理后台任务)。 * 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) **tw@ran-huang** @@ -264,7 +264,7 @@ In this version, TiDB partition management adds: 在 v7.4.0 中,TiDB Dashboard 的 **Slow Query** 页面和 **SQL Statement** 页面提供表格视图的执行计划,以提升用户的诊断体验。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/dashboard/dashboard-statement-details.md)。 ### 安全 From 88bfcfb38a52ea9f774c43af81f8dcec7abe9a07 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 28 Sep 2023 16:02:49 +0800 Subject: [PATCH 090/161] add issue link Signed-off-by: Aolin --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 8e2b031a84cc..2e84d184bde2 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -163,7 +163,7 @@ In this version, TiDB partition management adds: 更多的信息,请参考[用户文档](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入)。 -* 支持通过优化器提示临时修改部分系统变量的值 [#issue号](链接) @[winoros](https://github.com/winoros) **tw@Oreoxmt** +* 支持通过优化器提示临时修改部分系统变量的值 [#45892](https://github.com/pingcap/tidb/issues/45892) @[winoros](https://github.com/winoros) **tw@Oreoxmt** TiDB v7.4.0 新增支持与 MySQL 8.0 相似的优化器提示 `SET_VAR()`。通过在 SQL 语句中添加 Hint `SET_VAR()`,可以在语句运行过程中临时修改部分系统变量,以针对不同语句设置环境。例如,可以主动提升高消耗 SQL 的并行度,或者通过变量修改优化器行为。 From b64715bae86c6ada094939f0c9d00a75d47fdbf8 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 28 Sep 2023 16:31:50 +0800 Subject: [PATCH 091/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 2e84d184bde2..b1f54458eb7d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -318,7 +318,7 @@ In this version, TiDB partition management adds: * 自 v7.4.0 起, TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 -* 兼容性 2 +* 升级到 TiFlash v7.4 后,不支持原地降级到之前的版本。这是因为,从 v7.4 开始,为了减少数据整理时产生的读、写放大,TiFlash 对 PageStorage V3 数据整理时的逻辑进行了优化,导致底层部分存储文件名发生了改动。详情请参考 [TiFlash 升级帮助](/tiflash-upgrade-guide.md#从-v6x-或-v7x-升级至-v74-或以上版本)。 ### 系统变量 From ae06b7372420245d02673399a43a0544cfd2d41f Mon Sep 17 00:00:00 2001 From: Aolin Date: Sat, 7 Oct 2023 10:28:42 +0800 Subject: [PATCH 092/161] update highlight table Signed-off-by: Aolin --- releases/release-7.4.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index b1f54458eb7d..e27974274a5b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -34,8 +34,8 @@ TiDB 版本:7.4.0 Before v7.4.0, tasks like ADD INDEX or IMPORT INTO in the distributed parallel execution framework required TiDB nodes to allocate local disk space for sorting data before importing it into TiKV. This approach, involving partial and localized sorting, often led to data overlaps, increasing TiKV's resource consumption and lower performance and stability. With the Global Sorting feature in v7.4.0, data is temporarily stored in S3 for global sorting. Then the data is imported into TiKV in an orderly, eliminating the need for TiKV to consume extra resources on compactions. This significantly enhances the performance and stability of operations like IMPORT INTO and ADD INDEX. - Resource Control for background jobs (experimental) - v7.1 introduced Resource Control to mitigate resource and storage access interference between workloads. v7.4 applies this contorl to background tasks as well. Now the resource produced by background tasks can be identified and managed by resource control. The first to realize this benefit are: Auto-analyze, Backup & Recovery, Load Data, and Online DDL. This should apply to all background tasks eventually. + 资源管控支持自动管理后台任务(实验特性) + 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 TiFlash supports storage-computing separation and S3 @@ -59,16 +59,16 @@ In this version, TiDB partition management adds: - MySQL 8.0 compatibility: Include collation utf8mb4_0900_ai_ci - One of remarkable change in MySQL 8.0: the default characterset is utf8mb4, while the default collation of utf8mb4 is utf8mb4_0900_ai_ci. If the database was created on MySQL 8.0 with default collection, it can be migrated or replicated to TiDB smoothly. This was the last piece waiting to call TiDB generally MySQL 8.0 compatible. + MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci + MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地迁移或复制在 MySQL 8.0 中使用默认排序规则创建的数据库到 TiDB。 TiDB&TiFlash support modifier ROLLUP and function GROUPING() ROLLUP modifier can cause summary output to include extra rows that represent higher-level summary operations, thus enables you to answer questions at multiple levels of analysis with a single query. ROLLUP modifier is commonly used in data analysis and is used to summarize data in multiple dimensions. - TiFlash supports resource control - Prior to v7.4, TiDB resource control can not manage resource of TiFlash. In v7.4, TiFlash can manage resource better, and improving the overall resource management capabilities of TiDB. + TiFlash 支持资源管控 + 在 v7.4.0 之前,TiDB 资源管控无法管理 TiFlash 资源。从 v7.4.0 开始,TiFlash 支持资源管控特性,进一步完善了 TiDB 整体的资源管控能力。 数据库管理与可观测性 From 37f4e88ccfac1a6bb524ad40592191915984017b Mon Sep 17 00:00:00 2001 From: Ling Jin <7138436+3AceShowHand@users.noreply.github.com> Date: Fri, 6 Oct 2023 21:33:57 -0500 Subject: [PATCH 093/161] Update releases/release-7.4.0.md Co-authored-by: xixirangrang --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e27974274a5b..6ef217c78879 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -304,7 +304,7 @@ In this version, TiDB partition management adds: 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小 (`max.message.bytes`) 的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储超过 Kafka 限制的大型消息。TiCDC 会向 Kafka 发送一条引用消息,其中记录了该大型消息在外部存储中的地址。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的消息内容。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储)。 ## 兼容性变更 From ebee556795bd5ea2a885882a4b63603865f857d0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 11:15:13 +0800 Subject: [PATCH 094/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 6ef217c78879..304cfe1ee0ed 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -128,12 +128,10 @@ In this version, TiDB partition management adds: 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@ran-huang** +* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[Defined2014](https://github.com/Defined2014) **tw@ran-huang** 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 `ADD INDEX` 操作时,其性能与使用多个独立的 SQL 语句进行 `ADD INDEX` 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 - 更多信息,请参考[用户文档](链接)。 - * 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。在 v7.4.0 中,该功能正式 GA。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 @@ -214,19 +212,14 @@ In this version, TiDB partition management adds: 更多信息,请参考[用户文档](/statistics.md#锁定统计信息)。 -* 引入系统变量禁用表的哈希连接 [#46695](https://github.com/pingcap/tidb/issues/46695) @[coderplay](https://github.com/coderplay) - - 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择到表的哈希连接可能会对性能产生风险。MySQL 通过[`优化器开关`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。TiDB 同样在新版本中引入系统变量 [tidb_opt_enable_hash_join](#) 对表的哈希连接进行控制。默认开启,如果客户非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `NO`,降低执行计划回退的可能性,提升系统稳定性。 - - 更多信息,请参考[用户文档](#)。 - -### 高可用 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** +* 引入系统变量控制是否选择表的哈希连接 [#46695](https://github.com/pingcap/tidb/issues/46695) @[coderplay](https://github.com/coderplay) - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择到表的哈希连接可能会对性能产生风险。MySQL 通过[`优化器开关`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。 + + 从 v7.4.0 开始,TiDB 引入系统变量 [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) 对表的哈希连接进行控制。默认开启 +(`ON`)。如果你非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `OFF`,降低执行计划回退的可能性,提升系统稳定性。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入)。 ### SQL 功能 @@ -266,14 +259,6 @@ In this version, TiDB partition management adds: 更多信息,请参考[用户文档](/dashboard/dashboard-statement-details.md)。 -### 安全 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - ### 数据迁移 @@ -318,7 +303,7 @@ In this version, TiDB partition management adds: * 自 v7.4.0 起, TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 -* 升级到 TiFlash v7.4 后,不支持原地降级到之前的版本。这是因为,从 v7.4 开始,为了减少数据整理时产生的读、写放大,TiFlash 对 PageStorage V3 数据整理时的逻辑进行了优化,导致底层部分存储文件名发生了改动。详情请参考 [TiFlash 升级帮助](/tiflash-upgrade-guide.md#从-v6x-或-v7x-升级至-v74-或以上版本)。 +* 升级到 TiFlash v7.4.0 后,不支持原地降级到之前的版本。这是因为,从 v7.4.0 开始,为了减少数据整理时产生的读、写放大,TiFlash 对 PageStorage V3 数据整理时的逻辑进行了优化,导致底层部分存储文件名发生了改动。详情请参考 [TiFlash 升级帮助](/tiflash-upgrade-guide.md#从-v6x-或-v7x-升级至-v74-或以上版本)。 ### 系统变量 From 310796c48a149f167d860ab0160c9fe3df197df1 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 11:15:48 +0800 Subject: [PATCH 095/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 304cfe1ee0ed..92d7f10f55dc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -216,8 +216,7 @@ In this version, TiDB partition management adds: 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择到表的哈希连接可能会对性能产生风险。MySQL 通过[`优化器开关`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。 - 从 v7.4.0 开始,TiDB 引入系统变量 [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) 对表的哈希连接进行控制。默认开启 -(`ON`)。如果你非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `OFF`,降低执行计划回退的可能性,提升系统稳定性。 + 从 v7.4.0 开始,TiDB 引入系统变量 [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) 对表的哈希连接进行控制。默认开启 (`ON`)。如果你非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `OFF`,降低执行计划回退的可能性,提升系统稳定性。 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入)。 From c3a7758d7cfe518e64367fe47eb775722cee77f9 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 13:21:47 +0800 Subject: [PATCH 096/161] Update releases/release-7.4.0.md Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 92d7f10f55dc..4d9926574928 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -214,7 +214,7 @@ In this version, TiDB partition management adds: * 引入系统变量控制是否选择表的哈希连接 [#46695](https://github.com/pingcap/tidb/issues/46695) @[coderplay](https://github.com/coderplay) - 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择到表的哈希连接可能会对性能产生风险。MySQL 通过[`优化器开关`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。 + 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择表的哈希连接可能会对性能产生风险。MySQL 通过[优化器开关 `optimizer_switch`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。 从 v7.4.0 开始,TiDB 引入系统变量 [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) 对表的哈希连接进行控制。默认开启 (`ON`)。如果你非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `OFF`,降低执行计划回退的可能性,提升系统稳定性。 From 6be729fea94ea4e1f14b9076e5a25cfe6d145306 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 21:12:37 +0800 Subject: [PATCH 097/161] Apply suggestions from code review Co-authored-by: Weizhen Wang Co-authored-by: Yongbo Jiang Co-authored-by: JaySon Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> Co-authored-by: givemefive <87104512+nongfushanquan@users.noreply.github.com> Co-authored-by: Chunzhu Li Co-authored-by: Hangjie Mo --- releases/release-7.4.0.md | 90 +++++++++++++++++++++++++++++++++------ 1 file changed, 78 insertions(+), 12 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 4d9926574928..e0ea86212fed 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -337,7 +337,7 @@ In this version, TiDB partition management adds: + TiDB - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 优化 Analyze partition table 的内存开销和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.comm/hawkingrei) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiKV @@ -353,21 +353,30 @@ In this version, TiDB partition management adds: + PD - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 改进获取 `min-resolved-ts` 的方法,减少网络连接数 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) + - 优化 tso 的追踪信息,方便调查 tso 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) + - 优化 HTTP Client 链接复用 [6914](https://github.com/tikv/pd/pull/6914) @[nolouch](https://github.com/nolouch) + - 优化 dr-autosync 的状态跟新速度 [#6874](https://github.com/tikv/pd/pull/6874) @[disksing](https://github.com/disksing) + - 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 [#7042](https://github.com/tikv/pd/pull/7042) @[nolouch](https://github.com/nolouch) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + - 添加 TiFlash 处理 Raft 同步过程中更多观测指标 [#8068](https://github.com/pingcap/tiflash/issues/8068) @[CalvinNeo](https://github.com/CalvinNeo) + - 改进 TiFlash 文件格式,减少小文件数量以避免造成文件系统 inode 耗尽的问题 [#7595](https://github.com/pingcap/tiflash/issues/7595) @[hongyunyan](https://github.com/hongyunyan) + Tools + Backup & Restore (BR) + - 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 [#13638](https://github.com/tikv/tikv/issues/13638) @[YuJuncen](https://github.com/YuJuncen) - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiCDC + + - 优化同步 add index DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) @@ -380,7 +389,10 @@ In this version, TiDB partition management adds: + TiDB Lightning - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 优化 Lightning checksum 配置为 optional 的逻辑使其在校验失败时不报错退出 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) + - 优化 Lightning 使在其地址中的所有 pd 都被 scale-in 时仍能继续工作 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) + - 改善 Lightning 在 region scatter 阶段的重试逻辑 [#46203](https://github.com/pingcap/tidb/issues/46203) @[mittalrishabh](https://github.com/mittalrishabh) + - 改善 Lightning 在导入数据阶段时对 no leader 错误的重试逻辑 [#46253](https://github.com/pingcap/tidb/issues/46253) @[lance6716](https://github.com/lance6716) + TiUP @@ -391,7 +403,28 @@ In this version, TiDB partition management adds: + TiDB - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复 `BatchPointGet` 算子在非 HASH 分区表下执行结果错误的问题 [#45891](https://github.com/pingcap/tidb/pull/45891) @[Defined2014](https://github.com/Defined2014) + - 修复 `BatchPointGet` 算子在 HASH 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/pull/46779) @[jiyfhust](https://github.com/jiyfhust) + - 修复 parser 状态残留导致解析失败的问题 [#45903](https://github.com/pingcap/tidb/pull/45903) @[qw4990](https://github.com/qw4990) + - 修复 exchange partiton 之后导致表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) + - 修复 exchange partiton 没有检查 Constraints 的问题 [#45922](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) + - 修复 exchange partition 错误交换成功的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) + - 修复 `tidb_enforce_mpp` 系统变量不能被正确还原的问题 [#46214](https://github.com/pingcap/tidb/issues/46214) @[djshow832](https://github.com/djshow832) + - 修复 like 语句中 `_` 没有被正确处理的问题 [#46287](https://github.com/pingcap/tidb/issues/46287) [#46618](https://github.com/pingcap/tidb/issues/46618) @[Defined2014](https://github.com/Defined2014) + - 修复当获取 schema 失败时会导致 `schemaTs` 被设置为 0 的问题 [#46325](https://github.com/pingcap/tidb/issues/46325) @[hihihuhu](https://github.com/hihihuhu) + - 修复 `AUTO_ID_CACHE=1` 时可能导致重复的问题 [#46444](https://github.com/pingcap/tidb/issues/46444) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复 `AUTO_ID_CACHE=1` 时 `show create table` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) + - 将 `Arrary` 类型的字符集设置为 `binary` 避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) + - 修复子查询中存在 CTE 会导致 Parse 时 panic 的问题 [#45916](https://github.com/pingcap/tidb/pull/45916) @[djshow832](https://github.com/djshow832) + - 修复 Exchange Partition 失败或取消时分区表的限制残留在原表上的问题 [#45877](https://github.com/pingcap/tidb/pull/45877) @[mjonss](https://github.com/mjonss) + - 修复 List 分区的定义中不允许同时使用 NULL 和空字符串的问题 [#45695](https://github.com/pingcap/tidb/pull/45695) @[mjonss](https://github.com/mjonss) + - 修复 Exchange Partition 时无法检测出不符合分区定义的数据的问题 [#46533](https://github.com/pingcap/tidb/pull/46533) @[mjonss](https://github.com/mjonss) + - 修复配置文件中 tmp-storage-quota 不生效的问题 [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) + - 修复函数 WEIGHT_STRING() 不感知 Collation 的问题 [#45725](https://github.com/pingcap/tidb/issues/45725) @[dveeden](https://github.com/dveeden) + - 修复 Index Join 在超过内存限额时可能产生的 Hang [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) + - 修复 Datetime 类型与数字常量比较时产生的结果错误问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) + - 修复无符号类型与 Duration 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiKV @@ -409,7 +442,11 @@ In this version, TiDB partition management adds: + PD - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复在 Flashback 时不更新保存 region 信息的问题 [#6911](https://github.com/tikv/pd/pull/6911) @[overvenus](https://github.com/overvenus) + - 修复因为同步 store config 慢而导致 PD Leader 切换慢的问题 [#6919](https://github.com/tikv/pd/pull/6919) @[bufferflies](https://github.com/bufferflies) + - 修复 Scatter Peer 时未考虑 group 的问题 [#6962](https://github.com/tikv/pd/issues/6962) @[bufferflies](https://github.com/bufferflies) + - 修复 RU 消耗小于 0 导致 PD 崩溃的问题 [#6983](https://github.com/tikv/pd/pull/6983) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复修改隔离等级时未同步到默认放置规则中的问题 [#7121](https://github.com/tikv/pd/issues/7121) @[rleungx](https://github.com/rleungx) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash @@ -421,23 +458,37 @@ In this version, TiDB partition management adds: + Backup & Restore (BR) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复备份失败时 BR 的报错信息 "resolve lock timeout" 具有误导性,掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) + - 修复 PITR 恢复隐式主键可能冲突的问题 [#46520](https://github.com/pingcap/tidb/issues/46520) @[3pointer](https://github.com/3pointer) + - 修复 PITR 恢复 meta-kv 出错的问题 [#46578](https://github.com/pingcap/tidb/issues/46578) @[Leavrth](https://github.com/Leavrth) + - 修复 BR 集成测试用例出错的问题 [#45561](https://github.com/pingcap/tidb/issues/46561) @[purelind](https://github.com/purelind) + TiCDC - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复 PD 做扩缩容场景下 CDC 访问原无效地址的问题 [#9054](https://github.com/pingcap/tiflow/issues/9054) + - 修复某些特殊场景下会导致 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309)[#9450](https://github.com/pingcap/tiflow/issues/9450)[#9542](https://github.com/pingcap/tiflow/issues/9542)[#9685](https://github.com/pingcap/tiflow/issues/9685) + - 修复上游在同一个事务中同时修改多个UK导致下游同步可能会失败的问题 [#9430](https://github.com/pingcap/tiflow/issues/9430) + - 修复上游在同一条 DDL 中 rename 多个 table 场景下同步出错的问题 [#9476](https://github.com/pingcap/tiflow/issues/9476) [#9488](https://github.com/pingcap/tiflow/issues/9488) + - 修复CSV格式下没有校验中文分隔符的问题 [#9609](https://github.com/pingcap/tiflow/issues/9609) + - 修复在没有changefeed 时会阻塞上游 tidb gc 的问题 [#9633](https://github.com/pingcap/tiflow/issues/9633) + - 修复开启 scale-out 时流量在节点间分配不均匀问题 [#9665](https://github.com/pingcap/tiflow/issues/9665) + - 修复日志中记录了用户敏感信息的问题 [#9690](https://github.com/pingcap/tiflow/issues/9690) + TiDB Data Migration (DM) - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复 DM 在大小写不敏感的 collation 下无法正确处理冲突的问题 [#9489](https://github.com/pingcap/tiflow/issues/9489) @[hihihuhu](https://github.com/hihihuhu) + - 修复 DM validator 死锁问题并增强重试 [#9257](https://github.com/pingcap/tiflow/issues/9257) @[D3Hunter](https://github.com/D3Hunter) + - 修复 DM 在跳过失败 DDL 并且后续无 DDL 执行时显示延迟持续增长的问题 [#9605](https://github.com/pingcap/tiflow/issues/9605) @[D3Hunter](https://github.com/D3Hunter) + - 修复 DM 在跳过 online ddl 无法正确追踪上游表结构的问题 [#9587](https://github.com/pingcap/tiflow/issues/9587) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 DM 在乐观模式恢复任务时跳过所有 dml 的问题 [#9588](https://github.com/pingcap/tiflow/issues/9588) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 DM 下跳过添加 partition ddl 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复 Lightning 导入 NONCLUSTERED auto_increment 和 AUTO_ID_CACHE=1 的表后,插入数据报错重复的问题 [#46100](https://github.com/pingcap/tidb/issues/46100) @[tiancaiamao](https://github.com/tiancaiamao) + + TiUP @@ -448,4 +499,19 @@ In this version, TiDB partition management adds: 感谢来自 TiDB 社区的贡献者们: -+ [yumchina](https://github.com/yumchina) +- [aidendou](https://github.com/aidendou) +- [coderplay](https://github.com/coderplay) +- [fatelei](https://github.com/fatelei) +- [highpon](https://github.com/highpon) +- [hihihuhu](https://github.com/hihihuhu) (首次贡献者) +- [isabella0428](https://github.com/isabella0428) +- [jiyfhust](https://github.com/jiyfhust) +- [JK1Zhang](https://github.com/JK1Zhang) +- [joker53-1](https://github.com/joker53-1)(首次贡献者) +- [L-maple](https://github.com/L-maple) +- [mittalrishabh](https://github.com/mittalrishabh) +- [paveyry](https://github.com/paveyry) +- [shawn0915](https://github.com/shawn0915) +- [tedyu](https://github.com/tedyu) +- [yumchina](https://github.com/yumchina) +- [ZhuohaoHe](https://github.com/) From 51349b6a6cbba830e463a0e947df0ae056cdeb06 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 21:17:07 +0800 Subject: [PATCH 098/161] Update releases/release-7.4.0.md Co-authored-by: JaySon --- releases/release-7.4.0.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e0ea86212fed..18410ad8f5cd 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -451,8 +451,9 @@ In this version, TiDB partition management adds: + TiFlash - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复 TiFlash 监控页面无法正确显示读取请求持续的最长时间的问题 [#7713](https://github.com/pingcap/tiflash/issues/7713) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复 TiFlash 部分监控页面最长耗时指标显示错误的问题 [#8076](https://github.com/pingcap/tiflash/issues/8076) @[CalvinNeo](https://github.com/CalvinNeo) + - 修复 TiDB 错误的认为 MPP 任务失败的问题 [#7177](https://github.com/pingcap/tiflash/issues/7177) @[yibin87](https://github.com/yibin87) + Tools From 1e17b9600d91703b221c2576b09d0c9159e3c84d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 21:28:00 +0800 Subject: [PATCH 099/161] split the tasks for polishing improvements and bugfixes --- releases/release-7.4.0.md | 68 ++++++++++++--------------------------- 1 file changed, 20 insertions(+), 48 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 18410ad8f5cd..98a4dc2e297f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -335,12 +335,11 @@ In this version, TiDB partition management adds: ## 改进提升 -+ TiDB ++ TiDB **tw@qiancai 1** - 优化 Analyze partition table 的内存开销和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.comm/hawkingrei) - - note [#issue](链接) @[贡献者 GitHub ID](链接) -+ TiKV ++ TiKV **tw@qiancai 7** - [内存优化]改进resolver的内存使用,防止OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) - [内存优化]消除Router对象中的LRUCache,降低内存占用防止OOM[#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) @@ -349,56 +348,38 @@ In this version, TiDB partition management adds: - [内存优化] 降低Partitioned-raft-kv中流控模块的内存占用 [#15269] (https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) - [PD调用优化]减少PD的MemberList请求[#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) - [动态调参]增加动态调整rocksdb background_compaction的支持[#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) - - note [#issue](链接) @[贡献者 GitHub ID](链接) -+ PD ++ PD **tw@qiancai 5** - 改进获取 `min-resolved-ts` 的方法,减少网络连接数 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) - 优化 tso 的追踪信息,方便调查 tso 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) - 优化 HTTP Client 链接复用 [6914](https://github.com/tikv/pd/pull/6914) @[nolouch](https://github.com/nolouch) - 优化 dr-autosync 的状态跟新速度 [#6874](https://github.com/tikv/pd/pull/6874) @[disksing](https://github.com/disksing) - 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 [#7042](https://github.com/tikv/pd/pull/7042) @[nolouch](https://github.com/nolouch) - - note [#issue](链接) @[贡献者 GitHub ID](链接) -+ TiFlash ++ TiFlash **tw@qiancai 3** - - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) **tw@qiancai** + - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) - 添加 TiFlash 处理 Raft 同步过程中更多观测指标 [#8068](https://github.com/pingcap/tiflash/issues/8068) @[CalvinNeo](https://github.com/CalvinNeo) - 改进 TiFlash 文件格式,减少小文件数量以避免造成文件系统 inode 耗尽的问题 [#7595](https://github.com/pingcap/tiflash/issues/7595) @[hongyunyan](https://github.com/hongyunyan) + Tools - + Backup & Restore (BR) + + Backup & Restore (BR) **tw@Oreoxmt 1** + - 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 [#13638](https://github.com/tikv/tikv/issues/13638) @[YuJuncen](https://github.com/YuJuncen) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiCDC + + TiCDC **tw@Oreoxmt 1** - 优化同步 add index DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Data Migration (DM) - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Lightning + + TiDB Lightning **tw@Oreoxmt 4** - - note [#issue](链接) @[贡献者 GitHub ID](链接) - 优化 Lightning checksum 配置为 optional 的逻辑使其在校验失败时不报错退出 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) - 优化 Lightning 使在其地址中的所有 pd 都被 scale-in 时仍能继续工作 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) - 改善 Lightning 在 region scatter 阶段的重试逻辑 [#46203](https://github.com/pingcap/tidb/issues/46203) @[mittalrishabh](https://github.com/mittalrishabh) - 改善 Lightning 在导入数据阶段时对 no leader 错误的重试逻辑 [#46253](https://github.com/pingcap/tidb/issues/46253) @[lance6716](https://github.com/lance6716) - + TiUP - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - ## 错误修复 + TiDB @@ -406,7 +387,7 @@ In this version, TiDB partition management adds: - 修复 `BatchPointGet` 算子在非 HASH 分区表下执行结果错误的问题 [#45891](https://github.com/pingcap/tidb/pull/45891) @[Defined2014](https://github.com/Defined2014) - 修复 `BatchPointGet` 算子在 HASH 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/pull/46779) @[jiyfhust](https://github.com/jiyfhust) - 修复 parser 状态残留导致解析失败的问题 [#45903](https://github.com/pingcap/tidb/pull/45903) @[qw4990](https://github.com/qw4990) - - 修复 exchange partiton 之后导致表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) + - 修复 exchange partiton 之后导致表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - 修复 exchange partiton 没有检查 Constraints 的问题 [#45922](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - 修复 exchange partition 错误交换成功的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) - 修复 `tidb_enforce_mpp` 系统变量不能被正确还原的问题 [#46214](https://github.com/pingcap/tidb/issues/46214) @[djshow832](https://github.com/djshow832) @@ -415,6 +396,7 @@ In this version, TiDB partition management adds: - 修复 `AUTO_ID_CACHE=1` 时可能导致重复的问题 [#46444](https://github.com/pingcap/tidb/issues/46444) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 `show create table` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) + - 将 `Arrary` 类型的字符集设置为 `binary` 避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) - 修复子查询中存在 CTE 会导致 Parse 时 panic 的问题 [#45916](https://github.com/pingcap/tidb/pull/45916) @[djshow832](https://github.com/djshow832) - 修复 Exchange Partition 失败或取消时分区表的限制残留在原表上的问题 [#45877](https://github.com/pingcap/tidb/pull/45877) @[mjonss](https://github.com/mjonss) @@ -425,9 +407,9 @@ In this version, TiDB partition management adds: - 修复 Index Join 在超过内存限额时可能产生的 Hang [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) - 修复 Datetime 类型与数字常量比较时产生的结果错误问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) - 修复无符号类型与 Duration 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + -+ TiKV ++ TiKV **tw@ran-huang 9** - [Titan] 用lightning导入数据,挂起集群然后取消集群后,tikv陷入 CrashLoopBackOff[#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) - [监控] 修复Thread Voluntary/Nonvoluntary面板没有数据的问题 [#15413] (https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang] (https://github.com/SpadeA-Tang) @@ -437,19 +419,17 @@ In this version, TiDB partition management adds: - [dr-autosync] 当集群以sync-recover模式切换到备用集群后,在线恢复超时 [#15346] (https://github.com/tikv/tikv/issues/15346) @[Connor1996] (https://github.com/Connor1996) - [内存泄漏] 修复CpuRecord可能的内存泄漏 [#15304] (https://github.com/tikv/tikv/issues/15304) @[overvenus] (https://github.com/overvenus) - [dr-autosync] 当备用集群关闭后,主集群查询出现9002错误: tikv超时 [#12914] (https://github.com/tikv/tikv/issues/12914) @[Connor1996] (https://github.com/Connor1996) - - [dr-autosync]当主集群恢复后tikv再次启动,dr tikv会卡住 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - [dr-autosync] 当主集群恢复后tikv再次启动,dr tikv会卡住 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) -+ PD ++ PD **tw@hfxsd 5** - 修复在 Flashback 时不更新保存 region 信息的问题 [#6911](https://github.com/tikv/pd/pull/6911) @[overvenus](https://github.com/overvenus) - 修复因为同步 store config 慢而导致 PD Leader 切换慢的问题 [#6919](https://github.com/tikv/pd/pull/6919) @[bufferflies](https://github.com/bufferflies) - 修复 Scatter Peer 时未考虑 group 的问题 [#6962](https://github.com/tikv/pd/issues/6962) @[bufferflies](https://github.com/bufferflies) - 修复 RU 消耗小于 0 导致 PD 崩溃的问题 [#6983](https://github.com/tikv/pd/pull/6983) @[CabinfeverB](https://github.com/CabinfeverB) - 修复修改隔离等级时未同步到默认放置规则中的问题 [#7121](https://github.com/tikv/pd/issues/7121) @[rleungx](https://github.com/rleungx) - - note [#issue](链接) @[贡献者 GitHub ID](链接) -+ TiFlash ++ TiFlash **tw@hfxsd 3** - 修复 TiFlash 监控页面无法正确显示读取请求持续的最长时间的问题 [#7713](https://github.com/pingcap/tiflash/issues/7713) @[JaySon-Huang](https://github.com/JaySon-Huang) - 修复 TiFlash 部分监控页面最长耗时指标显示错误的问题 [#8076](https://github.com/pingcap/tiflash/issues/8076) @[CalvinNeo](https://github.com/CalvinNeo) @@ -457,14 +437,14 @@ In this version, TiDB partition management adds: + Tools - + Backup & Restore (BR) + + Backup & Restore (BR) **tw@hfxsd 4** - 修复备份失败时 BR 的报错信息 "resolve lock timeout" 具有误导性,掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) - 修复 PITR 恢复隐式主键可能冲突的问题 [#46520](https://github.com/pingcap/tidb/issues/46520) @[3pointer](https://github.com/3pointer) - 修复 PITR 恢复 meta-kv 出错的问题 [#46578](https://github.com/pingcap/tidb/issues/46578) @[Leavrth](https://github.com/Leavrth) - 修复 BR 集成测试用例出错的问题 [#45561](https://github.com/pingcap/tidb/issues/46561) @[purelind](https://github.com/purelind) - + TiCDC + + TiCDC **tw@hfxsd 8** - 修复 PD 做扩缩容场景下 CDC 访问原无效地址的问题 [#9054](https://github.com/pingcap/tiflow/issues/9054) - 修复某些特殊场景下会导致 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309)[#9450](https://github.com/pingcap/tiflow/issues/9450)[#9542](https://github.com/pingcap/tiflow/issues/9542)[#9685](https://github.com/pingcap/tiflow/issues/9685) @@ -475,9 +455,8 @@ In this version, TiDB partition management adds: - 修复开启 scale-out 时流量在节点间分配不均匀问题 [#9665](https://github.com/pingcap/tiflow/issues/9665) - 修复日志中记录了用户敏感信息的问题 [#9690](https://github.com/pingcap/tiflow/issues/9690) - + TiDB Data Migration (DM) + + TiDB Data Migration (DM) **tw@hfxsd 6** - - note [#issue](链接) @[贡献者 GitHub ID](链接) - 修复 DM 在大小写不敏感的 collation 下无法正确处理冲突的问题 [#9489](https://github.com/pingcap/tiflow/issues/9489) @[hihihuhu](https://github.com/hihihuhu) - 修复 DM validator 死锁问题并增强重试 [#9257](https://github.com/pingcap/tiflow/issues/9257) @[D3Hunter](https://github.com/D3Hunter) - 修复 DM 在跳过失败 DDL 并且后续无 DDL 执行时显示延迟持续增长的问题 [#9605](https://github.com/pingcap/tiflow/issues/9605) @[D3Hunter](https://github.com/D3Hunter) @@ -485,17 +464,10 @@ In this version, TiDB partition management adds: - 修复 DM 在乐观模式恢复任务时跳过所有 dml 的问题 [#9588](https://github.com/pingcap/tiflow/issues/9588) @[GMHDBJD](https://github.com/GMHDBJD) - 修复 DM 下跳过添加 partition ddl 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) - + TiDB Lightning + + TiDB Lightning **tw@hfxsd 1** - - note [#issue](链接) @[贡献者 GitHub ID](链接) - 修复 Lightning 导入 NONCLUSTERED auto_increment 和 AUTO_ID_CACHE=1 的表后,插入数据报错重复的问题 [#46100](https://github.com/pingcap/tidb/issues/46100) @[tiancaiamao](https://github.com/tiancaiamao) - - + TiUP - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - ## 贡献者 感谢来自 TiDB 社区的贡献者们: From dacfc43a9d5d0714cb46039c098ff2d90fa7a095 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sat, 7 Oct 2023 22:28:21 +0800 Subject: [PATCH 100/161] Apply suggestions from code review --- releases/release-7.4.0.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 98a4dc2e297f..11e10340c643 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -365,10 +365,13 @@ In this version, TiDB partition management adds: + Tools - + Backup & Restore (BR) **tw@Oreoxmt 1** + + Backup & Restore (BR) **tw@Oreoxmt 5** - 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 [#13638](https://github.com/tikv/tikv/issues/13638) @[YuJuncen](https://github.com/YuJuncen) - + - 通过设置 HTTP 客户端 MaxIdleConns 和 MaxIdleConnsPerHost 参数,增强 Log 备份以及 PiTR 恢复任务对连接复用的支持 [#46011](https://github.com/pingcap/tidb/issues/46011) @[Leavrth](https://github.com/Leavrth) + - 增强备份恢复任务在连接 PD 或者是外部 S3 存储出错时的容错能力 [#42909](https://github.com/pingcap/tidb/issues/42909) @[Leavrth](https://github.com/Leavrth) + - 新增恢复参数 `WaitTiflashReady`。当打开这个参数时,restore 操作将会等待 TiFlash 副本复制成功后才结束 [#43828](https://github.com/pingcap/tidb/issues/43828) [#46302](https://github.com/pingcap/tidb/issues/46302) @[3pointer](https://github.com/3pointer) + - 减少日志备份 `resolve lock` 的 CPU 开销 [#40759](https://github.com/pingcap/tidb/issues/40759) @[3pointer](https://github.com/3pointer) + TiCDC **tw@Oreoxmt 1** - 优化同步 add index DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) From 317b731db2ee91f13c314005b3de2e687125bc26 Mon Sep 17 00:00:00 2001 From: crazycs Date: Sun, 8 Oct 2023 01:28:00 +0800 Subject: [PATCH 101/161] Update releases/release-7.4.0.md Co-authored-by: ekexium --- releases/release-7.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 11e10340c643..d6a25d5fa4c9 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -318,6 +318,7 @@ In this version, TiDB partition management adds: | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | +| `tidb_schema_version_cache_limit` | 新增 | 这个变量用来控制 schema cache 的容量 | | | 新增/删除/修改 | | ### 配置文件参数 From 315c62ee5d62311e2db367b6da60f4da4a55ec82 Mon Sep 17 00:00:00 2001 From: crazycs Date: Sun, 8 Oct 2023 01:29:17 +0800 Subject: [PATCH 102/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d6a25d5fa4c9..81a0c7943283 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -319,7 +319,6 @@ In this version, TiDB partition management adds: | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | | `tidb_schema_version_cache_limit` | 新增 | 这个变量用来控制 schema cache 的容量 | -| | 新增/删除/修改 | | ### 配置文件参数 From dfad46422511a267a5f1ac24f7b718173d2dcd9d Mon Sep 17 00:00:00 2001 From: Aolin Date: Sun, 8 Oct 2023 11:02:05 +0800 Subject: [PATCH 103/161] update improvements and bug fixes Signed-off-by: Aolin --- releases/release-7.4.0.md | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 81a0c7943283..cdd418ceb766 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -366,39 +366,39 @@ In this version, TiDB partition management adds: + Tools + Backup & Restore (BR) **tw@Oreoxmt 5** - + - 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 [#13638](https://github.com/tikv/tikv/issues/13638) @[YuJuncen](https://github.com/YuJuncen) - - 通过设置 HTTP 客户端 MaxIdleConns 和 MaxIdleConnsPerHost 参数,增强 Log 备份以及 PiTR 恢复任务对连接复用的支持 [#46011](https://github.com/pingcap/tidb/issues/46011) @[Leavrth](https://github.com/Leavrth) - - 增强备份恢复任务在连接 PD 或者是外部 S3 存储出错时的容错能力 [#42909](https://github.com/pingcap/tidb/issues/42909) @[Leavrth](https://github.com/Leavrth) - - 新增恢复参数 `WaitTiflashReady`。当打开这个参数时,restore 操作将会等待 TiFlash 副本复制成功后才结束 [#43828](https://github.com/pingcap/tidb/issues/43828) [#46302](https://github.com/pingcap/tidb/issues/46302) @[3pointer](https://github.com/3pointer) - - 减少日志备份 `resolve lock` 的 CPU 开销 [#40759](https://github.com/pingcap/tidb/issues/40759) @[3pointer](https://github.com/3pointer) + - 通过设置 HTTP 客户端 MaxIdleConns 和 MaxIdleConnsPerHost 参数,增强日志备份以及 PITR 恢复任务对连接复用的支持 [#46011](https://github.com/pingcap/tidb/issues/46011) @[Leavrth](https://github.com/Leavrth) + - 增强 BR 在连接 PD 或者是外部 S3 存储出错时的容错能力 [#42909](https://github.com/pingcap/tidb/issues/42909) @[Leavrth](https://github.com/Leavrth) + - 新增 restore 参数 `WaitTiflashReady`。当打开这个参数时,restore 操作将会等待 TiFlash 副本复制成功后才结束 [#43828](https://github.com/pingcap/tidb/issues/43828) [#46302](https://github.com/pingcap/tidb/issues/46302) @[3pointer](https://github.com/3pointer) + - 减少日志备份 `resolve lock` 的 CPU 开销 [#40759](https://github.com/pingcap/tidb/issues/40759) @[3pointer](https://github.com/3pointer) + TiCDC **tw@Oreoxmt 1** - - - 优化同步 add index DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) + + - 优化同步 `ADD INDEX` DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) + TiDB Lightning **tw@Oreoxmt 4** - - 优化 Lightning checksum 配置为 optional 的逻辑使其在校验失败时不报错退出 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) - - 优化 Lightning 使在其地址中的所有 pd 都被 scale-in 时仍能继续工作 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) - - 改善 Lightning 在 region scatter 阶段的重试逻辑 [#46203](https://github.com/pingcap/tidb/issues/46203) @[mittalrishabh](https://github.com/mittalrishabh) - - 改善 Lightning 在导入数据阶段时对 no leader 错误的重试逻辑 [#46253](https://github.com/pingcap/tidb/issues/46253) @[lance6716](https://github.com/lance6716) + - 修复 `checksum = "optional"` 时 Checksum 阶段仍然报错的问题 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) + - 修复当 PD 集群地址变更时数据导入失败的问题 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) + - 优化 TiDB Lightning 在 Region scatter 阶段的重试逻辑 [#46203](https://github.com/pingcap/tidb/issues/46203) @[mittalrishabh](https://github.com/mittalrishabh) + - 优化 TiDB Lightning 在导入数据阶段对 `no leader` 错误的重试逻辑 [#46253](https://github.com/pingcap/tidb/issues/46253) @[lance6716](https://github.com/lance6716) ## 错误修复 + TiDB - - 修复 `BatchPointGet` 算子在非 HASH 分区表下执行结果错误的问题 [#45891](https://github.com/pingcap/tidb/pull/45891) @[Defined2014](https://github.com/Defined2014) - - 修复 `BatchPointGet` 算子在 HASH 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/pull/46779) @[jiyfhust](https://github.com/jiyfhust) - - 修复 parser 状态残留导致解析失败的问题 [#45903](https://github.com/pingcap/tidb/pull/45903) @[qw4990](https://github.com/qw4990) - - 修复 exchange partiton 之后导致表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - - 修复 exchange partiton 没有检查 Constraints 的问题 [#45922](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - - 修复 exchange partition 错误交换成功的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) + - 修复 `BatchPointGet` 算子在非 Hash 分区表下执行结果错误的问题 [#45891](https://github.com/pingcap/tidb/pull/45891) @[Defined2014](https://github.com/Defined2014) + - 修复 `BatchPointGet` 算子在 Hash 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/pull/46779) @[jiyfhust](https://github.com/jiyfhust) + - 修复 TiDB parser 状态残留导致解析失败的问题 [#45903](https://github.com/pingcap/tidb/pull/45903) @[qw4990](https://github.com/qw4990) + - 修复执行 `EXCHANGE PARTITION` 后表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) + - 修复 `EXCHANGE PARTITION` 没有检查约束的问题 [#45922](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) + - 修复 `EXCHANGE PARTITION` 错误交换成功的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) - 修复 `tidb_enforce_mpp` 系统变量不能被正确还原的问题 [#46214](https://github.com/pingcap/tidb/issues/46214) @[djshow832](https://github.com/djshow832) - - 修复 like 语句中 `_` 没有被正确处理的问题 [#46287](https://github.com/pingcap/tidb/issues/46287) [#46618](https://github.com/pingcap/tidb/issues/46618) @[Defined2014](https://github.com/Defined2014) + - 修复 `LIKE` 语句中 `_` 没有被正确处理的问题 [#46287](https://github.com/pingcap/tidb/issues/46287) [#46618](https://github.com/pingcap/tidb/issues/46618) @[Defined2014](https://github.com/Defined2014) - 修复当获取 schema 失败时会导致 `schemaTs` 被设置为 0 的问题 [#46325](https://github.com/pingcap/tidb/issues/46325) @[hihihuhu](https://github.com/hihihuhu) - - 修复 `AUTO_ID_CACHE=1` 时可能导致重复的问题 [#46444](https://github.com/pingcap/tidb/issues/46444) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复 `AUTO_ID_CACHE=1` 时可能导致 `Duplicate entry` 的问题 [#46444](https://github.com/pingcap/tidb/issues/46444) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) - - 修复 `AUTO_ID_CACHE=1` 时 `show create table` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复 `AUTO_ID_CACHE=1` 时 `SHOW CREATE TABLE` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) - 将 `Arrary` 类型的字符集设置为 `binary` 避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) - 修复子查询中存在 CTE 会导致 Parse 时 panic 的问题 [#45916](https://github.com/pingcap/tidb/pull/45916) @[djshow832](https://github.com/djshow832) From e9b91840a3360a03ccfe94197d8dfdfc7dccd3d9 Mon Sep 17 00:00:00 2001 From: Ran Date: Sun, 8 Oct 2023 14:02:10 +0800 Subject: [PATCH 104/161] Apply suggestions from code review --- releases/release-7.4.0.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index cdd418ceb766..c5eb6bdcae50 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -401,25 +401,25 @@ In this version, TiDB partition management adds: - 修复 `AUTO_ID_CACHE=1` 时 `SHOW CREATE TABLE` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) - 将 `Arrary` 类型的字符集设置为 `binary` 避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) - - 修复子查询中存在 CTE 会导致 Parse 时 panic 的问题 [#45916](https://github.com/pingcap/tidb/pull/45916) @[djshow832](https://github.com/djshow832) - - 修复 Exchange Partition 失败或取消时分区表的限制残留在原表上的问题 [#45877](https://github.com/pingcap/tidb/pull/45877) @[mjonss](https://github.com/mjonss) - - 修复 List 分区的定义中不允许同时使用 NULL 和空字符串的问题 [#45695](https://github.com/pingcap/tidb/pull/45695) @[mjonss](https://github.com/mjonss) - - 修复 Exchange Partition 时无法检测出不符合分区定义的数据的问题 [#46533](https://github.com/pingcap/tidb/pull/46533) @[mjonss](https://github.com/mjonss) - - 修复配置文件中 tmp-storage-quota 不生效的问题 [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) + - 修复子查询中存在 CTE 会导致 Parse 时 panic 的问题 [#45838](https://github.com/pingcap/tidb/issues/45838) @[djshow832](https://github.com/djshow832) + - 修复 Exchange Partition 失败或取消时分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) + - 修复 List 分区的定义中不允许同时使用 NULL 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) + - 修复 Exchange Partition 时无法检测出不符合分区定义的数据的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) + (dup) - 修复 `tmp-storage-quota` 配置无法生效的问题 [#45161](https://github.com/pingcap/tidb/issues/45161) [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) - 修复函数 WEIGHT_STRING() 不感知 Collation 的问题 [#45725](https://github.com/pingcap/tidb/issues/45725) @[dveeden](https://github.com/dveeden) - - 修复 Index Join 在超过内存限额时可能产生的 Hang [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) - - 修复 Datetime 类型与数字常量比较时产生的结果错误问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) + (dup) - 修复 Index Join 出错可能导致查询卡住的问题 [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) + (dup) - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) - 修复无符号类型与 Duration 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) + TiKV **tw@ran-huang 9** - - [Titan] 用lightning导入数据,挂起集群然后取消集群后,tikv陷入 CrashLoopBackOff[#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) + (dup) - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) - [监控] 修复Thread Voluntary/Nonvoluntary面板没有数据的问题 [#15413] (https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang] (https://github.com/SpadeA-Tang) - [监控] 修复raftstore-applys一直不断增长的数据错误[#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996] (https://github.com/Connor1996) - - [Jepsen] 修复由于meta数据不正确造成tikv的panic [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan] - - [dr-autosync] 切换sync_recovery到sync之后qps掉0 [#15366] (https://github.com/tikv/tikv/issues/13366) @[nolouch](https://github.com/nolouch) - - [dr-autosync] 当集群以sync-recover模式切换到备用集群后,在线恢复超时 [#15346] (https://github.com/tikv/tikv/issues/15346) @[Connor1996] (https://github.com/Connor1996) + - [Jepsen] 修复由于meta数据不正确造成tikv的panic [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) + - [dr-autosync] 切换sync_recovery到sync之后qps掉0 [#13366] (https://github.com/tikv/tikv/issues/13366) @[nolouch](https://github.com/nolouch) + (dup) - 修复 Online Unsafe Recovery 超时未中止的问题 [#15346](https://github.com/tikv/tikv/issues/15346) @[Connor1996](https://github.com/Connor1996) - [内存泄漏] 修复CpuRecord可能的内存泄漏 [#15304] (https://github.com/tikv/tikv/issues/15304) @[overvenus] (https://github.com/overvenus) - [dr-autosync] 当备用集群关闭后,主集群查询出现9002错误: tikv超时 [#12914] (https://github.com/tikv/tikv/issues/12914) @[Connor1996] (https://github.com/Connor1996) - [dr-autosync] 当主集群恢复后tikv再次启动,dr tikv会卡住 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) From 1b5a523bdaab04e4a9771f57e0b1ca79ed590ef1 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 8 Oct 2023 15:22:42 +0800 Subject: [PATCH 105/161] Apply suggestions from code review --- releases/release-7.4.0.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index c5eb6bdcae50..f9082285e245 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -426,10 +426,10 @@ In this version, TiDB partition management adds: + PD **tw@hfxsd 5** - - 修复在 Flashback 时不更新保存 region 信息的问题 [#6911](https://github.com/tikv/pd/pull/6911) @[overvenus](https://github.com/overvenus) - - 修复因为同步 store config 慢而导致 PD Leader 切换慢的问题 [#6919](https://github.com/tikv/pd/pull/6919) @[bufferflies](https://github.com/bufferflies) - - 修复 Scatter Peer 时未考虑 group 的问题 [#6962](https://github.com/tikv/pd/issues/6962) @[bufferflies](https://github.com/bufferflies) - - 修复 RU 消耗小于 0 导致 PD 崩溃的问题 [#6983](https://github.com/tikv/pd/pull/6983) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复在 Flashback 时不更新保存 Region 信息的问题 [#6912](https://github.com/tikv/pd/issues/6912) @[overvenus](https://github.com/overvenus) + - 修复因为同步 store config 慢而导致 PD Leader 切换慢的问题 [#6918](https://github.com/tikv/pd/issues/6918) @[bufferflies](https://github.com/bufferflies) + - 修复 Scatter Peer 时未考虑 Group 的问题 [#6962](https://github.com/tikv/pd/issues/6962) @[bufferflies](https://github.com/bufferflies) + - 修复 RU 消耗小于 0 导致 PD 崩溃的问题 [#6973](https://github.com/tikv/pd/issues/6973) @[CabinfeverB](https://github.com/CabinfeverB) - 修复修改隔离等级时未同步到默认放置规则中的问题 [#7121](https://github.com/tikv/pd/issues/7121) @[rleungx](https://github.com/rleungx) + TiFlash **tw@hfxsd 3** @@ -442,34 +442,34 @@ In this version, TiDB partition management adds: + Backup & Restore (BR) **tw@hfxsd 4** - - 修复备份失败时 BR 的报错信息 "resolve lock timeout" 具有误导性,掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) + - 修复备份失败时 BR 的误导性报错信息 "resolve lock timeout" 掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) - 修复 PITR 恢复隐式主键可能冲突的问题 [#46520](https://github.com/pingcap/tidb/issues/46520) @[3pointer](https://github.com/3pointer) - 修复 PITR 恢复 meta-kv 出错的问题 [#46578](https://github.com/pingcap/tidb/issues/46578) @[Leavrth](https://github.com/Leavrth) - 修复 BR 集成测试用例出错的问题 [#45561](https://github.com/pingcap/tidb/issues/46561) @[purelind](https://github.com/purelind) + TiCDC **tw@hfxsd 8** - - 修复 PD 做扩缩容场景下 CDC 访问原无效地址的问题 [#9054](https://github.com/pingcap/tiflow/issues/9054) - - 修复某些特殊场景下会导致 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309)[#9450](https://github.com/pingcap/tiflow/issues/9450)[#9542](https://github.com/pingcap/tiflow/issues/9542)[#9685](https://github.com/pingcap/tiflow/issues/9685) - - 修复上游在同一个事务中同时修改多个UK导致下游同步可能会失败的问题 [#9430](https://github.com/pingcap/tiflow/issues/9430) - - 修复上游在同一条 DDL 中 rename 多个 table 场景下同步出错的问题 [#9476](https://github.com/pingcap/tiflow/issues/9476) [#9488](https://github.com/pingcap/tiflow/issues/9488) - - 修复CSV格式下没有校验中文分隔符的问题 [#9609](https://github.com/pingcap/tiflow/issues/9609) - - 修复在没有changefeed 时会阻塞上游 tidb gc 的问题 [#9633](https://github.com/pingcap/tiflow/issues/9633) - - 修复开启 scale-out 时流量在节点间分配不均匀问题 [#9665](https://github.com/pingcap/tiflow/issues/9665) - - 修复日志中记录了用户敏感信息的问题 [#9690](https://github.com/pingcap/tiflow/issues/9690) + - 修复 PD 做扩缩容场景下 TiCDC 访问无效旧地址的问题 [#9584](https://github.com/pingcap/tiflow/issues/9584) @[fubinzh](https://github.com/fubinzh) @[asddongmen](https://github.com/asddongmen) + - 修复某些特殊场景下 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309) [#9450](https://github.com/pingcap/tiflow/issues/9450) [#9542](https://github.com/pingcap/tiflow/issues/9542) [#9685](https://github.com/pingcap/tiflow/issues/9685) @[hicqu](https://github.com/hicqu) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复在上游同一个事务中修改多行唯一键场景下,TiCDC 可能导致同步写冲突的问题 [#9430](https://github.com/pingcap/tiflow/issues/9430) @[sdojjy](https://github.com/sdojjy) + - 修复上游在同一条 DDL 中重命名多个表的场景下同步出错的问题 [#9476](https://github.com/pingcap/tiflow/issues/9476) [#9488](https://github.com/pingcap/tiflow/issues/9488) @[CharlesCheung96](https://github.com/CharlesCheung96) @[asddongmen](https://github.com/asddongmen) + - 修复 CSV 格式下没有校验中文分隔符的问题 [#9609](https://github.com/pingcap/tiflow/issues/9609) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复所有 changefeed 被移除时会阻塞上游 TiDB GC 的问题 [#9633](https://github.com/pingcap/tiflow/issues/9633) @[sdojjy](https://github.com/sdojjy) + - 修复开启 `scale-out` 时流量在节点间分配不均匀问题 [#9665](https://github.com/pingcap/tiflow/issues/9665) @[sdojjy](https://github.com/sdojjy) + - 修复日志中记录了用户敏感信息的问题 [#9690](https://github.com/pingcap/tiflow/issues/9690) @[sdojjy](https://github.com/sdojjy) + TiDB Data Migration (DM) **tw@hfxsd 6** - 修复 DM 在大小写不敏感的 collation 下无法正确处理冲突的问题 [#9489](https://github.com/pingcap/tiflow/issues/9489) @[hihihuhu](https://github.com/hihihuhu) - 修复 DM validator 死锁问题并增强重试 [#9257](https://github.com/pingcap/tiflow/issues/9257) @[D3Hunter](https://github.com/D3Hunter) - 修复 DM 在跳过失败 DDL 并且后续无 DDL 执行时显示延迟持续增长的问题 [#9605](https://github.com/pingcap/tiflow/issues/9605) @[D3Hunter](https://github.com/D3Hunter) - - 修复 DM 在跳过 online ddl 无法正确追踪上游表结构的问题 [#9587](https://github.com/pingcap/tiflow/issues/9587) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复 DM 在乐观模式恢复任务时跳过所有 dml 的问题 [#9588](https://github.com/pingcap/tiflow/issues/9588) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复 DM 下跳过添加 partition ddl 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 DM 在跳过 Online DDL 时无法正确追踪上游表结构的问题 [#9587](https://github.com/pingcap/tiflow/issues/9587) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 DM 在乐观模式恢复任务时跳过所有 DML 的问题 [#9588](https://github.com/pingcap/tiflow/issues/9588) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 DM 在乐观模式中跳过添加 Partition DDL 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning **tw@hfxsd 1** - - 修复 Lightning 导入 NONCLUSTERED auto_increment 和 AUTO_ID_CACHE=1 的表后,插入数据报错重复的问题 [#46100](https://github.com/pingcap/tidb/issues/46100) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复 TiDB Lightning 导入 `NONCLUSTERED auto_increment` 和 `AUTO_ID_CACHE=1` 表后,插入数据报错的问题 [#46100](https://github.com/pingcap/tidb/issues/46100) @[tiancaiamao](https://github.com/tiancaiamao) ## 贡献者 From cb585b782d18254abed88d580e534e06addb41d9 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 8 Oct 2023 15:35:04 +0800 Subject: [PATCH 106/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f9082285e245..6e0f0bd90e41 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -311,6 +311,7 @@ In this version, TiDB partition management adds: | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | | [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-new-in-v740) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | +| [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | From 95566b588b12e6304ccf95e8d40e87699590a73f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Sun, 8 Oct 2023 15:37:48 +0800 Subject: [PATCH 107/161] Update releases/release-7.4.0.md Co-authored-by: Xiaoju Wu --- releases/release-7.4.0.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 6e0f0bd90e41..d5330edbb7b3 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -338,7 +338,11 @@ In this version, TiDB partition management adds: + TiDB **tw@qiancai 1** - - 优化 Analyze partition table 的内存开销和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.comm/hawkingrei) + - 优化了 Analyze partition table 的内存开销和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.com/hawkingrei) + - 优化了统计信息垃圾回收的内存开销和性能 [#46138](https://github.com/pingcap/tidb/issues/31778) @[winoros](https://github.com/winoros) + - 优化了 Index Merge intersection 类型的 limit 下推 [#46862] (https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) + - 改进了 cost model 以尽可能避免在 IndexLookup 回表多时错误地选择 FullScan [#46559] (https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) + + TiKV **tw@qiancai 7** From fcf8633b2cbfead6d6ac3377230451a1d7ef3275 Mon Sep 17 00:00:00 2001 From: Ran Date: Sun, 8 Oct 2023 15:48:49 +0800 Subject: [PATCH 108/161] Apply suggestions from code review --- releases/release-7.4.0.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d5330edbb7b3..ef51e70c05a0 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -405,29 +405,29 @@ In this version, TiDB partition management adds: - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 `SHOW CREATE TABLE` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) - - 将 `Arrary` 类型的字符集设置为 `binary` 避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) - - 修复子查询中存在 CTE 会导致 Parse 时 panic 的问题 [#45838](https://github.com/pingcap/tidb/issues/45838) @[djshow832](https://github.com/djshow832) - - 修复 Exchange Partition 失败或取消时分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) - - 修复 List 分区的定义中不允许同时使用 NULL 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) - - 修复 Exchange Partition 时无法检测出不符合分区定义的数据的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) + - 将多值索引列字符集从 `array` 变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) + - 修复在子查询中使用 CTE 时,解析出现 panic 的问题 [#45838](https://github.com/pingcap/tidb/issues/45838) @[djshow832](https://github.com/djshow832) + - 修复在交换分区失败或被取消时,分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) + - 修复 List 分区的定义中不允许同时使用 `NULL` 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) + - 修复交换分区时,无法检测出不符合分区定义的数据的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) (dup) - 修复 `tmp-storage-quota` 配置无法生效的问题 [#45161](https://github.com/pingcap/tidb/issues/45161) [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) - - 修复函数 WEIGHT_STRING() 不感知 Collation 的问题 [#45725](https://github.com/pingcap/tidb/issues/45725) @[dveeden](https://github.com/dveeden) + - 修复函数 `WEIGHT_STRING()` 不匹配排序规则的问题 [#45725](https://github.com/pingcap/tidb/issues/45725) @[dveeden](https://github.com/dveeden) (dup) - 修复 Index Join 出错可能导致查询卡住的问题 [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) (dup) - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) - - 修复无符号类型与 Duration 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) + - 修复无符号类型与 `Duration` 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) + TiKV **tw@ran-huang 9** (dup) - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) - - [监控] 修复Thread Voluntary/Nonvoluntary面板没有数据的问题 [#15413] (https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang] (https://github.com/SpadeA-Tang) - - [监控] 修复raftstore-applys一直不断增长的数据错误[#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996] (https://github.com/Connor1996) - - [Jepsen] 修复由于meta数据不正确造成tikv的panic [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) - - [dr-autosync] 切换sync_recovery到sync之后qps掉0 [#13366] (https://github.com/tikv/tikv/issues/13366) @[nolouch](https://github.com/nolouch) + - 修复 Thread Voluntary/Nonvoluntary 监控面板没有数据的问题 [#15413] (https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang] (https://github.com/SpadeA-Tang) + - 修复 raftstore-applys 不断增长的数据错误 [#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996] (https://github.com/Connor1996) + - 修复由于 Region 的元数据不正确造成 TiKV panic 的问题 [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) + - 修复切换 sync_recovery 到 sync 后 QPS 降至 0 的问题 [#15366] (https://github.com/tikv/tikv/issues/15366) @[nolouch](https://github.com/nolouch) (dup) - 修复 Online Unsafe Recovery 超时未中止的问题 [#15346](https://github.com/tikv/tikv/issues/15346) @[Connor1996](https://github.com/Connor1996) - - [内存泄漏] 修复CpuRecord可能的内存泄漏 [#15304] (https://github.com/tikv/tikv/issues/15304) @[overvenus] (https://github.com/overvenus) - - [dr-autosync] 当备用集群关闭后,主集群查询出现9002错误: tikv超时 [#12914] (https://github.com/tikv/tikv/issues/12914) @[Connor1996] (https://github.com/Connor1996) - - [dr-autosync] 当主集群恢复后tikv再次启动,dr tikv会卡住 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) + - 修复 CpuRecord 可能导致的内存泄漏 [#15304] (https://github.com/tikv/tikv/issues/15304) @[overvenus] (https://github.com/overvenus) + - 修复当备用集群关闭后,主集群查询出现 `"Error 9002: TiKV server timeout"` 的问题 [#12914] (https://github.com/tikv/tikv/issues/12914) @[Connor1996] (https://github.com/Connor1996) + - 修复当主集群恢复后 TiKV 再次启动时,备用 TiKV 会卡住的问题 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) + PD **tw@hfxsd 5** From ad6643a4925dd8477cf6e8bd9630df3a2ef00e61 Mon Sep 17 00:00:00 2001 From: Ran Date: Sun, 8 Oct 2023 16:25:59 +0800 Subject: [PATCH 109/161] Apply suggestions from code review --- releases/release-7.4.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index ef51e70c05a0..fb967de8ef0d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -405,7 +405,7 @@ In this version, TiDB partition management adds: - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 `SHOW CREATE TABLE` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) - - 将多值索引列字符集从 `array` 变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) + - 将多值索引列的排序规则变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) - 修复在子查询中使用 CTE 时,解析出现 panic 的问题 [#45838](https://github.com/pingcap/tidb/issues/45838) @[djshow832](https://github.com/djshow832) - 修复在交换分区失败或被取消时,分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) - 修复 List 分区的定义中不允许同时使用 `NULL` 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) @@ -420,14 +420,14 @@ In this version, TiDB partition management adds: + TiKV **tw@ran-huang 9** (dup) - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) - - 修复 Thread Voluntary/Nonvoluntary 监控面板没有数据的问题 [#15413] (https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang] (https://github.com/SpadeA-Tang) + - 修复 Thread Voluntary/Nonvoluntary 监控面板没有数据的问题 [#15413](https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang](https://github.com/SpadeA-Tang) - 修复 raftstore-applys 不断增长的数据错误 [#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996] (https://github.com/Connor1996) - 修复由于 Region 的元数据不正确造成 TiKV panic 的问题 [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) - 修复切换 sync_recovery 到 sync 后 QPS 降至 0 的问题 [#15366] (https://github.com/tikv/tikv/issues/15366) @[nolouch](https://github.com/nolouch) (dup) - 修复 Online Unsafe Recovery 超时未中止的问题 [#15346](https://github.com/tikv/tikv/issues/15346) @[Connor1996](https://github.com/Connor1996) - - 修复 CpuRecord 可能导致的内存泄漏 [#15304] (https://github.com/tikv/tikv/issues/15304) @[overvenus] (https://github.com/overvenus) - - 修复当备用集群关闭后,主集群查询出现 `"Error 9002: TiKV server timeout"` 的问题 [#12914] (https://github.com/tikv/tikv/issues/12914) @[Connor1996] (https://github.com/Connor1996) - - 修复当主集群恢复后 TiKV 再次启动时,备用 TiKV 会卡住的问题 [#12320] (https://github.com/tikv/tikv/issues/12320) @[disksing] (https://github.com/disksing) + - 修复 CpuRecord 可能导致的内存泄漏 [#15304](https://github.com/tikv/tikv/issues/15304) @[overvenus](https://github.com/overvenus) + - 修复当备用集群关闭后,查询主集群出现 `"Error 9002: TiKV server timeout"` 的问题 [#12914](https://github.com/tikv/tikv/issues/12914) @[Connor1996](https://github.com/Connor1996) + - 修复当主集群恢复后 TiKV 再次启动时,备用 TiKV 会卡住的问题 [#12320](https://github.com/tikv/tikv/issues/12320) @[disksing](https://github.com/disksing) + PD **tw@hfxsd 5** From 5e0f56d304570c0b6605a206f4085e68aa48ce0f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 8 Oct 2023 16:42:45 +0800 Subject: [PATCH 110/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index fb967de8ef0d..6488d4f38ac6 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -319,7 +319,6 @@ In this version, TiDB partition management adds: | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | -| `tidb_schema_version_cache_limit` | 新增 | 这个变量用来控制 schema cache 的容量 | ### 配置文件参数 From 583b97badcd332351dbdb8704dfd4058e010ef9b Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Sun, 8 Oct 2023 17:09:29 +0800 Subject: [PATCH 111/161] Apply suggestions from code review --- releases/release-7.4.0.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 6488d4f38ac6..de81c405e7ba 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -337,34 +337,34 @@ In this version, TiDB partition management adds: + TiDB **tw@qiancai 1** - - 优化了 Analyze partition table 的内存开销和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.com/hawkingrei) - - 优化了统计信息垃圾回收的内存开销和性能 [#46138](https://github.com/pingcap/tidb/issues/31778) @[winoros](https://github.com/winoros) - - 优化了 Index Merge intersection 类型的 limit 下推 [#46862] (https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) - - 改进了 cost model 以尽可能避免在 IndexLookup 回表多时错误地选择 FullScan [#46559] (https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) + - 优化 `ANALYZE` 分区表的内存使用和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.com/hawkingrei) + - 优化统计信息垃圾回收的内存使用和性能 [#31778](https://github.com/pingcap/tidb/issues/31778) @[winoros](https://github.com/winoros) + - 优化索引合并进行交集操作时的 `limit` 下推,提高查询性能 [#46863](https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) + - 改进代价模型 (Cost Model) 以尽量避免在 `IndexLookup` 回表任务多时错误地选择全表扫描 [#45132](https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) + TiKV **tw@qiancai 7** - - [内存优化]改进resolver的内存使用,防止OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) - - [内存优化]消除Router对象中的LRUCache,降低内存占用防止OOM[#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) - - [内存优化] 降低TICDC Resolver的内存使用 [#15412] (https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) - - [内存优化] 降低RocksDB compaction带来的内存抖动 [#15324] (https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) - - [内存优化] 降低Partitioned-raft-kv中流控模块的内存占用 [#15269] (https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) - - [PD调用优化]减少PD的MemberList请求[#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) - - [动态调参]增加动态调整rocksdb background_compaction的支持[#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) + - 改进 Resolver 的内存使用,防止 OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) + - 消除 Router 对象中的 LRUCache,降低内存占用,防止 OOM [#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) + - 降低 TiCDC Resolver 的内存占用 [#15412] (https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) + - 降低 RocksDB compaction 带来的内存抖动 [#15324] (https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) + - 降低 Partitioned Raft KV 中流控模块的内存占用 [#15269] (https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) + - 减少 PD 的 `MemberList` 请求,优化 PD 调用 [#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) + - 支持动态调整 RocksDB 的 `background_compaction` [#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) + PD **tw@qiancai 5** - 改进获取 `min-resolved-ts` 的方法,减少网络连接数 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) - - 优化 tso 的追踪信息,方便调查 tso 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) - - 优化 HTTP Client 链接复用 [6914](https://github.com/tikv/pd/pull/6914) @[nolouch](https://github.com/nolouch) - - 优化 dr-autosync 的状态跟新速度 [#6874](https://github.com/tikv/pd/pull/6874) @[disksing](https://github.com/disksing) - - 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 [#7042](https://github.com/tikv/pd/pull/7042) @[nolouch](https://github.com/nolouch) + - 优化 TSO 的追踪信息,方便调查 TSO 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) + - 优化 HTTP Client 链接复用,降低内存占用 [#6913](https://github.com/tikv/pd/issues/6913) @[nolouch](https://github.com/nolouch) + - 优化无法连接到备份集群时 PD 自动更新集群状态的速度 [#6883](https://github.com/tikv/pd/issues/6883) @[disksing](https://github.com/disksing) + - 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 [#7043](https://github.com/tikv/pd/issues/7043) @[nolouch](https://github.com/nolouch) + TiFlash **tw@qiancai 3** - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) - - 添加 TiFlash 处理 Raft 同步过程中更多观测指标 [#8068](https://github.com/pingcap/tiflash/issues/8068) @[CalvinNeo](https://github.com/CalvinNeo) + - 为 TiFlash 处理 Raft 同步过程添加更多观测指标 [#8068](https://github.com/pingcap/tiflash/issues/8068) @[CalvinNeo](https://github.com/CalvinNeo) - 改进 TiFlash 文件格式,减少小文件数量以避免造成文件系统 inode 耗尽的问题 [#7595](https://github.com/pingcap/tiflash/issues/7595) @[hongyunyan](https://github.com/hongyunyan) + Tools From 940e07ce0d24b8e3a9ff4003de6ba43d81954d4e Mon Sep 17 00:00:00 2001 From: Aolin Date: Sun, 8 Oct 2023 17:21:08 +0800 Subject: [PATCH 112/161] Apply suggestions from code review Co-authored-by: Ran --- releases/release-7.4.0.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index de81c405e7ba..323934d89fe4 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -372,13 +372,14 @@ In this version, TiDB partition management adds: + Backup & Restore (BR) **tw@Oreoxmt 5** - 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 [#13638](https://github.com/tikv/tikv/issues/13638) @[YuJuncen](https://github.com/YuJuncen) - - 通过设置 HTTP 客户端 MaxIdleConns 和 MaxIdleConnsPerHost 参数,增强日志备份以及 PITR 恢复任务对连接复用的支持 [#46011](https://github.com/pingcap/tidb/issues/46011) @[Leavrth](https://github.com/Leavrth) - - 增强 BR 在连接 PD 或者是外部 S3 存储出错时的容错能力 [#42909](https://github.com/pingcap/tidb/issues/42909) @[Leavrth](https://github.com/Leavrth) + - 通过设置 HTTP 客户端 `MaxIdleConns` 和 `MaxIdleConnsPerHost` 参数,增强日志备份以及 PITR 恢复任务对连接复用的支持 [#46011](https://github.com/pingcap/tidb/issues/46011) @[Leavrth](https://github.com/Leavrth) + - 增强 BR 在连接 PD 或外部 S3 存储出错时的容错能力 [#42909](https://github.com/pingcap/tidb/issues/42909) @[Leavrth](https://github.com/Leavrth) - 新增 restore 参数 `WaitTiflashReady`。当打开这个参数时,restore 操作将会等待 TiFlash 副本复制成功后才结束 [#43828](https://github.com/pingcap/tidb/issues/43828) [#46302](https://github.com/pingcap/tidb/issues/46302) @[3pointer](https://github.com/3pointer) - 减少日志备份 `resolve lock` 的 CPU 开销 [#40759](https://github.com/pingcap/tidb/issues/40759) @[3pointer](https://github.com/3pointer) + + TiCDC **tw@Oreoxmt 1** - - 优化同步 `ADD INDEX` DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) + - 优化同步 `ADD INDEX` DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) @[sdojjy](https://github.com/sdojjy) + TiDB Lightning **tw@Oreoxmt 4** @@ -391,9 +392,9 @@ In this version, TiDB partition management adds: + TiDB - - 修复 `BatchPointGet` 算子在非 Hash 分区表下执行结果错误的问题 [#45891](https://github.com/pingcap/tidb/pull/45891) @[Defined2014](https://github.com/Defined2014) - - 修复 `BatchPointGet` 算子在 Hash 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/pull/46779) @[jiyfhust](https://github.com/jiyfhust) - - 修复 TiDB parser 状态残留导致解析失败的问题 [#45903](https://github.com/pingcap/tidb/pull/45903) @[qw4990](https://github.com/qw4990) + - 修复 `BatchPointGet` 算子在非 Hash 分区表下执行结果错误的问题 [#45889](https://github.com/pingcap/tidb/issues/45889) @[Defined2014](https://github.com/Defined2014) + - 修复 `BatchPointGet` 算子在 Hash 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/issues/46779) @[jiyfhust](https://github.com/jiyfhust) + - 修复 TiDB parser 状态残留导致解析失败的问题 [#45898](https://github.com/pingcap/tidb/issues/45898) @[qw4990](https://github.com/qw4990) - 修复执行 `EXCHANGE PARTITION` 后表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - 修复 `EXCHANGE PARTITION` 没有检查约束的问题 [#45922](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - 修复 `EXCHANGE PARTITION` 错误交换成功的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) From 207ffbb9ae666f051e09217b59e0e3f164082ff1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Sun, 8 Oct 2023 17:34:44 +0800 Subject: [PATCH 113/161] Apply suggestions from code review --- releases/release-7.4.0.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 323934d89fe4..da8109d93024 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -355,9 +355,8 @@ In this version, TiDB partition management adds: + PD **tw@qiancai 5** - - 改进获取 `min-resolved-ts` 的方法,减少网络连接数 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) - - 优化 TSO 的追踪信息,方便调查 TSO 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) - - 优化 HTTP Client 链接复用,降低内存占用 [#6913](https://github.com/tikv/pd/issues/6913) @[nolouch](https://github.com/nolouch) + - 优化 TSO 的追踪信息,方便调查 TSO 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) + - 支持复用 HTTP Client 连接,降低内存占用 [#6913](https://github.com/tikv/pd/issues/6913) @[nolouch](https://github.com/nolouch) - 优化无法连接到备份集群时 PD 自动更新集群状态的速度 [#6883](https://github.com/tikv/pd/issues/6883) @[disksing](https://github.com/disksing) - 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 [#7043](https://github.com/tikv/pd/issues/7043) @[nolouch](https://github.com/nolouch) From 7efbdfc916b4e5825ba5776c3c39ed5d5b7df86a Mon Sep 17 00:00:00 2001 From: Aolin Date: Sun, 8 Oct 2023 17:38:34 +0800 Subject: [PATCH 114/161] update improvements and bug fixes Signed-off-by: Aolin --- releases/release-7.4.0.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index da8109d93024..158c932e76f4 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -382,8 +382,6 @@ In this version, TiDB partition management adds: + TiDB Lightning **tw@Oreoxmt 4** - - 修复 `checksum = "optional"` 时 Checksum 阶段仍然报错的问题 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) - - 修复当 PD 集群地址变更时数据导入失败的问题 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) - 优化 TiDB Lightning 在 Region scatter 阶段的重试逻辑 [#46203](https://github.com/pingcap/tidb/issues/46203) @[mittalrishabh](https://github.com/mittalrishabh) - 优化 TiDB Lightning 在导入数据阶段对 `no leader` 错误的重试逻辑 [#46253](https://github.com/pingcap/tidb/issues/46253) @[lance6716](https://github.com/lance6716) @@ -394,9 +392,7 @@ In this version, TiDB partition management adds: - 修复 `BatchPointGet` 算子在非 Hash 分区表下执行结果错误的问题 [#45889](https://github.com/pingcap/tidb/issues/45889) @[Defined2014](https://github.com/Defined2014) - 修复 `BatchPointGet` 算子在 Hash 分区表下执行结果错误的问题 [#46779](https://github.com/pingcap/tidb/issues/46779) @[jiyfhust](https://github.com/jiyfhust) - 修复 TiDB parser 状态残留导致解析失败的问题 [#45898](https://github.com/pingcap/tidb/issues/45898) @[qw4990](https://github.com/qw4990) - - 修复执行 `EXCHANGE PARTITION` 后表消失的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - - 修复 `EXCHANGE PARTITION` 没有检查约束的问题 [#45922](https://github.com/pingcap/tidb/issues/45920) @[mjonss](https://github.com/mjonss) - - 修复 `EXCHANGE PARTITION` 错误交换成功的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) + - 修复 `EXCHANGE PARTITION` 没有检查约束的问题 [#45922](https://github.com/pingcap/tidb/issues/45922) @[mjonss](https://github.com/mjonss) - 修复 `tidb_enforce_mpp` 系统变量不能被正确还原的问题 [#46214](https://github.com/pingcap/tidb/issues/46214) @[djshow832](https://github.com/djshow832) - 修复 `LIKE` 语句中 `_` 没有被正确处理的问题 [#46287](https://github.com/pingcap/tidb/issues/46287) [#46618](https://github.com/pingcap/tidb/issues/46618) @[Defined2014](https://github.com/Defined2014) - 修复当获取 schema 失败时会导致 `schemaTs` 被设置为 0 的问题 [#46325](https://github.com/pingcap/tidb/issues/46325) @[hihihuhu](https://github.com/hihihuhu) @@ -474,6 +470,9 @@ In this version, TiDB partition management adds: + TiDB Lightning **tw@hfxsd 1** - 修复 TiDB Lightning 导入 `NONCLUSTERED auto_increment` 和 `AUTO_ID_CACHE=1` 表后,插入数据报错的问题 [#46100](https://github.com/pingcap/tidb/issues/46100) @[tiancaiamao](https://github.com/tiancaiamao) + + - 修复 `checksum = "optional"` 时 Checksum 阶段仍然报错的问题 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) + - 修复当 PD 集群地址变更时数据导入失败的问题 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) ## 贡献者 From d0644c858e99193cd5909d1f89f2d37639768b66 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 8 Oct 2023 21:12:43 +0800 Subject: [PATCH 115/161] Apply suggestions from code review Co-authored-by: Xiaoju Wu --- releases/release-7.4.0.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 158c932e76f4..dde43e3c698c 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -411,7 +411,18 @@ In this version, TiDB partition management adds: (dup) - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) - 修复无符号类型与 `Duration` 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) - + - 修复 access path 的启发式规则会忽略 `READ_FROM_STORAGE(TIFLASH[...])` Hint 导致 `Can't find a proper physical plan` 的问题 [#40146] (https://github.com/pingcap/tidb/issues/40146) @[AilinKid](https://github.com/AilinKid) + - 修复 `group_concat` 无法解析 `ordery_by` 列的问题 [#41986] (https://github.com/pingcap/tidb/issues/41986) @[AilinKid](https://github.com/AilinKid) + - 修复深嵌套的表达式的 HashCode 重复计算导致的高内存占用和 OOM 问题 [#42788] (https://github.com/pingcap/tidb/issues/42788) @[AilinKid](https://github.com/AilinKid) + - 修复 `cast(col)=range` 条件在 CAST 无精度损失的情况下会导致 FullScan 的问题 [#45199] (https://github.com/pingcap/tidb/issues/45199) @[AilinKid](https://github.com/AilinKid) + - 修复 MPP 执行计划中 Aggregation 下推过 Union 导致的结果错误 [#45850] (https://github.com/pingcap/tidb/issues/45850) @[AilinKid](https://github.com/AilinKid) + - 修复带 `in (?)` 条件的 binding 无法匹配 `in (?,...?)` 的问题 [#44298] (https://github.com/pingcap/tidb/issues/44298) @[qw4990](https://github.com/qw4990) + - 修复 `non-prep plan cache` 复用执行计划时未考虑 connection collation 导致的错误 [#47008] (https://github.com/pingcap/tidb/issues/47008) @[qw4990](https://github.com/qw4990) + - 修复执行计划走不到 plan cache 但不报 warning 的问题 [#46159] (https://github.com/pingcap/tidb/issues/46159) @[qw4990](https://github.com/qw4990) + - 修复 `plan replayer dump explain` 会报错的问题 [#46197] (https://github.com/pingcap/tidb/issues/46197) @[time-and-fate](https://github.com/time-and-fate) + - 修复 DML 带 CTE 会 panic 的问题 [#46083] (https://github.com/pingcap/tidb/issues/46083) @[winoros](https://github.com/winoros) + - 修复当两个子查询 join `TIDB_INLJ ` Hint 不生效的问题 [#46160] (https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) + + TiKV **tw@ran-huang 9** (dup) - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) @@ -493,4 +504,4 @@ In this version, TiDB partition management adds: - [shawn0915](https://github.com/shawn0915) - [tedyu](https://github.com/tedyu) - [yumchina](https://github.com/yumchina) -- [ZhuohaoHe](https://github.com/) +- [ZhuohaoHe](https://github.com/ZhuohaoHe) From 452a0e30b297878af52acba391ff582e568e3284 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 9 Oct 2023 09:45:44 +0800 Subject: [PATCH 116/161] Apply suggestions from code review --- releases/release-7.4.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index dde43e3c698c..b44fa3afb987 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -345,13 +345,13 @@ In this version, TiDB partition management adds: + TiKV **tw@qiancai 7** - - 改进 Resolver 的内存使用,防止 OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) - - 消除 Router 对象中的 LRUCache,降低内存占用,防止 OOM [#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) - - 降低 TiCDC Resolver 的内存占用 [#15412] (https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) - - 降低 RocksDB compaction 带来的内存抖动 [#15324] (https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) - - 降低 Partitioned Raft KV 中流控模块的内存占用 [#15269] (https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) - - 减少 PD 的 `MemberList` 请求,优化 PD 调用 [#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) - - 支持动态调整 RocksDB 的 `background_compaction` [#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) + - 改进 Resolver 的内存使用,防止 OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) + - 消除 Router 对象中的 LRUCache,降低内存占用,防止 OOM [#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) + - 降低 TiCDC Resolver 的内存占用 [#15412](https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) + - 降低 RocksDB compaction 带来的内存抖动 [#15324](https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) + - 降低 Partitioned Raft KV 中流控模块的内存占用 [#15269](https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) + - (dup) 新增 PD Client 连接重试过程中的 backoff 机制。异常错误重试期间,逐步增加重试时间间隔,减小 PD 压力 [#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) + - 支持动态调整 RocksDB 的 `background_compaction` [#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) + PD **tw@qiancai 5** From 4635688f3be1ba095be6b8e481ebc2c31fd16144 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 9 Oct 2023 10:11:16 +0800 Subject: [PATCH 117/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index b44fa3afb987..02c1d10b73cd 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -442,6 +442,7 @@ In this version, TiDB partition management adds: - 修复 Scatter Peer 时未考虑 Group 的问题 [#6962](https://github.com/tikv/pd/issues/6962) @[bufferflies](https://github.com/bufferflies) - 修复 RU 消耗小于 0 导致 PD 崩溃的问题 [#6973](https://github.com/tikv/pd/issues/6973) @[CabinfeverB](https://github.com/CabinfeverB) - 修复修改隔离等级时未同步到默认放置规则中的问题 [#7121](https://github.com/tikv/pd/issues/7121) @[rleungx](https://github.com/rleungx) + - (dup) 修复在集群规模大时 client-go 周期性更新 `min-resolved-ts` 可能造成 PD OOM 的问题 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) + TiFlash **tw@hfxsd 3** From f488f62e0eb5d92aeebe963a88bf4daaaa753982 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 9 Oct 2023 10:39:01 +0800 Subject: [PATCH 118/161] Update releases/release-7.4.0.md Co-authored-by: Xiaoju Wu --- releases/release-7.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 02c1d10b73cd..066fdffe61ad 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -341,6 +341,7 @@ In this version, TiDB partition management adds: - 优化统计信息垃圾回收的内存使用和性能 [#31778](https://github.com/pingcap/tidb/issues/31778) @[winoros](https://github.com/winoros) - 优化索引合并进行交集操作时的 `limit` 下推,提高查询性能 [#46863](https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) - 改进代价模型 (Cost Model) 以尽量避免在 `IndexLookup` 回表任务多时错误地选择全表扫描 [#45132](https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) + - 优化 join 消除规则,提高 `join on unique keys` 时的查询性能 [#46248](https://github.com/pingcap/tidb/issues/46248) @[fixdb](https://github.com/fixdb) + TiKV **tw@qiancai 7** From b22fa6f3dca00587b0c986fbdb2597d0d00d87af Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 9 Oct 2023 11:00:03 +0800 Subject: [PATCH 119/161] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-7.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 066fdffe61ad..8d24a5d902a2 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -427,10 +427,10 @@ In this version, TiDB partition management adds: + TiKV **tw@ran-huang 9** (dup) - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) - - 修复 Thread Voluntary/Nonvoluntary 监控面板没有数据的问题 [#15413](https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang](https://github.com/SpadeA-Tang) - - 修复 raftstore-applys 不断增长的数据错误 [#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996] (https://github.com/Connor1996) - - 修复由于 Region 的元数据不正确造成 TiKV panic 的问题 [#13311] (https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) - - 修复切换 sync_recovery 到 sync 后 QPS 降至 0 的问题 [#15366] (https://github.com/tikv/tikv/issues/15366) @[nolouch](https://github.com/nolouch) + - 修复 Thread Voluntary 和 Thread Nonvoluntary 监控面板没有数据的问题 [#15413](https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang](https://github.com/SpadeA-Tang) + - 修复 raftstore-applys 不断增长的数据错误 [#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996](https://github.com/Connor1996) + - 修复由于 Region 的元数据不正确造成 TiKV panic 的问题 [#13311](https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) + - 修复切换 sync_recovery 到 sync 后 QPS 降至 0 的问题 [#15366](https://github.com/tikv/tikv/issues/15366) @[nolouch](https://github.com/nolouch) (dup) - 修复 Online Unsafe Recovery 超时未中止的问题 [#15346](https://github.com/tikv/tikv/issues/15346) @[Connor1996](https://github.com/Connor1996) - 修复 CpuRecord 可能导致的内存泄漏 [#15304](https://github.com/tikv/tikv/issues/15304) @[overvenus](https://github.com/overvenus) - 修复当备用集群关闭后,查询主集群出现 `"Error 9002: TiKV server timeout"` 的问题 [#12914](https://github.com/tikv/tikv/issues/12914) @[Connor1996](https://github.com/Connor1996) From 49b4bc3df537bd783c1636a483171414d99af226 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 9 Oct 2023 11:20:53 +0800 Subject: [PATCH 120/161] Apply suggestions from code review --- releases/release-7.4.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 8d24a5d902a2..965d11803daa 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -342,7 +342,7 @@ In this version, TiDB partition management adds: - 优化索引合并进行交集操作时的 `limit` 下推,提高查询性能 [#46863](https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) - 改进代价模型 (Cost Model) 以尽量避免在 `IndexLookup` 回表任务多时错误地选择全表扫描 [#45132](https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) - 优化 join 消除规则,提高 `join on unique keys` 时的查询性能 [#46248](https://github.com/pingcap/tidb/issues/46248) @[fixdb](https://github.com/fixdb) - + - 将多值索引列的排序规则变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) + TiKV **tw@qiancai 7** @@ -401,7 +401,6 @@ In this version, TiDB partition management adds: - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 `SHOW CREATE TABLE` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) - - 将多值索引列的排序规则变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) - 修复在子查询中使用 CTE 时,解析出现 panic 的问题 [#45838](https://github.com/pingcap/tidb/issues/45838) @[djshow832](https://github.com/djshow832) - 修复在交换分区失败或被取消时,分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) - 修复 List 分区的定义中不允许同时使用 `NULL` 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) From 2f576ebc2c4ef051475f89c27ea677b1d66069a0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 13:27:45 +0800 Subject: [PATCH 121/161] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: Xiaoju Wu --- releases/release-7.4.0.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 965d11803daa..a24157f097b7 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -411,17 +411,18 @@ In this version, TiDB partition management adds: (dup) - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) - 修复无符号类型与 `Duration` 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) - - 修复 access path 的启发式规则会忽略 `READ_FROM_STORAGE(TIFLASH[...])` Hint 导致 `Can't find a proper physical plan` 的问题 [#40146] (https://github.com/pingcap/tidb/issues/40146) @[AilinKid](https://github.com/AilinKid) - - 修复 `group_concat` 无法解析 `ordery_by` 列的问题 [#41986] (https://github.com/pingcap/tidb/issues/41986) @[AilinKid](https://github.com/AilinKid) - - 修复深嵌套的表达式的 HashCode 重复计算导致的高内存占用和 OOM 问题 [#42788] (https://github.com/pingcap/tidb/issues/42788) @[AilinKid](https://github.com/AilinKid) - - 修复 `cast(col)=range` 条件在 CAST 无精度损失的情况下会导致 FullScan 的问题 [#45199] (https://github.com/pingcap/tidb/issues/45199) @[AilinKid](https://github.com/AilinKid) - - 修复 MPP 执行计划中 Aggregation 下推过 Union 导致的结果错误 [#45850] (https://github.com/pingcap/tidb/issues/45850) @[AilinKid](https://github.com/AilinKid) - - 修复带 `in (?)` 条件的 binding 无法匹配 `in (?,...?)` 的问题 [#44298] (https://github.com/pingcap/tidb/issues/44298) @[qw4990](https://github.com/qw4990) - - 修复 `non-prep plan cache` 复用执行计划时未考虑 connection collation 导致的错误 [#47008] (https://github.com/pingcap/tidb/issues/47008) @[qw4990](https://github.com/qw4990) - - 修复执行计划走不到 plan cache 但不报 warning 的问题 [#46159] (https://github.com/pingcap/tidb/issues/46159) @[qw4990](https://github.com/qw4990) - - 修复 `plan replayer dump explain` 会报错的问题 [#46197] (https://github.com/pingcap/tidb/issues/46197) @[time-and-fate](https://github.com/time-and-fate) - - 修复 DML 带 CTE 会 panic 的问题 [#46083] (https://github.com/pingcap/tidb/issues/46083) @[winoros](https://github.com/winoros) - - 修复当两个子查询 join `TIDB_INLJ ` Hint 不生效的问题 [#46160] (https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) + - 修复 access path 的启发式规则会忽略 `READ_FROM_STORAGE(TIFLASH[...])` Hint 导致 `Can't find a proper physical plan` 的问题 [#40146](https://github.com/pingcap/tidb/issues/40146) @[AilinKid](https://github.com/AilinKid) + - 修复 `group_concat` 无法解析 `ORDER BY` 列的问题 [#41986](https://github.com/pingcap/tidb/issues/41986) @[AilinKid](https://github.com/AilinKid) + - 修复深嵌套的表达式的 HashCode 重复计算导致的高内存占用和 OOM 问题 [#42788](https://github.com/pingcap/tidb/issues/42788) @[AilinKid](https://github.com/AilinKid) + - 修复 `cast(col)=range` 条件在 CAST 无精度损失的情况下会导致 FullScan 的问题 [#45199](https://github.com/pingcap/tidb/issues/45199) @[AilinKid](https://github.com/AilinKid) + - 修复 MPP 执行计划中通过 Union 下推 Aggregation 导致的结果错误 [#45850](https://github.com/pingcap/tidb/issues/45850) @[AilinKid](https://github.com/AilinKid) + - 修复带 `in (?)` 条件的 binding 无法匹配 `in (?,...?)` 的问题 [#44298](https://github.com/pingcap/tidb/issues/44298) @[qw4990](https://github.com/qw4990) + - 修复 `non-prep plan cache` 复用执行计划时未考虑 connection collation 导致的错误 [#47008](https://github.com/pingcap/tidb/issues/47008) @[qw4990](https://github.com/qw4990) + - 修复执行计划没有命中 plan cache 但不报 warning 的问题 [#46159](https://github.com/pingcap/tidb/issues/46159) @[qw4990](https://github.com/qw4990) + - 修复 `plan replayer dump explain` 会报错的问题 [#46197](https://github.com/pingcap/tidb/issues/46197) @[time-and-fate](https://github.com/time-and-fate) + - 修复执行带 CTE 的 DML 会导致 panic 的问题 [#46083](https://github.com/pingcap/tidb/issues/46083) @[winoros](https://github.com/winoros) + - 修复当 JOIN 两个子查询执行时 `TIDB_INLJ ` Hint 不生效的问题 [#46160](https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) + - 修复 `MERGE_JOIN` 的结果错误的问题 [#46580](https://github.com/pingcap/tidb/issues/46580) @[qw4990](https://github.com/qw4990) + TiKV **tw@ran-huang 9** @@ -446,17 +447,17 @@ In this version, TiDB partition management adds: + TiFlash **tw@hfxsd 3** - - 修复 TiFlash 监控页面无法正确显示读取请求持续的最长时间的问题 [#7713](https://github.com/pingcap/tiflash/issues/7713) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复 Grafana 面板的 `max_snapshot_lifetime` 监控指标显示有误的问题 [#7713](https://github.com/pingcap/tiflash/issues/7713) @[JaySon-Huang](https://github.com/JaySon-Huang) - 修复 TiFlash 部分监控页面最长耗时指标显示错误的问题 [#8076](https://github.com/pingcap/tiflash/issues/8076) @[CalvinNeo](https://github.com/CalvinNeo) - - 修复 TiDB 错误的认为 MPP 任务失败的问题 [#7177](https://github.com/pingcap/tiflash/issues/7177) @[yibin87](https://github.com/yibin87) + - 修复 TiDB 误报 MPP 任务失败的问题 [#7177](https://github.com/pingcap/tiflash/issues/7177) @[yibin87](https://github.com/yibin87) + Tools + Backup & Restore (BR) **tw@hfxsd 4** - - 修复备份失败时 BR 的误导性报错信息 "resolve lock timeout" 掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) + - 修复备份失败时 BR 误报 `resolve lock timeout` 掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) - 修复 PITR 恢复隐式主键可能冲突的问题 [#46520](https://github.com/pingcap/tidb/issues/46520) @[3pointer](https://github.com/3pointer) - - 修复 PITR 恢复 meta-kv 出错的问题 [#46578](https://github.com/pingcap/tidb/issues/46578) @[Leavrth](https://github.com/Leavrth) + - 修复 PITR 恢复数据元信息 (meta-kv) 出错的问题 [#46578](https://github.com/pingcap/tidb/issues/46578) @[Leavrth](https://github.com/Leavrth) - 修复 BR 集成测试用例出错的问题 [#45561](https://github.com/pingcap/tidb/issues/46561) @[purelind](https://github.com/purelind) + TiCDC **tw@hfxsd 8** From 3c6614ba820caf63273afbeb535a7591006fa67e Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 13:33:55 +0800 Subject: [PATCH 122/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index a24157f097b7..60dc44bf657b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -24,21 +24,21 @@ TiDB 版本:7.4.0 可扩展性与性能 - Enhance the performance for adding several indexes of a table in a single ALTER statement (experimental) + Enhance the performance for adding several indexes of a table in a single ALTER statement (experimental) From v6.2 the user can add several indexes of a table in a single ALTER statement. However, the performance is the same as running two single add index DDL statements x, y, which used to take x-time +y-time, they now take significantly less. 稳定性与高可用 - Improving the performance and stability of 'Import into' and 'Add Index' operations via `global sorting` + Improving the performance and stability of 'Import into' and 'Add Index' operations via `global sorting` Before v7.4.0, tasks like ADD INDEX or IMPORT INTO in the distributed parallel execution framework required TiDB nodes to allocate local disk space for sorting data before importing it into TiKV. This approach, involving partial and localized sorting, often led to data overlaps, increasing TiKV's resource consumption and lower performance and stability. With the Global Sorting feature in v7.4.0, data is temporarily stored in S3 for global sorting. Then the data is imported into TiKV in an orderly, eliminating the need for TiKV to consume extra resources on compactions. This significantly enhances the performance and stability of operations like IMPORT INTO and ADD INDEX. - 资源管控支持自动管理后台任务(实验特性) + 资源管控支持自动管理后台任务(实验特性) 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 - TiFlash supports storage-computing separation and S3 + TiFlash supports storage-computing separation and S3 TiFlash introduces a cloud-native architecture as an option:
  • Disaggregates TiFlash's compute and storage, which is a milestone for elastic HTAP resource utilization.
  • @@ -47,8 +47,8 @@ TiDB 版本:7.4.0 - SQL - More complete partition management + SQL + More complete partition management Prior to v7.4, TiDB supported truncate partition, exchange partition, add/drop/reorganize partition on Range/List Partitioning, and add/coalesce partition on Hash/Key partitioning In this version, TiDB partition management adds:
      @@ -59,20 +59,12 @@ In this version, TiDB partition management adds: - MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci + MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地迁移或复制在 MySQL 8.0 中使用默认排序规则创建的数据库到 TiDB。 - - TiDB&TiFlash support modifier ROLLUP and function GROUPING() - ROLLUP modifier can cause summary output to include extra rows that represent higher-level summary operations, thus enables you to answer questions at multiple levels of analysis with a single query. ROLLUP modifier is commonly used in data analysis and is used to summarize data in multiple dimensions. - - - TiFlash 支持资源管控 - 在 v7.4.0 之前,TiDB 资源管控无法管理 TiFlash 资源。从 v7.4.0 开始,TiFlash 支持资源管控特性,进一步完善了 TiDB 整体的资源管控能力。 - 数据库管理与可观测性 - 选择适用的 TiDB 节点来执行并行的 ADD INDEXIMPORT INTO SQL 语句(实验特性) + 选择适用的 TiDB 节点来执行并行的 ADD INDEXIMPORT INTO SQL 语句(实验特性) 你可以选择在现有 TiDB 节点、或者新增 TiDB 节点执行 ADD INDEXIMPORT INTO SQL 语句。该方法可以实现与其他 TiDB 节点的资源隔离,确保在执行上述语句时的最佳性能,并避免对已有业务造成性能影响。 From 861fb19bb5e844319b1a0466223c9fba6e22b078 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 14:51:08 +0800 Subject: [PATCH 123/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 60dc44bf657b..e125c05e7dfc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -26,7 +26,6 @@ TiDB 版本:7.4.0 可扩展性与性能 Enhance the performance for adding several indexes of a table in a single ALTER statement (experimental) From v6.2 the user can add several indexes of a table in a single ALTER statement. However, the performance is the same as running two single add index DDL statements x, y, which used to take x-time +y-time, they now take significantly less. - 稳定性与高可用 From bf460aa7bc50af014f77edd21f9d3ef355580661 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 15:01:35 +0800 Subject: [PATCH 124/161] Update releases/release-7.4.0.md Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e125c05e7dfc..cec486e5bd31 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -456,7 +456,7 @@ In this version, TiDB partition management adds: - 修复 PD 做扩缩容场景下 TiCDC 访问无效旧地址的问题 [#9584](https://github.com/pingcap/tiflow/issues/9584) @[fubinzh](https://github.com/fubinzh) @[asddongmen](https://github.com/asddongmen) - 修复某些特殊场景下 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309) [#9450](https://github.com/pingcap/tiflow/issues/9450) [#9542](https://github.com/pingcap/tiflow/issues/9542) [#9685](https://github.com/pingcap/tiflow/issues/9685) @[hicqu](https://github.com/hicqu) @[CharlesCheung96](https://github.com/CharlesCheung96) - 修复在上游同一个事务中修改多行唯一键场景下,TiCDC 可能导致同步写冲突的问题 [#9430](https://github.com/pingcap/tiflow/issues/9430) @[sdojjy](https://github.com/sdojjy) - - 修复上游在同一条 DDL 中重命名多个表的场景下同步出错的问题 [#9476](https://github.com/pingcap/tiflow/issues/9476) [#9488](https://github.com/pingcap/tiflow/issues/9488) @[CharlesCheung96](https://github.com/CharlesCheung96) @[asddongmen](https://github.com/asddongmen) + - 修复在上游同一条 DDL 中重命名多个表的场景下同步出错的问题 [#9476](https://github.com/pingcap/tiflow/issues/9476) [#9488](https://github.com/pingcap/tiflow/issues/9488) @[CharlesCheung96](https://github.com/CharlesCheung96) @[asddongmen](https://github.com/asddongmen) - 修复 CSV 格式下没有校验中文分隔符的问题 [#9609](https://github.com/pingcap/tiflow/issues/9609) @[CharlesCheung96](https://github.com/CharlesCheung96) - 修复所有 changefeed 被移除时会阻塞上游 TiDB GC 的问题 [#9633](https://github.com/pingcap/tiflow/issues/9633) @[sdojjy](https://github.com/sdojjy) - 修复开启 `scale-out` 时流量在节点间分配不均匀问题 [#9665](https://github.com/pingcap/tiflow/issues/9665) @[sdojjy](https://github.com/sdojjy) From bcbf5f8670149f1be8443f04a6b4c2e43fbb7b70 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 9 Oct 2023 15:02:42 +0800 Subject: [PATCH 125/161] Apply suggestions from code review --- releases/release-7.4.0.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index cec486e5bd31..9d118540497b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -37,23 +37,23 @@ TiDB 版本:7.4.0 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 - TiFlash supports storage-computing separation and S3 - TiFlash introduces a cloud-native architecture as an option: + TiFlash 支持 存储计算资源分离和 S3 共享存储 (GA) + TiFlash 存算分离架构和 S3 共享存储成为正式功能:
        -
      • Disaggregates TiFlash's compute and storage, which is a milestone for elastic HTAP resource utilization.
      • -
      • Introduces S3-based storage engine, which can provide shared storage at a lower cost.
      • +
      • 支持分离 TiFlash 的存储和计算资源,提升 HTAP 资源的弹性能力。
      • +
      • 支持基于 S3 的存储引擎,以更低的成本提供共享存储。
      SQL - More complete partition management - Prior to v7.4, TiDB supported truncate partition, exchange partition, add/drop/reorganize partition on Range/List Partitioning, and add/coalesce partition on Hash/Key partitioning -In this version, TiDB partition management adds: -
        -
      • Remove partition
      • -
      • Partitioning existing non-partitioned tables
      • -
      • Modifying existing partition types on tables
      • + TiDB 支持完整的分区类型管理功能 + 在 v7.4.0 之前,Range/List 分区表支持分区管理操作包括 TRUNCATEEXCHANGEADDDROPREORGANIZE 等,Hash/Key 分区表支持分区管理操作包括 ADD and COALESCE 等。 +

        现在 TiDB 新增支持了以下分区管理操作:

        +
          +
        • 将分区表转换为非分区表
        • +
        • 对现有的非分区表进行分区
        • +
        • 修改现有分区表的分区类型
        @@ -328,7 +328,7 @@ In this version, TiDB partition management adds: + TiDB **tw@qiancai 1** - - 优化 `ANALYZE` 分区表的内存使用和性能 [#47275](https://github.com/pingcap/tidb/issues/47275) @[hawkingrei](https://github.com/hawkingrei) + - 优化 `ANALYZE` 分区表的内存使用和性能 [#47071](https://github.com/pingcap/tidb/issues/47071) [#47104](https://github.com/pingcap/tidb/issues/47104) [#46804](https://github.com/pingcap/tidb/issues/46804) @[hawkingrei](https://github.com/hawkingrei) - 优化统计信息垃圾回收的内存使用和性能 [#31778](https://github.com/pingcap/tidb/issues/31778) @[winoros](https://github.com/winoros) - 优化索引合并进行交集操作时的 `limit` 下推,提高查询性能 [#46863](https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) - 改进代价模型 (Cost Model) 以尽量避免在 `IndexLookup` 回表任务多时错误地选择全表扫描 [#45132](https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) From ccc31e9a3d700ac1cae86c65a4ff51d4b206f8b3 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 15:03:38 +0800 Subject: [PATCH 126/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9d118540497b..adaf72357fee 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -469,7 +469,7 @@ TiDB 版本:7.4.0 - 修复 DM 在跳过失败 DDL 并且后续无 DDL 执行时显示延迟持续增长的问题 [#9605](https://github.com/pingcap/tiflow/issues/9605) @[D3Hunter](https://github.com/D3Hunter) - 修复 DM 在跳过 Online DDL 时无法正确追踪上游表结构的问题 [#9587](https://github.com/pingcap/tiflow/issues/9587) @[GMHDBJD](https://github.com/GMHDBJD) - 修复 DM 在乐观模式恢复任务时跳过所有 DML 的问题 [#9588](https://github.com/pingcap/tiflow/issues/9588) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复 DM 在乐观模式中跳过添加 Partition DDL 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 DM 在乐观模式中跳过 Partition DDL 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning **tw@hfxsd 1** From 6e78d710ca95bbb6401a2369e8c175314fe7c240 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 9 Oct 2023 15:11:26 +0800 Subject: [PATCH 127/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index adaf72357fee..2594fdbfb92a 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -24,8 +24,8 @@ TiDB 版本:7.4.0 可扩展性与性能 - Enhance the performance for adding several indexes of a table in a single ALTER statement (experimental) - From v6.2 the user can add several indexes of a table in a single ALTER statement. However, the performance is the same as running two single add index DDL statements x, y, which used to take x-time +y-time, they now take significantly less. + 提升在一个 ADD INDEX 语句中添加多个索引的性能 + 自 v6.2.0 起,你可以在单个 ADD INDEX 语句中为表添加多个索引,然而这样做的性能与运行多个 ADD INDEX 语句相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅改进。 稳定性与高可用 From 14de7cb8c69f71a75fd4ba347e16f3851e5a2de3 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 9 Oct 2023 15:11:38 +0800 Subject: [PATCH 128/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 2594fdbfb92a..77ea6aa9b8cc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -29,8 +29,8 @@ TiDB 版本:7.4.0 稳定性与高可用 - Improving the performance and stability of 'Import into' and 'Add Index' operations via `global sorting` - Before v7.4.0, tasks like ADD INDEX or IMPORT INTO in the distributed parallel execution framework required TiDB nodes to allocate local disk space for sorting data before importing it into TiKV. This approach, involving partial and localized sorting, often led to data overlaps, increasing TiKV's resource consumption and lower performance and stability. With the Global Sorting feature in v7.4.0, data is temporarily stored in S3 for global sorting. Then the data is imported into TiKV in an orderly, eliminating the need for TiKV to consume extra resources on compactions. This significantly enhances the performance and stability of operations like IMPORT INTO and ADD INDEX. + 引入全局排序能力,提升IMPORT INTOADD INDEX任务的性能和稳定性 + 在 v7.4.0 以前,当用户执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 资源管控支持自动管理后台任务(实验特性) From ac3dfd35058d35263b69a95dd425ff44cbec453a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 16:31:03 +0800 Subject: [PATCH 129/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 77ea6aa9b8cc..e48f37911d72 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -37,7 +37,7 @@ TiDB 版本:7.4.0 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 - TiFlash 支持 存储计算资源分离和 S3 共享存储 (GA) + TiFlash 支持存储计算资源分离和 S3 共享存储 (GA) TiFlash 存算分离架构和 S3 共享存储成为正式功能:
        • 支持分离 TiFlash 的存储和计算资源,提升 HTAP 资源的弹性能力。
        • @@ -47,7 +47,7 @@ TiDB 版本:7.4.0 SQL - TiDB 支持完整的分区类型管理功能 + TiDB 支持完整的 分区类型管理功能 在 v7.4.0 之前,Range/List 分区表支持分区管理操作包括 TRUNCATEEXCHANGEADDDROPREORGANIZE 等,Hash/Key 分区表支持分区管理操作包括 ADD and COALESCE 等。

          现在 TiDB 新增支持了以下分区管理操作:

            From 1652f0abbf439b8200a00f8a1a27879907de7860 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 16:54:10 +0800 Subject: [PATCH 130/161] removed tw --- releases/release-7.4.0.md | 165 ++++++++++++++++++-------------------- 1 file changed, 78 insertions(+), 87 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index e48f37911d72..aaf7aee4b441 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -73,45 +73,43 @@ TiDB 版本:7.4.0 ### 可扩展性 - - -* 支持设置 TiDB 节点的服务范围,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) **tw@hfxsd** +* 支持设置 TiDB 节点的服务范围,用于选择适用的 TiDB 节点来执行并行的 `ADD INDEX` 或 `IMPORT INTO` 任务(实验特性)[#46453](https://github.com/pingcap/tidb/pull/46453) @[ywqzzy](https://github.com/ywqzzy) 在资源密集型集群中,并行执行 `ADD INDEX` 或 `IMPORT INTO` 任务可能占用大量 TiDB 节点的资源,从而导致集群性能下降。从 v7.4.0 起,你可以通过变量 [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) 控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。你可以从现有 TiDB 节点中选择几个节点,或者对新增 TiDB 节点设置服务范围。所有并行执行的 `ADD INDEX` 和 `IMPORT INTO` 的任务只会运行在这些节点,避免对已有业务造成性能影响。 更多信息,请参考[用户文档](/system-variables.md#tidb_service_scope-从-v740-版本开始引入)。 - -* 增强 Partitioned Raft KV 存储引擎(实验特性)[#11515](https://github.com/tikv/tikv/issues/11515) [#12842](https://github.com/tikv/tikv/issues/12842) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw@Oreoxmt** + +* 增强 Partitioned Raft KV 存储引擎(实验特性)[#11515](https://github.com/tikv/tikv/issues/11515) [#12842](https://github.com/tikv/tikv/issues/12842) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) TiDB v6.6.0 引入了 Partitioned Raft KV 存储引擎作为实验特性,该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,每个 Region 的数据都独立存储在单独的 RocksDB 实例中。 在 TiDB v7.4.0 中,Partitioned Raft KV 引擎在兼容性和稳定性方面得到了进一步提升。通过大规模数据测试,确保了 Partitioned Raft KV 引擎与 DM、Dumpling、TiDB Lightning、TiCDC、BR、PITR 等关键生态组件或功能的兼容性。同时,在读写混合工作负载下,Partitioned Raft KV 引擎提供了更稳定的性能,特别适合写多读少的场景。此外,每个 TiKV 节点支持 8 core CPU,并可搭配 8 TB 的数据存储和 64 GB 的内存。 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 - - * TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw@qiancai** + +* TiFlash 存算分离架构成为正式功能 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[JinheLin](https://github.com/JinheLin) @[breezewish](https://github.com/breezewish) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) 在 v7.0.0 中,TiFlash 以实验特性引入了存算分离架构。经过一系列的改进,从 v7.4.0 起,TiFlash 正式支持存算分离架构。 - + 在存算分离架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并使用兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。在存算分离架构下,TiFlash 的使用方式与存算一体架构一致,例如创建 TiFlash 副本、查询、指定优化器 Hint 等。 - - 需要注意的是,TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 + + 需要注意的是,TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 -* 支持下推 JSON 运算符 `MEMBER OF` 到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** +* 支持下推 JSON 运算符 `MEMBER OF` 到 TiKV [#46307](https://github.com/pingcap/tidb/issues/46307) @[wshwsh12](https://github.com/wshwsh12) * `value MEMBER OF(json_array)` 更多信息,请参考[用户文档](/functions-and-operators/expressions-pushed-down.md)。 -* 支持下推包含任意帧定义类型的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** +* 支持下推包含任意帧定义类型的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) 在 v7.4.0 之前的版本中,TiFlash 不支持包含 `PRECEDING` 或 `FOLLOWING` 的窗口函数,所有包含此类帧定义的窗口函数都无法下推至 TiFlash。从 v7.4.0 开始,TiFlash 支持了所有的窗口函数的帧定义。该功能自动启用,满足要求时,包含帧定义的窗口函数会自动下推至 TiFlash 执行。 -* 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) **tw@ran-huang** +* 引入基于云存储的全局排序能力,提升并行执行的 `ADD INDEX` 或 `IMPORT INTO` 任务的性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[wjhuang2016](https://github.com/wjhuang2016) 在 v7.4.0 以前,当用户执行分布式并行执行框架的 `ADD INDEX` 或 `IMPORT INTO` 任务时,TiDB 节点需要准备一块较大的本地磁盘,对编码后的索引 KV pairs 和表数据 KV pairs 进行排序。由于无法从全局角度进行排序,各个 TiDB 节点间以及节点内部导入的数据可能存在重叠情况。这会导致在将这些 KV pairs 导入到 TiKV 时,TiKV 需要频繁进行数据整理 (compaction),降低了 `ADD INDEX` 或 `IMPORT INTO` 的性能和稳定性。 @@ -119,11 +117,11 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[Defined2014](https://github.com/Defined2014) **tw@ran-huang** +* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[Defined2014](https://github.com/Defined2014) 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 `ADD INDEX` 操作时,其性能与使用多个独立的 SQL 语句进行 `ADD INDEX` 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 -* 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** +* 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。在 v7.4.0 中,该功能正式 GA。执行计划缓存技术将会被应用于更广泛的场景,从而提升 TiDB 的并发处理能力。 @@ -135,7 +133,7 @@ TiDB 版本:7.4.0 ### 稳定性 -* TiFlash 支持查询级别的数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) **tw@qiancai** +* TiFlash 支持查询级别的数据落盘 [#7738](https://github.com/pingcap/tiflash/issues/7738) @[windtalker](https://github.com/windtalker) 从 v7.0.0 起,TiFlash 支持控制 `GROUP BY`、`ORDER BY`、`JOIN` 这三种算子的数据落盘功能,避免数据量超过内存总大小时,导致查询终止甚至系统崩溃的问题。然而,单独控制每个算子的落盘较为麻烦,也无法有效进行整体资源控制。 @@ -143,16 +141,15 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tiflash/tiflash-spill-disk.md)。 - -* 支持自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) **tw@hfxsd** +* 支持自定义 TiKV 读取超时时间 [#45380](https://github.com/pingcap/tidb/issues/45380) @[crazycs520](https://github.com/crazycs520) 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整。因此,当 TiKV 节点出现问题时,TiDB 必须等待固定时长的超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。此外,你也可以在查询语句中使用 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 - + 更多的信息,请参考[用户文档](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入)。 -* 支持通过优化器提示临时修改部分系统变量的值 [#45892](https://github.com/pingcap/tidb/issues/45892) @[winoros](https://github.com/winoros) **tw@Oreoxmt** +* 支持通过优化器提示临时修改部分系统变量的值 [#45892](https://github.com/pingcap/tidb/issues/45892) @[winoros](https://github.com/winoros) TiDB v7.4.0 新增支持与 MySQL 8.0 相似的优化器提示 `SET_VAR()`。通过在 SQL 语句中添加 Hint `SET_VAR()`,可以在语句运行过程中临时修改部分系统变量,以针对不同语句设置环境。例如,可以主动提升高消耗 SQL 的并行度,或者通过变量修改优化器行为。 @@ -160,7 +157,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/optimizer-hints.md)。 -* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** +* TiFlash 支持资源管控特性 [#7660](https://github.com/pingcap/tiflash/issues/7660) @[guo-shaoge](https://github.com/guo-shaoge) 在 TiDB v7.1.0 中,资源管控成为正式功能,提供对 TiDB 和 TiKV 的资源管理能力。在 v7.4.0 中,TiFlash 支持资源管控特性,完善了 TiDB 整体的资源管控能力。TiFlash 的资源管控与已有的 TiDB 资源管控特性完全兼容,现有的资源组将同时管控 TiDB、TiKV 和 TiFlash 中的资源。 @@ -168,13 +165,13 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) **tw@Oreoxmt** +* TiFlash 支持 Pipeline 执行模型 (GA) [#6518](https://github.com/pingcap/tiflash/issues/6518) @[SeaRise](https://github.com/SeaRise) 在 v7.2.0 中,TiFlash 引入了 Pipeline 执行模型作为实验特性。该模型对所有线程资源进行统一管理,并对所有任务的执行进行统一调度,充分利用线程资源,同时避免资源超用。从 v7.4.0 开始,TiFlash 完善了线程资源使用量的统计,Pipeline 执行模型成为正式功能 (GA) 并默认开启。由于该功能与 TiFlash 资源管控特性相互依赖,TiDB v7.4.0 移除了之前版本中用于控制是否启用 Pipeline 执行模型的变量 `tidb_enable_tiflash_pipeline_model`。现在你可以通过 TiFlash 参数 `tidb_enable_resource_control` 同时开启或关闭 Pipeline 执行模型和 TiFlash 资源管控特性。 更多信息,请参考[用户文档](/tiflash/tiflash-pipeline-model.md)。 -* 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) **tw@ran-huang** +* 新增优化器模式选择 [#46080](https://github.com/pingcap/tidb/issues/46080) @[time-and-fate](https://github.com/time-and-fate) TiDB 在 v7.4.0 引入了一个新的系统变量 [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入),用于控制优化器的估算方式。默认值 `moderate` 维持之前版本的优化器行为,即优化器会利用运行时统计到的数据修改来校正估算。如果设置为 `determinate`,则优化器不考虑运行时校正,只根据统计信息来生成执行计划。 @@ -182,7 +179,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入)。 -* 资源管控支持自动管理后台任务(实验特性)[#44517](https://github.com/pingcap/tidb/issues/44517) @[glorv](https://github.com/glorv) **tw@Oreoxmt** +* 资源管控支持自动管理后台任务(实验特性)[#44517](https://github.com/pingcap/tidb/issues/44517) @[glorv](https://github.com/glorv) 后台任务是指那些优先级不高但是需要消耗大量资源的任务,如数据备份和自动统计信息收集等。这些任务通常定期或不定期触发,在执行的时候会消耗大量资源,从而影响在线的高优先级任务的性能。在 TiDB v7.4.0 中,资源管控引入了对后台任务的自动管理。该功能有助于降低低优先级任务对在线业务的性能影响,实现资源的合理分配,大幅提升集群的稳定性。 @@ -197,7 +194,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md#管理后台任务)。 -* 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) **tw@ran-huang** +* 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要与收集统计信息 (`ANALYZE TABLE`) 相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 @@ -206,28 +203,28 @@ TiDB 版本:7.4.0 * 引入系统变量控制是否选择表的哈希连接 [#46695](https://github.com/pingcap/tidb/issues/46695) @[coderplay](https://github.com/coderplay) 表的哈希连接是 MySQL 8.0 引入的新特性,主要用于连接两个相对较大的表和结果集。但对于交易类负载,或者一部分在 MySQL 5.7 稳定运行的业务来说,选择表的哈希连接可能会对性能产生风险。MySQL 通过[优化器开关 `optimizer_switch`](https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_block-nested-loop)能够在全局或者会话级控制哈希连接的选择。 - - 从 v7.4.0 开始,TiDB 引入系统变量 [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) 对表的哈希连接进行控制。默认开启 (`ON`)。如果你非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `OFF`,降低执行计划回退的可能性,提升系统稳定性。 + + 从 v7.4.0 开始,TiDB 引入系统变量 [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) 对表的哈希连接进行控制。默认开启 (`ON`)。如果你非常确定执行计划中不需要选择表之间的哈希连接,则可以修改变量为 `OFF`,降低执行计划回退的可能性,提升系统稳定性。 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入)。 ### SQL 功能 -* TiDB 支持完整的分区类型管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw@qiancai** +* TiDB 支持完整的分区类型管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) 在 v7.4.0 之前,TiDB 中的分区表不能调整分区类型。从 v7.4.0 开始,TiDB 支持将分区表修改为非分区表、将非分区表修改为分区表、修改分区类型功能。你可以根据需要灵活调整表的分区类型、数量。例如,通过 `ALTER TABLE t PARTITION BY ...` 语句修改分区类型。 更多信息,请参考[用户文档](/partitioned-table.md#分区管理)。 -* TiDB 支持 `WITH ROLLUP` 修饰符和 `GROUPING` 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) **tw@qiancai** +* TiDB 支持 `WITH ROLLUP` 修饰符和 `GROUPING` 函数 [#44487](https://github.com/pingcap/tidb/issues/44487) @[AilinKid](https://github.com/AilinKid) `WITH ROLLUP` 修饰符和 `GROUPING` 函数是数据分析中常用的功能,用于对数据进行多维度的汇总。从 v7.4.0 开始,TiDB 支持在 `GROUP BY` 子句中使用 `WITH ROLLUP` 修饰符和 `GROUPING` 函数。例如,你可以通过 `SELECT ... FROM ... GROUP BY ... WITH ROLLUP` 语法使用 `WITH ROLLUP` 修饰符。 - 更多信息,请参考[用户文档](functions-and-operators/group-by-modifier.md)。 + 更多信息,请参考[用户文档](/functions-and-operators/group-by-modifier.md)。 ### 数据库管理 -* 新增排序规则 `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin` [#37566](https://github.com/pingcap/tidb/issues/37566) @[YangKeao](https://github.com/YangKeao) @[zimulala](https://github.com/zimulala) @[bb7133](https://github.com/bb7133) **tw@Oreoxmt** +* 新增排序规则 `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin` [#37566](https://github.com/pingcap/tidb/issues/37566) @[YangKeao](https://github.com/YangKeao) @[zimulala](https://github.com/zimulala) @[bb7133](https://github.com/bb7133) TiDB v7.4.0 增强了从 MySQL 8.0 迁移数据的支持。新增两个排序规则 (Collation) `utf8mb4_0900_ai_ci` 和 `utf8mb4_0900_bin`。其中 `utf8mb4_0900_ai_ci` 为 MySQL 8.0 的默认排序规则。 @@ -237,13 +234,13 @@ TiDB 版本:7.4.0 ### 可观测性 -* 支持向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) **tw@hfxsd** +* 支持向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) **tw@hfxsd** - 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (`CONNECTION_ID`) 写入与会话相关的日志内容中,包括 TiDB 日志、慢查询日志、以及 TiKV 上 coprocessor 的慢日志记录。你可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 + 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (`CONNECTION_ID`) 写入与会话相关的日志内容中,包括 TiDB 日志、慢查询日志、以及 TiKV 上 coprocessor 的慢日志记录。你可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 除此之外,通过设置会话级变量 [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入),你可以向上述日志中添加自定义的标识。借助这个能力,把业务识别信息注入日志,可以将日志中的内容与业务关联,打通了业务到日志的链路,降低了诊断工作的难度。 -* TiDB Dashboard 提供表格视图的执行计划 [#1589](https://github.com/pingcap/tidb-dashboard/issues/1589) @[baurine](https://github.com/baurine) **tw@Oreoxmt** +* TiDB Dashboard 提供表格视图的执行计划 [#1589](https://github.com/pingcap/tidb-dashboard/issues/1589) @[baurine](https://github.com/baurine) 在 v7.4.0 中,TiDB Dashboard 的 **Slow Query** 页面和 **SQL Statement** 页面提供表格视图的执行计划,以提升用户的诊断体验。 @@ -251,31 +248,30 @@ TiDB 版本:7.4.0 ### 数据迁移 - -* 增强 `IMPORT INTO` 功能 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 增强 `IMPORT INTO` 功能 [#46704](https://github.com/pingcap/tidb/issues/46704) @[D3Hunter](https://github.com/D3Hunter) 从 v7.4.0 起,你可以通过在 `IMPORT INTO` 的 `CLOUD_STORAGE_URI` 选项中指定编码后数据的云存储地址,开启[全局排序功能](/tidb-global-sort.md)(实验特性),提升性能和稳定性。 - + 此外,在 v7.4.0 中,`IMPORT INTO` 还引入了以下功能: - + - 支持配置 `Split_File` 选项,可将单个大 CSV 文件切分成多个 256 MiB 的小 CSV 文件进行并行处理,提升导入性能。 - - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy` 。` -· - 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 - -* Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#46982](https://github.com/pingcap/tidb/issues/46982) @[GMHDBJD](https://github.com/GMHDBJD) **tw@hfxsd** + - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy` 。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-import-into.md)。 - 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符为 "\r\n",导致一些只能解析 "\n" 换行符的下游系统无法解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 中,Dumpling 引入了新的参数 `--csv-line-terminator`。当你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n",即和历史版本保持一致。 +* Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#46982](https://github.com/pingcap/tidb/issues/46982) @[GMHDBJD](https://github.com/GMHDBJD) + + 在 v7.4.0 之前,Dumpling 导出数据为 CSV 文件时,换行符为 "\r\n",导致一些只能解析 "\n" 换行符的下游系统无法解析该 CSV 文件,或者要通过第三方工具转换后才能解析。在 v7.4.0 中,Dumpling 引入了新的参数 `--csv-line-terminator`。当你将数据导出为 CSV 文件时,可以通过该参数传入所需的换行符。该参数支持 "\r\n" 和 "\n" ,默认值为 "\r\n",即和历史版本保持一致。 更多信息,请参考[用户文档](/dumpling-overview.md#dumpling-主要选项表)。 - -* TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** + +* TiCDC 支持同步数据至 Pulsar [#9413](https://github.com/pingcap/tiflow/issues/9413) @[yumchina](https://github.com/yumchina) @[asddongmen](https://github.com/asddongmen) Pulsar 是一款云原生的分布式消息流平台,它能够显著提升你的实时数据流体验。从 v7.4.0 起,TiCDC 支持以 `canal-json` 格式同步变更数据至 Pulsar,实现与 Pulsar 的无缝集成。通过该功能,TiCDC 可以让你轻松捕获和同步 TiDB 变更数据到 Pulsar,为数据处理和分析功能提供新的可能性。你可以开发自己的消费应用程序,从 Pulsar 中读取并处理新生成的变更数据,以满足特定的业务需求。 更多信息,请参考[用户文档](/ticdc/ticdc-sink-to-pulsar.md)。 -* TiCDC 支持 Claim-Check 功能,改进对大型消息的处理 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) **tw@ran-huang** +* TiCDC 支持 Claim-Check 功能,改进对大型消息的处理 [#9153](https://github.com/pingcap/tiflow/issues/9153) @[3AceShowHand](https://github.com/3AceShowHand) 在 v7.4.0 之前,TiCDC 无法向下游发送超过 Kafka 最大消息大小 (`max.message.bytes`) 的大型消息。从 v7.4.0 开始,在配置下游为 Kafka 的 Changefeed 的时候,你可以指定一个外部存储位置,用于存储超过 Kafka 限制的大型消息。TiCDC 会向 Kafka 发送一条引用消息,其中记录了该大型消息在外部存储中的地址。当消费者收到该引用消息后,可以根据其中记录的外部存储地址信息,获取对应的消息内容。 @@ -289,9 +285,7 @@ TiDB 版本:7.4.0 ### 行为变更 - - -* 自 v7.4.0 起, TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 +* 自 v7.4.0 起, TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 * 升级到 TiFlash v7.4.0 后,不支持原地降级到之前的版本。这是因为,从 v7.4.0 开始,为了减少数据整理时产生的读、写放大,TiFlash 对 PageStorage V3 数据整理时的逻辑进行了优化,导致底层部分存储文件名发生了改动。详情请参考 [TiFlash 升级帮助](/tiflash-upgrade-guide.md#从-v6x-或-v7x-升级至-v74-或以上版本)。 @@ -326,41 +320,41 @@ TiDB 版本:7.4.0 ## 改进提升 -+ TiDB **tw@qiancai 1** ++ TiDB - 优化 `ANALYZE` 分区表的内存使用和性能 [#47071](https://github.com/pingcap/tidb/issues/47071) [#47104](https://github.com/pingcap/tidb/issues/47104) [#46804](https://github.com/pingcap/tidb/issues/46804) @[hawkingrei](https://github.com/hawkingrei) - 优化统计信息垃圾回收的内存使用和性能 [#31778](https://github.com/pingcap/tidb/issues/31778) @[winoros](https://github.com/winoros) - - 优化索引合并进行交集操作时的 `limit` 下推,提高查询性能 [#46863](https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) + - 优化索引合并进行交集操作时的 `limit` 下推,提高查询性能 [#46863](https://github.com/pingcap/tidb/issues/46863) @[AilinKid](https://github.com/AilinKid) - 改进代价模型 (Cost Model) 以尽量避免在 `IndexLookup` 回表任务多时错误地选择全表扫描 [#45132](https://github.com/pingcap/tidb/issues/45132) @[qw4990](https://github.com/qw4990) - - 优化 join 消除规则,提高 `join on unique keys` 时的查询性能 [#46248](https://github.com/pingcap/tidb/issues/46248) @[fixdb](https://github.com/fixdb) - - 将多值索引列的排序规则变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) + - 优化 join 消除规则,提高 `join on unique keys` 时的查询性能 [#46248](https://github.com/pingcap/tidb/issues/46248) @[fixdb](https://github.com/fixdb) + - 将多值索引列的排序规则变更为 `binary`,避免执行失败 [#46717](https://github.com/pingcap/tidb/issues/46717) @[YangKeao](https://github.com/YangKeao) -+ TiKV **tw@qiancai 7** ++ TiKV - - 改进 Resolver 的内存使用,防止 OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) - - 消除 Router 对象中的 LRUCache,降低内存占用,防止 OOM [#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) - - 降低 TiCDC Resolver 的内存占用 [#15412](https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) - - 降低 RocksDB compaction 带来的内存抖动 [#15324](https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) - - 降低 Partitioned Raft KV 中流控模块的内存占用 [#15269](https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) - - (dup) 新增 PD Client 连接重试过程中的 backoff 机制。异常错误重试期间,逐步增加重试时间间隔,减小 PD 压力 [#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) - - 支持动态调整 RocksDB 的 `background_compaction` [#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) + - 改进 Resolver 的内存使用,防止 OOM [#15458](https://github.com/tikv/tikv/issues/15458) @[overvenus](https://github.com/overvenus) + - 消除 Router 对象中的 LRUCache,降低内存占用,防止 OOM [#15430](https://github.com/tikv/tikv/issues/15430) @[Connor1996](https://github.com/Connor1996) + - 降低 TiCDC Resolver 的内存占用 [#15412](https://github.com/tikv/tikv/issues/15412) @[overvenus](https://github.com/overvenus) + - 降低 RocksDB compaction 带来的内存抖动 [#15324](https://github.com/tikv/tikv/issues/15324) @[overvenus](https://github.com/overvenus) + - 降低 Partitioned Raft KV 中流控模块的内存占用 [#15269](https://github.com/tikv/tikv/issues/15269) @[overvenus](https://github.com/overvenus) + - 新增 PD Client 连接重试过程中的 backoff 机制。异常错误重试期间,逐步增加重试时间间隔,减小 PD 压力 [#15428](https://github.com/tikv/tikv/issues/15428) @[nolouch](https://github.com/nolouch) + - 支持动态调整 RocksDB 的 `background_compaction` [#15424](https://github.com/tikv/tikv/issues/15424) @[glorv](https://github.com/glorv) -+ PD **tw@qiancai 5** ++ PD - 优化 TSO 的追踪信息,方便调查 TSO 相关问题 [#6856](https://github.com/tikv/pd/pull/6856) @[tiancaiamao](https://github.com/tiancaiamao) - 支持复用 HTTP Client 连接,降低内存占用 [#6913](https://github.com/tikv/pd/issues/6913) @[nolouch](https://github.com/nolouch) - 优化无法连接到备份集群时 PD 自动更新集群状态的速度 [#6883](https://github.com/tikv/pd/issues/6883) @[disksing](https://github.com/disksing) - 改进 resource control client 的配置获取方式,使其可以动态获取最新配置 [#7043](https://github.com/tikv/pd/issues/7043) @[nolouch](https://github.com/nolouch) -+ TiFlash **tw@qiancai 3** ++ TiFlash - - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) + - 改进 TiFlash 写入过程的落盘策略,提升随机写入负载下的写性能 [#7564](https://github.com/pingcap/tiflash/issues/7564) @[CalvinNeo](https://github.com/CalvinNeo) - 为 TiFlash 处理 Raft 同步过程添加更多观测指标 [#8068](https://github.com/pingcap/tiflash/issues/8068) @[CalvinNeo](https://github.com/CalvinNeo) - 改进 TiFlash 文件格式,减少小文件数量以避免造成文件系统 inode 耗尽的问题 [#7595](https://github.com/pingcap/tiflash/issues/7595) @[hongyunyan](https://github.com/hongyunyan) + Tools - + Backup & Restore (BR) **tw@Oreoxmt 5** + + Backup & Restore (BR) - 缓解了 Region leadership 迁移导致 PITR 日志备份进度延迟变高的问题 [#13638](https://github.com/tikv/tikv/issues/13638) @[YuJuncen](https://github.com/YuJuncen) - 通过设置 HTTP 客户端 `MaxIdleConns` 和 `MaxIdleConnsPerHost` 参数,增强日志备份以及 PITR 恢复任务对连接复用的支持 [#46011](https://github.com/pingcap/tidb/issues/46011) @[Leavrth](https://github.com/Leavrth) @@ -368,11 +362,11 @@ TiDB 版本:7.4.0 - 新增 restore 参数 `WaitTiflashReady`。当打开这个参数时,restore 操作将会等待 TiFlash 副本复制成功后才结束 [#43828](https://github.com/pingcap/tidb/issues/43828) [#46302](https://github.com/pingcap/tidb/issues/46302) @[3pointer](https://github.com/3pointer) - 减少日志备份 `resolve lock` 的 CPU 开销 [#40759](https://github.com/pingcap/tidb/issues/40759) @[3pointer](https://github.com/3pointer) - + TiCDC **tw@Oreoxmt 1** + + TiCDC - 优化同步 `ADD INDEX` DDL 的执行逻辑,从而不阻塞后续的 DML 语句 [#9644](https://github.com/pingcap/tiflow/issues/9644) @[sdojjy](https://github.com/sdojjy) - + TiDB Lightning **tw@Oreoxmt 4** + + TiDB Lightning - 优化 TiDB Lightning 在 Region scatter 阶段的重试逻辑 [#46203](https://github.com/pingcap/tidb/issues/46203) @[mittalrishabh](https://github.com/mittalrishabh) - 优化 TiDB Lightning 在导入数据阶段对 `no leader` 错误的重试逻辑 [#46253](https://github.com/pingcap/tidb/issues/46253) @[lance6716](https://github.com/lance6716) @@ -391,17 +385,15 @@ TiDB 版本:7.4.0 - 修复 `AUTO_ID_CACHE=1` 时可能导致 `Duplicate entry` 的问题 [#46444](https://github.com/pingcap/tidb/issues/46444) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 TiDB panic 后恢复过慢的问题 [#46454](https://github.com/pingcap/tidb/issues/46454) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 `AUTO_ID_CACHE=1` 时 `SHOW CREATE TABLE` 中 `next_row_id` 错误的问题 [#46545](https://github.com/pingcap/tidb/issues/46545) @[tiancaiamao](https://github.com/tiancaiamao) - - 修复在子查询中使用 CTE 时,解析出现 panic 的问题 [#45838](https://github.com/pingcap/tidb/issues/45838) @[djshow832](https://github.com/djshow832) - 修复在交换分区失败或被取消时,分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) - 修复 List 分区的定义中不允许同时使用 `NULL` 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) - 修复交换分区时,无法检测出不符合分区定义的数据的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) (dup) - 修复 `tmp-storage-quota` 配置无法生效的问题 [#45161](https://github.com/pingcap/tidb/issues/45161) [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) - 修复函数 `WEIGHT_STRING()` 不匹配排序规则的问题 [#45725](https://github.com/pingcap/tidb/issues/45725) @[dveeden](https://github.com/dveeden) - (dup) - 修复 Index Join 出错可能导致查询卡住的问题 [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) - (dup) - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) + - 修复 Index Join 出错可能导致查询卡住的问题 [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) + - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) - 修复无符号类型与 `Duration` 类型常量比较时产生的结果错误 [#45410](https://github.com/pingcap/tidb/issues/45410) @[wshwsh12](https://github.com/wshwsh12) - - 修复 access path 的启发式规则会忽略 `READ_FROM_STORAGE(TIFLASH[...])` Hint 导致 `Can't find a proper physical plan` 的问题 [#40146](https://github.com/pingcap/tidb/issues/40146) @[AilinKid](https://github.com/AilinKid) - 修复 `group_concat` 无法解析 `ORDER BY` 列的问题 [#41986](https://github.com/pingcap/tidb/issues/41986) @[AilinKid](https://github.com/AilinKid) - 修复深嵌套的表达式的 HashCode 重复计算导致的高内存占用和 OOM 问题 [#42788](https://github.com/pingcap/tidb/issues/42788) @[AilinKid](https://github.com/AilinKid) @@ -412,31 +404,31 @@ TiDB 版本:7.4.0 - 修复执行计划没有命中 plan cache 但不报 warning 的问题 [#46159](https://github.com/pingcap/tidb/issues/46159) @[qw4990](https://github.com/qw4990) - 修复 `plan replayer dump explain` 会报错的问题 [#46197](https://github.com/pingcap/tidb/issues/46197) @[time-and-fate](https://github.com/time-and-fate) - 修复执行带 CTE 的 DML 会导致 panic 的问题 [#46083](https://github.com/pingcap/tidb/issues/46083) @[winoros](https://github.com/winoros) - - 修复当 JOIN 两个子查询执行时 `TIDB_INLJ ` Hint 不生效的问题 [#46160](https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) + - 修复当 JOIN 两个子查询执行时 `TIDB_INLJ` Hint 不生效的问题 [#46160](https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) - 修复 `MERGE_JOIN` 的结果错误的问题 [#46580](https://github.com/pingcap/tidb/issues/46580) @[qw4990](https://github.com/qw4990) - -+ TiKV **tw@ran-huang 9** - (dup) - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) ++ TiKV + + - 修复开启 Titan 后,TiKV 遇到 `Blob file deleted twice` 报错无法正常启动的问题 [#15454](https://github.com/tikv/tikv/issues/15454) @[Connor1996](https://github.com/Connor1996) - 修复 Thread Voluntary 和 Thread Nonvoluntary 监控面板没有数据的问题 [#15413](https://github.com/tikv/tikv/issues/15413) @[SpadeA-Tang](https://github.com/SpadeA-Tang) - 修复 raftstore-applys 不断增长的数据错误 [#15371](https://github.com/tikv/tikv/issues/15371) @[Connor1996](https://github.com/Connor1996) - 修复由于 Region 的元数据不正确造成 TiKV panic 的问题 [#13311](https://github.com/tikv/tikv/issues/13311) @[zyguan](https://github.com/zyguan) - 修复切换 sync_recovery 到 sync 后 QPS 降至 0 的问题 [#15366](https://github.com/tikv/tikv/issues/15366) @[nolouch](https://github.com/nolouch) - (dup) - 修复 Online Unsafe Recovery 超时未中止的问题 [#15346](https://github.com/tikv/tikv/issues/15346) @[Connor1996](https://github.com/Connor1996) + - 修复 Online Unsafe Recovery 超时未中止的问题 [#15346](https://github.com/tikv/tikv/issues/15346) @[Connor1996](https://github.com/Connor1996) - 修复 CpuRecord 可能导致的内存泄漏 [#15304](https://github.com/tikv/tikv/issues/15304) @[overvenus](https://github.com/overvenus) - 修复当备用集群关闭后,查询主集群出现 `"Error 9002: TiKV server timeout"` 的问题 [#12914](https://github.com/tikv/tikv/issues/12914) @[Connor1996](https://github.com/Connor1996) - 修复当主集群恢复后 TiKV 再次启动时,备用 TiKV 会卡住的问题 [#12320](https://github.com/tikv/tikv/issues/12320) @[disksing](https://github.com/disksing) -+ PD **tw@hfxsd 5** ++ PD - 修复在 Flashback 时不更新保存 Region 信息的问题 [#6912](https://github.com/tikv/pd/issues/6912) @[overvenus](https://github.com/overvenus) - 修复因为同步 store config 慢而导致 PD Leader 切换慢的问题 [#6918](https://github.com/tikv/pd/issues/6918) @[bufferflies](https://github.com/bufferflies) - 修复 Scatter Peer 时未考虑 Group 的问题 [#6962](https://github.com/tikv/pd/issues/6962) @[bufferflies](https://github.com/bufferflies) - 修复 RU 消耗小于 0 导致 PD 崩溃的问题 [#6973](https://github.com/tikv/pd/issues/6973) @[CabinfeverB](https://github.com/CabinfeverB) - 修复修改隔离等级时未同步到默认放置规则中的问题 [#7121](https://github.com/tikv/pd/issues/7121) @[rleungx](https://github.com/rleungx) - - (dup) 修复在集群规模大时 client-go 周期性更新 `min-resolved-ts` 可能造成 PD OOM 的问题 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) + - 修复在集群规模大时 client-go 周期性更新 `min-resolved-ts` 可能造成 PD OOM 的问题 [#46664](https://github.com/pingcap/tidb/issues/46664) @[HuSharp](https://github.com/HuSharp) -+ TiFlash **tw@hfxsd 3** ++ TiFlash - 修复 Grafana 面板的 `max_snapshot_lifetime` 监控指标显示有误的问题 [#7713](https://github.com/pingcap/tiflash/issues/7713) @[JaySon-Huang](https://github.com/JaySon-Huang) - 修复 TiFlash 部分监控页面最长耗时指标显示错误的问题 [#8076](https://github.com/pingcap/tiflash/issues/8076) @[CalvinNeo](https://github.com/CalvinNeo) @@ -444,17 +436,17 @@ TiDB 版本:7.4.0 + Tools - + Backup & Restore (BR) **tw@hfxsd 4** + + Backup & Restore (BR) - 修复备份失败时 BR 误报 `resolve lock timeout` 掩盖了实际错误的问题 [#43236](https://github.com/pingcap/tidb/issues/43236) @[YuJuncen](https://github.com/YuJuncen) - 修复 PITR 恢复隐式主键可能冲突的问题 [#46520](https://github.com/pingcap/tidb/issues/46520) @[3pointer](https://github.com/3pointer) - 修复 PITR 恢复数据元信息 (meta-kv) 出错的问题 [#46578](https://github.com/pingcap/tidb/issues/46578) @[Leavrth](https://github.com/Leavrth) - 修复 BR 集成测试用例出错的问题 [#45561](https://github.com/pingcap/tidb/issues/46561) @[purelind](https://github.com/purelind) - + TiCDC **tw@hfxsd 8** + + TiCDC - 修复 PD 做扩缩容场景下 TiCDC 访问无效旧地址的问题 [#9584](https://github.com/pingcap/tiflow/issues/9584) @[fubinzh](https://github.com/fubinzh) @[asddongmen](https://github.com/asddongmen) - - 修复某些特殊场景下 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309) [#9450](https://github.com/pingcap/tiflow/issues/9450) [#9542](https://github.com/pingcap/tiflow/issues/9542) [#9685](https://github.com/pingcap/tiflow/issues/9685) @[hicqu](https://github.com/hicqu) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复某些特殊场景下 changefeed 失败的问题 [#9309](https://github.com/pingcap/tiflow/issues/9309) [#9450](https://github.com/pingcap/tiflow/issues/9450) [#9542](https://github.com/pingcap/tiflow/issues/9542) [#9685](https://github.com/pingcap/tiflow/issues/9685) @[hicqu](https://github.com/hicqu) @[CharlesCheung96](https://github.com/CharlesCheung96) - 修复在上游同一个事务中修改多行唯一键场景下,TiCDC 可能导致同步写冲突的问题 [#9430](https://github.com/pingcap/tiflow/issues/9430) @[sdojjy](https://github.com/sdojjy) - 修复在上游同一条 DDL 中重命名多个表的场景下同步出错的问题 [#9476](https://github.com/pingcap/tiflow/issues/9476) [#9488](https://github.com/pingcap/tiflow/issues/9488) @[CharlesCheung96](https://github.com/CharlesCheung96) @[asddongmen](https://github.com/asddongmen) - 修复 CSV 格式下没有校验中文分隔符的问题 [#9609](https://github.com/pingcap/tiflow/issues/9609) @[CharlesCheung96](https://github.com/CharlesCheung96) @@ -462,7 +454,7 @@ TiDB 版本:7.4.0 - 修复开启 `scale-out` 时流量在节点间分配不均匀问题 [#9665](https://github.com/pingcap/tiflow/issues/9665) @[sdojjy](https://github.com/sdojjy) - 修复日志中记录了用户敏感信息的问题 [#9690](https://github.com/pingcap/tiflow/issues/9690) @[sdojjy](https://github.com/sdojjy) - + TiDB Data Migration (DM) **tw@hfxsd 6** + + TiDB Data Migration (DM) - 修复 DM 在大小写不敏感的 collation 下无法正确处理冲突的问题 [#9489](https://github.com/pingcap/tiflow/issues/9489) @[hihihuhu](https://github.com/hihihuhu) - 修复 DM validator 死锁问题并增强重试 [#9257](https://github.com/pingcap/tiflow/issues/9257) @[D3Hunter](https://github.com/D3Hunter) @@ -471,13 +463,12 @@ TiDB 版本:7.4.0 - 修复 DM 在乐观模式恢复任务时跳过所有 DML 的问题 [#9588](https://github.com/pingcap/tiflow/issues/9588) @[GMHDBJD](https://github.com/GMHDBJD) - 修复 DM 在乐观模式中跳过 Partition DDL 的问题 [#9788](https://github.com/pingcap/tiflow/issues/9788) @[GMHDBJD](https://github.com/GMHDBJD) - + TiDB Lightning **tw@hfxsd 1** + + TiDB Lightning - 修复 TiDB Lightning 导入 `NONCLUSTERED auto_increment` 和 `AUTO_ID_CACHE=1` 表后,插入数据报错的问题 [#46100](https://github.com/pingcap/tidb/issues/46100) @[tiancaiamao](https://github.com/tiancaiamao) - - 修复 `checksum = "optional"` 时 Checksum 阶段仍然报错的问题 [#45382](https://github.com/pingcap/tidb/issues/45382) @[lyzx2001](https://github.com/lyzx2001) - 修复当 PD 集群地址变更时数据导入失败的问题 [#43436](https://github.com/pingcap/tidb/issues/43436) @[lichunzhu](https://github.com/lichunzhu) - + ## 贡献者 感谢来自 TiDB 社区的贡献者们: From ccef071247284334f1a9a99d0fd4b8bd91014f71 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:33:36 +0800 Subject: [PATCH 131/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index aaf7aee4b441..3959be94bb72 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -230,7 +230,7 @@ TiDB 版本:7.4.0 同时新增支持 MySQL 8.0 兼容的系统变量 `default_collation_for_utf8mb4`,允许用户为 utf8mb4 字符集指定默认的排序方式,以兼容从 MySQL 5.7 或之前版本迁移或数据复制的场景。 - 更多信息,请参考[用户文档](/character-set-and-collation#支持的字符集和排序规则)。 + 更多信息,请参考[用户文档](/character-set-and-collation.md#支持的字符集和排序规则)。 ### 可观测性 From 9892811a3b74a4626580fdc3d5c4070132482cb8 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:35:05 +0800 Subject: [PATCH 132/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 3959be94bb72..a4170a4822a7 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -389,7 +389,7 @@ TiDB 版本:7.4.0 - 修复在交换分区失败或被取消时,分区表的限制残留在原表上的问题 [#45920](https://github.com/pingcap/tidb/issues/45920) [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) - 修复 List 分区的定义中不允许同时使用 `NULL` 和空字符串的问题 [#45694](https://github.com/pingcap/tidb/issues/45694) @[mjonss](https://github.com/mjonss) - 修复交换分区时,无法检测出不符合分区定义的数据的问题 [#46492](https://github.com/pingcap/tidb/issues/46492) @[mjonss](https://github.com/mjonss) - (dup) - 修复 `tmp-storage-quota` 配置无法生效的问题 [#45161](https://github.com/pingcap/tidb/issues/45161) [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) + - 修复 `tmp-storage-quota` 配置无法生效的问题 [#45161](https://github.com/pingcap/tidb/issues/45161) [#26806](https://github.com/pingcap/tidb/issues/26806) @[wshwsh12](https://github.com/wshwsh12) - 修复函数 `WEIGHT_STRING()` 不匹配排序规则的问题 [#45725](https://github.com/pingcap/tidb/issues/45725) @[dveeden](https://github.com/dveeden) - 修复 Index Join 出错可能导致查询卡住的问题 [#45716](https://github.com/pingcap/tidb/issues/45716) @[wshwsh12](https://github.com/wshwsh12) - 修复 `DATETIME` 或 `TIMESTAMP` 列与数字值比较时,行为与 MySQL 不一致的问题 [#38361](https://github.com/pingcap/tidb/issues/38361) @[yibin87](https://github.com/yibin87) From 9de021eba6373cba7c893de182f1b832922b5cfc Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 18:48:19 +0800 Subject: [PATCH 133/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index a4170a4822a7..9d17aeeff084 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -194,7 +194,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-resource-control.md#管理后台任务)。 -* 增强锁定统计信息的能力 [#issue号](链接) @[hi-rustin](https://github.com/hi-rustin) +* 增强锁定统计信息的能力 [#46351](https://github.com/pingcap/tidb/issues/46351) @[hi-rustin](https://github.com/hi-rustin) 在 v7.4.0 中,TiDB 增强了[锁定统计信息](/statistics.md#锁定统计信息)的能力。现在,锁定和解锁统计信息需要与收集统计信息 (`ANALYZE TABLE`) 相同的权限,以确保操作的安全性。此外,还新增了对特定分区的统计信息进行锁定和解锁操作的支持,提高了功能灵活性。当用户对数据库中的查询和执行计划有把握,并且不希望发生变化时,可以使用锁定统计信息来提升统计信息的稳定性。 From 02896e050f9703b2d1a172d9b3ac339f24f5c1dd Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 20:16:39 +0800 Subject: [PATCH 134/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 9d17aeeff084..c82009c7e7b4 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -103,7 +103,7 @@ TiDB 版本:7.4.0 * `value MEMBER OF(json_array)` - 更多信息,请参考[用户文档](/functions-and-operators/expressions-pushed-down.md)。 + 更多信息,请参考[用户文档](/functions-and-operators/expressions-pushed-down.md)。 * 支持下推包含任意帧定义类型的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) From d3feffce00cf7b3e0905378cd31a45a6d4cff0bd Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 20:50:10 +0800 Subject: [PATCH 135/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index c82009c7e7b4..b6d96c680911 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -30,7 +30,7 @@ TiDB 版本:7.4.0 稳定性与高可用 引入全局排序能力,提升IMPORT INTOADD INDEX任务的性能和稳定性 - 在 v7.4.0 以前,当用户执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 + 在 v7.4.0 以前,当用户执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 资源管控支持自动管理后台任务(实验特性) @@ -58,7 +58,7 @@ TiDB 版本:7.4.0 - MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci + MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地迁移或复制在 MySQL 8.0 中使用默认排序规则创建的数据库到 TiDB。 From 855b5ef7d208e44e08faa3d3f4bb981b6a0bf99d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 21:00:48 +0800 Subject: [PATCH 136/161] Apply suggestions from code review --- releases/release-7.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index b6d96c680911..f769bcb82be6 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -145,7 +145,7 @@ TiDB 版本:7.4.0 在通常情况下,TiKV 处理请求非常快,只需几毫秒。但是,当某个 TiKV 节点遇到磁盘 I/O 抖动或网络延迟时,请求处理时间可能会大幅增加。在 v7.4.0 以前的版本中,TiKV 请求的超时限制是固定的,不能调整。因此,当 TiKV 节点出现问题时,TiDB 必须等待固定时长的超时响应,这导致了抖动期间应用程序的查询性能受到明显影响。 - TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。此外,你也可以在查询语句中使用 Hint [`TIDB_KV_READ_TIMEOUT(N)`](/optimizer-hints.md#tidb_kv_read_timeoutn) 来设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 + TiDB 在 v7.4.0 中引入了一个新系统变量 [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入),你可以自定义查询语句中 TiDB 发送给 TiKV 的 RPC 读请求的超时时间。这意味着,当某个 TiKV 节点因磁盘或网络问题导致请求延迟时,TiDB 可以更快地超时并将请求重新发送给其他 TiKV 节点,从而降低查询延迟。如果所有 TiKV 节点的请求都超时,TiDB 将使用默认的超时时间进行重试。此外,你也可以在查询语句中使用 Optimizer Hint `/*+ SET_VAR(TIKV_CLIENT_READ_TIMEOUT=N) */` 来设置 TiDB 发送 TiKV RPC 读请求的超时时间。这一改进将使 TiDB 在面对不稳定的网络或存储环境时,更灵活地适应各种情况,提高查询性能,提升用户体验。 更多的信息,请参考[用户文档](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入)。 @@ -234,7 +234,7 @@ TiDB 版本:7.4.0 ### 可观测性 -* 支持向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) **tw@hfxsd** +* 支持向日志中添加会话标识和会话别名 [#46071](https://github.com/pingcap/tidb/issues/46071) @[lcwangchao](https://github.com/lcwangchao) 在对 SQL 执行问题做故障定位的时候,经常需要把 TiDB 各组件日志中的内容进行关联,由此找到问题的根本原因。从 v7.4.0 开始,TiDB 将会话标识 (`CONNECTION_ID`) 写入与会话相关的日志内容中,包括 TiDB 日志、慢查询日志、以及 TiKV 上 coprocessor 的慢日志记录。你可以根据会话标识,将几个日志中的内容关联起来,提升故障定位和诊断的效率。 @@ -255,7 +255,7 @@ TiDB 版本:7.4.0 此外,在 v7.4.0 中,`IMPORT INTO` 还引入了以下功能: - 支持配置 `Split_File` 选项,可将单个大 CSV 文件切分成多个 256 MiB 的小 CSV 文件进行并行处理,提升导入性能。 - - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy` 。 + - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy`。 更多信息,请参考[用户文档](/sql-statements/sql-statement-import-into.md)。 From a8ce20ea5e523b8e81ad08162f22f6ba073220e6 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 9 Oct 2023 21:04:30 +0800 Subject: [PATCH 137/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index f769bcb82be6..6e0c4b8b6043 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -309,7 +309,7 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| TiDB | [enable-stats-cache-mem-quota](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | +| TiDB | [`enable-stats-cache-mem-quota`](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | | TiFlash | [`profiles.default.enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`flash.compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | From 2596f7b45d2890318153f27c71219802df75daaf Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 22:25:40 +0800 Subject: [PATCH 138/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 6e0c4b8b6043..51aa020a4e1e 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -294,7 +294,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | -| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-new-in-v740) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | +| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | From 9f0c710bc8ad054a28be801a1762c3fbe9119d9a Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 22:28:46 +0800 Subject: [PATCH 139/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 51aa020a4e1e..61eb2cab80c4 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -294,7 +294,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | -| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | +| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | From 25f19c5386d5a4a20cb5b4f422c5426dad48e94e Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 9 Oct 2023 22:29:36 +0800 Subject: [PATCH 140/161] Update release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 61eb2cab80c4..51aa020a4e1e 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -294,7 +294,7 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | -| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | +| [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | From 2d95e19e4a836facdd7443df2a920806649117ae Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 15:57:17 +0800 Subject: [PATCH 141/161] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: Ran --- releases/release-7.4.0.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 51aa020a4e1e..308890a9816e 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -29,11 +29,11 @@ TiDB 版本:7.4.0 稳定性与高可用 - 引入全局排序能力,提升IMPORT INTOADD INDEX任务的性能和稳定性 - 在 v7.4.0 以前,当用户执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 + 引入全局排序能力,提升IMPORT INTOADD INDEX任务的性能和稳定性 + 在 v7.4.0 以前,当你执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 - 资源管控支持自动管理后台任务(实验特性) + 资源管控支持自动管理后台任务(实验特性) 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 @@ -47,7 +47,7 @@ TiDB 版本:7.4.0 SQL - TiDB 支持完整的 分区类型管理功能 + TiDB 支持完整的分区类型管理功能 在 v7.4.0 之前,Range/List 分区表支持分区管理操作包括 TRUNCATEEXCHANGEADDDROPREORGANIZE 等,Hash/Key 分区表支持分区管理操作包括 ADD and COALESCE 等。

            现在 TiDB 新增支持了以下分区管理操作:

              @@ -58,12 +58,12 @@ TiDB 版本:7.4.0 - MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci + MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地迁移或复制在 MySQL 8.0 中使用默认排序规则创建的数据库到 TiDB。 数据库管理与可观测性 - 选择适用的 TiDB 节点来执行并行的 ADD INDEXIMPORT INTO SQL 语句(实验特性) + 选择适用的 TiDB 节点来执行并行的 ADD INDEXIMPORT INTO SQL 语句(实验特性) 你可以选择在现有 TiDB 节点、或者新增 TiDB 节点执行 ADD INDEXIMPORT INTO SQL 语句。该方法可以实现与其他 TiDB 节点的资源隔离,确保在执行上述语句时的最佳性能,并避免对已有业务造成性能影响。 @@ -297,7 +297,7 @@ TiDB 版本:7.4.0 | [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| -| [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md) 下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | +| [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | @@ -311,9 +311,9 @@ TiDB 版本:7.4.0 | -------- | -------- | -------- | -------- | | TiDB | [`enable-stats-cache-mem-quota`](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | | TiFlash | [`profiles.default.enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | -| TiFlash | [`flash.compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 applied_index 和上次落盘时的 applied_index 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | +| TiFlash | [`flash.compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 `applied_index` 和上次落盘时的 `applied_index` 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | -| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 "\r\n" 和 "\n",默认值为 "\r\n",即和历史版本保持一致。 | +| Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 `"\r\n"` 和 `"\n"`,默认值为 `"\r\n"`,即和历史版本保持一致。 | | TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | | TiCDC | [`claim-check-storage-uri`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 新增 | 当指定 `large-message-handle-option` 为 `claim-check` 时,`claim-check-storage-uri` 必须设置为一个有效的外部存储服务地址,否则创建 Changefeed 将会报错。| | TiCDC | [`large-message-handle-compression`](/ticdc/ticdc-sink-to-kafka.md#ticdc-层数据压缩功能) | 新增 | 控制是否开启编码时的压缩功能,默认为空,即不开启。| From 192d4f50705e9ba7361ad3072c6e74a8c33c0ae2 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 16:11:27 +0800 Subject: [PATCH 142/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 308890a9816e..09396f2f1a68 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -293,17 +293,17 @@ TiDB 版本:7.4.0 | 变量名 | 修改类型 | 描述 | |---|----|------| +| `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | +| [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | | [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| | [`tidb_service_scope`](/system-variables.md#tidb_service_scope-从-v740-版本开始引入) | 新增 | 该变量是一个实例级别的变量,用于控制 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)下各 TiDB 节点的服务范围。当设置 TiDB 节点的 `tidb_service_scope` 为 `background` 时,后端任务分布式框架将调度该节点执行后端任务(如 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 和 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md))。 | | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | -| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | -| [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | -| `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | +| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | ### 配置文件参数 From f3f31b59a45a7592e0acd6f0f1610c703ba26a2b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 20:49:40 +0800 Subject: [PATCH 143/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 09396f2f1a68..1f28db2ecafa 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -257,7 +257,7 @@ TiDB 版本:7.4.0 - 支持配置 `Split_File` 选项,可将单个大 CSV 文件切分成多个 256 MiB 的小 CSV 文件进行并行处理,提升导入性能。 - 支持导入压缩后的 CSV 和 SQL 文件,支持的压缩格式包括 `.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy`。 - 更多信息,请参考[用户文档](/sql-statements/sql-statement-import-into.md)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-import-into.md)。 * Dumpling 在将数据导出为 CSV 文件时支持用户自定义换行符 [#46982](https://github.com/pingcap/tidb/issues/46982) @[GMHDBJD](https://github.com/GMHDBJD) @@ -285,7 +285,7 @@ TiDB 版本:7.4.0 ### 行为变更 -* 自 v7.4.0 起, TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 +* 自 v7.4.0 起,TiDB 已经兼容 MySQL 8.0 的核心功能,`version()` 将返回以 `8.0.11` 为前缀的版本信息。 * 升级到 TiFlash v7.4.0 后,不支持原地降级到之前的版本。这是因为,从 v7.4.0 开始,为了减少数据整理时产生的读、写放大,TiFlash 对 PageStorage V3 数据整理时的逻辑进行了优化,导致底层部分存储文件名发生了改动。详情请参考 [TiFlash 升级帮助](/tiflash-upgrade-guide.md#从-v6x-或-v7x-升级至-v74-或以上版本)。 From 18498737a238d47dde27e433696e8523b37581df Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 21:03:31 +0800 Subject: [PATCH 144/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 1f28db2ecafa..31e473016f11 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -310,13 +310,13 @@ TiDB 版本:7.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [`enable-stats-cache-mem-quota`](/tidb-configuration-file.md#enable-stats-cache-mem-quota-从-v610-版本开始引入) | 修改 | 默认值由 `false` 改为 `true`,即默认开启 TiDB 统计信息缓存的内存上限。 | -| TiFlash | [`profiles.default.enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`flash.compact_log_min_gap`](/tiflash/tiflash-configuration.md) | 新增 | 在当前 Raft 状态机推进的 `applied_index` 和上次落盘时的 `applied_index` 的差值高于 `compact_log_min_gap` 时,TiFlash 将执行来自 TiKV 的 CompactLog 命令,并进行数据落盘。 | +| TiFlash | [`profiles.default.enable_resource_control`](/tiflash/tiflash-configuration.md) | 新增 | 控制是否开启 TiFlash 资源管控功能。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md) | 修改 | 默认值从 `4` 修改为 `5`,该格式可以合并小文件从而减少了物理文件数量。 | | Dumpling | [`--csv-line-terminator`](/dumpling-overview.md#dumpling-主要选项表) | 新增 | 控制导出数据为 CSV 文件的换行符,支持 `"\r\n"` 和 `"\n"`,默认值为 `"\r\n"`,即和历史版本保持一致。 | -| TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | | TiCDC | [`claim-check-storage-uri`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 新增 | 当指定 `large-message-handle-option` 为 `claim-check` 时,`claim-check-storage-uri` 必须设置为一个有效的外部存储服务地址,否则创建 Changefeed 将会报错。| | TiCDC | [`large-message-handle-compression`](/ticdc/ticdc-sink-to-kafka.md#ticdc-层数据压缩功能) | 新增 | 控制是否开启编码时的压缩功能,默认为空,即不开启。| +| TiCDC | [`large-message-handle-option`](/ticdc/ticdc-sink-to-kafka.md#发送大消息到外部存储) | 修改 | 该配置项新增一个可选值 `claim-check`。当设置为 `claim-check` 时,TiCDC Kafka sink 支持在消息大小超过限制时将该条消息发送到外部存储服务,同时向 Kafka 发送一条含有该大消息在外部存储服务中的地址的消息。 | ## 改进提升 From ce0c303ff6c9b2f1a76299f72883c9f85f1c0996 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 21:09:55 +0800 Subject: [PATCH 145/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 31e473016f11..0f591e88d614 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -404,7 +404,7 @@ TiDB 版本:7.4.0 - 修复执行计划没有命中 plan cache 但不报 warning 的问题 [#46159](https://github.com/pingcap/tidb/issues/46159) @[qw4990](https://github.com/qw4990) - 修复 `plan replayer dump explain` 会报错的问题 [#46197](https://github.com/pingcap/tidb/issues/46197) @[time-and-fate](https://github.com/time-and-fate) - 修复执行带 CTE 的 DML 会导致 panic 的问题 [#46083](https://github.com/pingcap/tidb/issues/46083) @[winoros](https://github.com/winoros) - - 修复当 JOIN 两个子查询执行时 `TIDB_INLJ` Hint 不生效的问题 [#46160](https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) + - 修复当 JOIN 两个子查询时执行 `TIDB_INLJ` Hint 不生效的问题 [#46160](https://github.com/pingcap/tidb/issues/46160) @[qw4990](https://github.com/qw4990) - 修复 `MERGE_JOIN` 的结果错误的问题 [#46580](https://github.com/pingcap/tidb/issues/46580) @[qw4990](https://github.com/qw4990) + TiKV From b6daf2eaf426c1949ef17d0c5dfaadd98a0695ac Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 21:10:09 +0800 Subject: [PATCH 146/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 0f591e88d614..70fb45be03dd 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -303,7 +303,7 @@ TiDB 版本:7.4.0 | [`tidb_session_alias`](/system-variables.md#tidb_session_alias-从-v740-版本开始引入) | 新增 | 用来自定义当前会话相关日志中 `session_alias` 列的值。 | | [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) | 新增 | 用于设置单个查询在单个 TiFlash 节点上的内存使用上限,超过该限制时 TiFlash 会报错并终止该查询。默认值为 `0`,表示无限制。 | | [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) | 新增 | 用于控制 TiFlash [查询级别的落盘](/tiflash/tiflash-spill-disk.md#查询级别的落盘)机制的阈值。默认值为 `0.7`。 | -| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0` 表示使用默认的超时时间(通常是 40 秒)。 | +| [`tikv_client_read_timeout`](/system-variables.md#tikv_client_read_timeout-从-v740-版本开始引入) | 新增 | 该变量用于设置查询语句中 TiDB 发送 TiKV RPC 读请求的超时时间。默认值 `0`,表示使用默认的超时时间(通常是 40 秒)。 | ### 配置文件参数 From cb64e071293fa558a657da612695f59b08b8e632 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 10 Oct 2023 21:15:56 +0800 Subject: [PATCH 147/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 70fb45be03dd..87ae9ec11523 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -190,7 +190,7 @@ TiDB 版本:7.4.0 - `ddl`:对于 Reorg DDL,控制批量数据回写阶段的资源使用。 - `stats`:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 - 默认情况下,被标记为后台任务的任务类型为空,此时后台任务的管理功能处于关闭状态,其行为与 TiDB v7.4.0 之前版本保持一致。你需要手动修改 `default` 资源组的后台任务类型以开启后台任务管理。 + 默认情况下,被标记为后台任务的任务类型为空,此时后台任务的管理功能处于关闭状态,其行为与 TiDB v7.4.0 之前版本保持一致。你需要手动修改 `default` 资源组的后台任务类型以开启后台任务管理。 更多信息,请参考[用户文档](/tidb-resource-control.md#管理后台任务)。 From fe19b60b14c7c2961c3ecf7ab54bb0c7446bf5dd Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 14:09:16 +0800 Subject: [PATCH 148/161] Update releases/release-7.4.0.md Co-authored-by: Benjamin2037 --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 87ae9ec11523..36477606d85d 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -117,7 +117,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[Defined2014](https://github.com/Defined2014) +* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[tangenta] (https://github.com/tangenta) @[Defined2014](https://github.com/Defined2014) 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 `ADD INDEX` 操作时,其性能与使用多个独立的 SQL 语句进行 `ADD INDEX` 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 From 3370d01ca37b283552e2886ded32c474392ebeca Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 14:16:41 +0800 Subject: [PATCH 149/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 36477606d85d..71ee63486bc1 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -117,7 +117,7 @@ TiDB 版本:7.4.0 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[tangenta] (https://github.com/tangenta) @[Defined2014](https://github.com/Defined2014) +* 优化 Parallel Multi Schema Change,提升一个 SQL 语句添加多个索引的性能 [#41602](https://github.com/pingcap/tidb/issues/41602) @[tangenta](https://github.com/tangenta) @[Defined2014](https://github.com/Defined2014) 在 v7.4.0 之前,用户使用 Parallel Multi Schema Change 在一个 SQL 语句中提交多个 `ADD INDEX` 操作时,其性能与使用多个独立的 SQL 语句进行 `ADD INDEX` 操作的性能相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅提升。 From 6a54ceb4d56dbe585012c5dbe7d62dcec78fa683 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 14:17:39 +0800 Subject: [PATCH 150/161] Update releases/release-7.4.0.md Co-authored-by: Aolin --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 71ee63486bc1..3a43a7cb7e8b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -24,7 +24,7 @@ TiDB 版本:7.4.0 可扩展性与性能 - 提升在一个 ADD INDEX 语句中添加多个索引的性能 + 提升在一个 ADD INDEX 语句中添加多个索引的性能(实验特性) 自 v6.2.0 起,你可以在单个 ADD INDEX 语句中为表添加多个索引,然而这样做的性能与运行多个 ADD INDEX 语句相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅改进。 From 40573818163defb9fa411256ad62922036a890b6 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 14:20:18 +0800 Subject: [PATCH 151/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 3a43a7cb7e8b..2ab5a299e466 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -33,7 +33,7 @@ TiDB 版本:7.4.0 在 v7.4.0 以前,当你执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 - 资源管控支持自动管理后台任务(实验特性) + 资源管控支持自动管理后台任务(实验特性) 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 @@ -58,7 +58,7 @@ TiDB 版本:7.4.0 - MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci + MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地迁移或复制在 MySQL 8.0 中使用默认排序规则创建的数据库到 TiDB。 From d50c6776810144cdf7321b49c23a3ea525fc75b4 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 14:20:49 +0800 Subject: [PATCH 152/161] Update releases/release-7.4.0.md Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 2ab5a299e466..98270c87128f 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -63,7 +63,7 @@ TiDB 版本:7.4.0 数据库管理与可观测性 - 选择适用的 TiDB 节点来执行并行的 ADD INDEXIMPORT INTO SQL 语句(实验特性) + 选择适用的 TiDB 节点来并行执行 ADD INDEXIMPORT INTO SQL 语句(实验特性) 你可以选择在现有 TiDB 节点、或者新增 TiDB 节点执行 ADD INDEXIMPORT INTO SQL 语句。该方法可以实现与其他 TiDB 节点的资源隔离,确保在执行上述语句时的最佳性能,并避免对已有业务造成性能影响。 From 7889eb730912b821c8e56640db2626d70eaa157b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 14:27:12 +0800 Subject: [PATCH 153/161] Update releases/release-7.4.0.md Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 98270c87128f..c44b634ba41a 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -59,7 +59,7 @@ TiDB 版本:7.4.0 MySQL 8.0 兼容性:支持排序规则 utf8mb4_0900_ai_ci - MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地迁移或复制在 MySQL 8.0 中使用默认排序规则创建的数据库到 TiDB。 + MySQL 8.0 的一个显著变化是默认字符集更改为 utf8mb4,其默认排序规则是 utf8mb4_0900_ai_ci。TiDB v7.4.0 增强了与 MySQL 8.0 的兼容性。现在你可以更轻松地将在 MySQL 8.0 中使用默认排序规则创建的数据库迁移或复制到 TiDB。 数据库管理与可观测性 From 62f963b3e28ee472baad4ee4514e98e447863d93 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 11 Oct 2023 15:23:47 +0800 Subject: [PATCH 154/161] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index c44b634ba41a..0e16ba6a9997 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -9,7 +9,7 @@ summary: 了解 TiDB 7.4.0 版本的新功能、兼容性变更、改进提升 TiDB 版本:7.4.0 -试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v7.3/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/) +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v7.4/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/) 在 7.4.0 版本中,你可以获得以下关键特性: @@ -25,7 +25,7 @@ TiDB 版本:7.4.0 可扩展性与性能 提升在一个 ADD INDEX 语句中添加多个索引的性能(实验特性) - 自 v6.2.0 起,你可以在单个 ADD INDEX 语句中为表添加多个索引,然而这样做的性能与运行多个 ADD INDEX 语句相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅改进。 + 自 v6.2.0 起,你可以在单个 ADD INDEX 语句中为表添加多个索引,然而其性能与运行多个 ADD INDEX 语句相同。经过 v7.4.0 的优化后,在一个 SQL 语句中添加多个索引的性能得到了大幅改进。 稳定性与高可用 @@ -49,7 +49,7 @@ TiDB 版本:7.4.0 SQL TiDB 支持完整的分区类型管理功能 在 v7.4.0 之前,Range/List 分区表支持分区管理操作包括 TRUNCATEEXCHANGEADDDROPREORGANIZE 等,Hash/Key 分区表支持分区管理操作包括 ADD and COALESCE 等。 -

              现在 TiDB 新增支持了以下分区管理操作:

              +

              现在 TiDB 新增支持了以下分区类型管理操作:

              • 将分区表转换为非分区表
              • 对现有的非分区表进行分区
              • From 7e34fedb39444d752a985d7467d27365f60e09ee Mon Sep 17 00:00:00 2001 From: Ran Date: Thu, 12 Oct 2023 10:07:31 +0800 Subject: [PATCH 155/161] Update releases/release-7.4.0.md --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 0e16ba6a9997..59262627db0b 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -30,7 +30,7 @@ TiDB 版本:7.4.0 稳定性与高可用 引入全局排序能力,提升IMPORT INTOADD INDEX任务的性能和稳定性 - 在 v7.4.0 以前,当你执行分布式并行执行框架ADD INDEXIMPORT INTO 等任务时,TiDB 节点需要在将数据导入到 TiKV 之前为数据分配本地磁盘空间以进行排序。这种方式仅能进行部分数据的局部排序,往往会导致数据重叠,从而增加资源消耗,并降低 TiKV 的性能和稳定性。随着 v7.4.0 引入全局排序特性,数据可暂时存储在 S3 中,进行全局排序后再按顺序导入到 TiKV 中。这一改进降低了 TiKV 在数据整理过程中对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 + 在 v7.4.0 以前,使用分布式并行执行框架执行 ADD INDEXIMPORT INTO 等任务时,只能对部分数据进行局部排序。这导致 TiKV 需要采取额外操作,并且在将数据导入到 TiKV 之前,TiDB 节点还需要为其分配本地磁盘空间以进行排序。
                随着 v7.4.0 引入全局排序特性,可以将数据暂时存储在外部存储(如 S3)中进行全局排序后再导入到 TiKV 中。这一改进降低了 TiKV 对资源的额外消耗,并显著提高了 ADD INDEXIMPORT INTO 等操作的性能和稳定性。 资源管控支持自动管理后台任务(实验特性) From 29761bfda955332999a2b120d25ecd5f49f4d2d6 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 12 Oct 2023 10:41:08 +0800 Subject: [PATCH 156/161] Apply suggestions from code review Co-authored-by: Roger Song --- releases/release-7.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 59262627db0b..d21b031dc229 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -5,7 +5,7 @@ summary: 了解 TiDB 7.4.0 版本的新功能、兼容性变更、改进提升 # TiDB 7.4.0 Release Notes -发版日期:2023 年 x 月 x 日 +发版日期:2023 年 10 月 12 日 TiDB 版本:7.4.0 @@ -34,7 +34,7 @@ TiDB 版本:7.4.0 资源管控支持自动管理后台任务(实验特性) - 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、LOAD DATA 以及在线 DDL。未来,所有后台任务都将纳入资源管控。 + 从 v7.1.0 开始,资源管控成为正式功能,该特性有助于缓解不同工作负载间的资源与存储访问干扰。TiDB v7.4.0 将此资源控制应用于后台任务。资源管控可以识别和管理后台任务,例如自动收集统计信息、备份和恢复、TiDB Lightening 批量数据导入以及在线 DDL。未来,所有后台任务都将纳入资源管控。 TiFlash 支持存储计算资源分离和 S3 共享存储 (GA) @@ -185,7 +185,7 @@ TiDB 版本:7.4.0 目前 TiDB 支持如下几种后台任务的类型: - - `lightning`:使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 执行导入任务。同时支持 TiDB Lightning 的物理和逻辑导入模式。 + - `lightning`:使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 或 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md) 执行导入任务。 - `br`:使用 [BR](/br/backup-and-restore-overview.md) 执行数据备份和恢复。目前不支持 PITR。 - `ddl`:对于 Reorg DDL,控制批量数据回写阶段的资源使用。 - `stats`:对应手动执行或系统自动触发的[收集统计信息](/statistics.md#统计信息的收集)任务。 From 1204059998ef8015e5dd2e49fec8947c30623ff7 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:47:04 +0800 Subject: [PATCH 157/161] add 7.4 release notes to TOC --- TOC.md | 2 ++ releases/release-notes.md | 4 ++++ releases/release-timeline.md | 1 + 3 files changed, 7 insertions(+) diff --git a/TOC.md b/TOC.md index be5ce877d095..de5f070d7203 100644 --- a/TOC.md +++ b/TOC.md @@ -1027,6 +1027,8 @@ - [版本发布时间线](/releases/release-timeline.md) - [TiDB 版本规则](/releases/versioning.md) - [TiDB 离线包](/binary-package.md) + - v7.4 + - [7.4.0-DMR](/releases/release-7.4.0.md) - v7.3 - [7.3.0-DMR](/releases/release-7.3.0.md) - v7.2 diff --git a/releases/release-notes.md b/releases/release-notes.md index 2caad24048f8..c94a95f81e97 100644 --- a/releases/release-notes.md +++ b/releases/release-notes.md @@ -7,6 +7,10 @@ aliases: ['/docs-cn/dev/releases/release-notes/','/docs-cn/dev/releases/rn/'] TiDB 历史版本发布声明如下: +## 7.4 + +- [7.4.0-DMR](/releases/release-7.4.0.md): 2023-10-12 + ## 7.3 - [7.3.0-DMR](/releases/release-7.3.0.md): 2023-08-14 diff --git a/releases/release-timeline.md b/releases/release-timeline.md index 00933799763a..63d906a6baa9 100644 --- a/releases/release-timeline.md +++ b/releases/release-timeline.md @@ -9,6 +9,7 @@ summary: 了解 TiDB 的版本发布时间线。 | 版本 | 发布日期 | | :--- | :--- | +| [7.4.0-DMR](/releases/release-7.4.0.md) | 2023-10-12 | | [6.5.5](/releases/release-6.5.5.md) | 2023-09-21 | | [6.5.4](/releases/release-6.5.4.md) | 2023-08-28 | | [7.3.0-DMR](/releases/release-7.3.0.md) | 2023-08-14 | From 6de5daaafb6a73b8b1d85f6787cedd55e2c61738 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:05:47 +0800 Subject: [PATCH 158/161] Update TOC.md --- TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TOC.md b/TOC.md index de5f070d7203..5910c2fb887d 100644 --- a/TOC.md +++ b/TOC.md @@ -4,7 +4,7 @@ - [文档中心](https://docs.pingcap.com/zh) - 关于 TiDB - [TiDB 简介](/overview.md) - - [TiDB 7.3 Release Notes](/releases/release-7.3.0.md) + - [TiDB 7.4 Release Notes](/releases/release-7.4.0.md) - [功能概览](/basic-features.md) - [与 MySQL 的兼容性](/mysql-compatibility.md) - [使用限制](/tidb-limitations.md) From c68e498f8929b203f37af4e0f12fbbb1cc1430ff Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 12 Oct 2023 11:18:51 +0800 Subject: [PATCH 159/161] Update releases/release-7.4.0.md Co-authored-by: Ran --- releases/release-7.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index d21b031dc229..4b70f8425728 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -296,6 +296,7 @@ TiDB 版本:7.4.0 | `tidb_enable_tiflash_pipeline_model` | 删除 | 这个变量用来控制是否启用 TiFlash Pipeline Model。从 v7.4.0 开启,开启 TiFlash 资源管控功能时,Pipeline Model 模型将自动启用。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `ON` 修改为 `OFF`,即默认关闭非 Prepare 语句执行计划缓存。 | | [`default_collation_for_utf8mb4`](/system-variables.md#default_collation_for_utf8mb4-从-v740-版本开始引入) | 新增 | 该变量用于设置 utf8mb4 字符集的默认排序规则,默认值为 `utf8mb4_bin`。 | +| [`tidb_cloud_storage_uri`](/system-variables.md#tidb_cloud_storage_uri-从-v740-版本开始引入) | 新增 | 该变量用于指定[全局排序](/tidb-global-sort.md)中使用的云存储的 URI。 | | [`tidb_opt_enable_hash_join`](/system-variables.md#tidb_opt_enable_hash_join-从-v740-版本开始引入) | 新增 | 控制优化器是否会选择表的哈希连接。默认打开 (`ON`)。设置为 `OFF` 时,除非没有计划可用,否则优化器会避免选择表的哈希连接。 | | [`tidb_opt_objective`](/system-variables.md#tidb_opt_objective-从-v740-版本开始引入) | 新增 | 该变量用于设置优化器优化目标。`moderate` 维持旧版本的默认行为,优化器会利用更多信息尝试生成更优的计划;`determinate` 则倾向于保守,保持执行计划稳定。 | | [`tidb_schema_version_cache_limit`](/system-variables.md#tidb_schema_version_cache_limit-从-v740-版本开始引入) | 新增 | 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。| From 5133308ea38fc461d617848ee8c5941a22031b23 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 12 Oct 2023 11:37:45 +0800 Subject: [PATCH 160/161] Update releases/release-7.4.0.md Co-authored-by: Aolin --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 4b70f8425728..3077d869c94c 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -91,7 +91,7 @@ TiDB 版本:7.4.0 在 v7.0.0 中,TiFlash 以实验特性引入了存算分离架构。经过一系列的改进,从 v7.4.0 起,TiFlash 正式支持存算分离架构。 - 在存算分离架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并使用兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。在存算分离架构下,TiFlash 的使用方式与存算一体架构一致,例如创建 TiFlash 副本、查询、指定优化器 Hint 等。 + 在存算分离架构下,TiFlash 节点分为 Compute Node(计算节点)和 Write Node(写入节点)两种类型,并使用兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。在存算分离架构下,TiFlash 的使用方式与存算一体架构一致,例如创建 TiFlash 副本、查询、指定优化器 Hint 等。 需要注意的是,TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 From ed9f7a7a1d921a3d9922e32f478dcfd58174a1cb Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 12 Oct 2023 11:37:56 +0800 Subject: [PATCH 161/161] Update releases/release-7.4.0.md Co-authored-by: Aolin --- releases/release-7.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 3077d869c94c..b3dfd9d7cf28 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -48,7 +48,7 @@ TiDB 版本:7.4.0 SQL TiDB 支持完整的分区类型管理功能 - 在 v7.4.0 之前,Range/List 分区表支持分区管理操作包括 TRUNCATEEXCHANGEADDDROPREORGANIZE 等,Hash/Key 分区表支持分区管理操作包括 ADD and COALESCE 等。 + 在 v7.4.0 之前,Range/List 分区表支持分区管理操作包括 TRUNCATEEXCHANGEADDDROPREORGANIZE 等,Hash/Key 分区表支持分区管理操作包括 ADDCOALESCE 等。

                现在 TiDB 新增支持了以下分区类型管理操作:

                • 将分区表转换为非分区表