From b1df57c061c736738d9c65f8124358880f372e2c Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 31 Oct 2022 10:48:56 +0800 Subject: [PATCH 001/105] add release notes --- TOC.md | 4 +- releases/release-6.4.0.md | 234 +++++++++++++++++++++++++++++++++++ releases/release-notes.md | 4 + releases/release-timeline.md | 1 + 4 files changed, 242 insertions(+), 1 deletion(-) create mode 100644 releases/release-6.4.0.md diff --git a/TOC.md b/TOC.md index 1377cc5fb321..5c59784943c9 100644 --- a/TOC.md +++ b/TOC.md @@ -4,7 +4,7 @@ - [文档中心](https://docs.pingcap.com/zh) - 关于 TiDB - [TiDB 简介](/overview.md) - - [TiDB 6.3 Release Notes](/releases/release-6.3.0.md) + - [TiDB 6.4 Release Notes](/releases/release-6.4.0.md) - [基本功能](/basic-features.md) - [实验特性](/experimental-features.md) - [与 MySQL 的兼容性](/mysql-compatibility.md) @@ -917,6 +917,8 @@ - [版本发布时间线](/releases/release-timeline.md) - [TiDB 版本规则](/releases/versioning.md) - [TiDB 离线包](/binary-package.md) + - v6.4 + - [6.4.0-DMR](/releases/release-6.4.0.md) - v6.3 - [6.3.0-DMR](/releases/release-6.3.0.md) - v6.2 diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md new file mode 100644 index 000000000000..275a4a643d70 --- /dev/null +++ b/releases/release-6.4.0.md @@ -0,0 +1,234 @@ +--- +title: TiDB 6.4.0 Release Notes +--- + +# TiDB v6.4.0 Release Notes + +发版日期:2022 年 x 月 xx 日 + +TiDB 版本:6.4.0-DMR + +在 6.4.0-DMR 版本中,你可以获得以下关键特性: + +- 关键特性 1 +- 关键特性 2 +- 关键特性 3 +- ...... + +## 新功能 + +### SQL + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 安全 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 可观测性 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 性能 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 事务 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 稳定性 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 易用性 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### MySQL 兼容性 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 数据迁移 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 数据共享与订阅 + +* 功能标题 + + 功能描述 [#issue]() @[贡献者 GitHub ID]() + + [用户文档]() + +### 部署及运维 + +* 功能标题 + + 功能描述 [#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 + + - 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 社区的贡献者们: + +- [贡献者 GitHub ID]() \ No newline at end of file diff --git a/releases/release-notes.md b/releases/release-notes.md index fc8236ee36fb..f2ca53539984 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 历史版本发布声明如下: +## 6.4 + +- [6.4.0-DMR](/releases/release-6.4.0.md): 2022-11-xx + ## 6.3 - [6.3.0-DMR](/releases/release-6.3.0.md): 2022-09-30 diff --git a/releases/release-timeline.md b/releases/release-timeline.md index 3d698151695e..73bff05b924b 100644 --- a/releases/release-timeline.md +++ b/releases/release-timeline.md @@ -9,6 +9,7 @@ summary: 了解 TiDB 的版本发布时间线。 | 版本 | 发布日期 | | :--- | :--- | +| [6.4.0-DMR](/releases/release-6.4.0.md) | 2022-11-xx | | [6.1.2](/releases/release-6.1.2.md) | 2022-10-24 | | [5.4.3](/releases/release-5.4.3.md) | 2022-10-13 | | [6.3.0-DMR](/releases/release-6.3.0.md) | 2022-09-30 | From 7e0902ed3d3a3d494dfe38b5236e45210c0a2cc6 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 31 Oct 2022 11:03:07 +0800 Subject: [PATCH 002/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 44 +++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 275a4a643d70..3fe81f7e3dfd 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -19,89 +19,89 @@ TiDB 版本:6.4.0-DMR ### SQL -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 安全 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 可观测性 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 性能 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 事务 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 稳定性 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 易用性 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### MySQL 兼容性 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 数据迁移 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 数据共享与订阅 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() ### 部署及运维 -* 功能标题 +* 功能简短描述 - 功能描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述 [#issue]() @[贡献者 GitHub ID]() [用户文档]() From da1c57fb0b0063c047e47770910700a1c3750619 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 31 Oct 2022 11:04:00 +0800 Subject: [PATCH 003/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 3fe81f7e3dfd..a08f3a7e3736 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -21,7 +21,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -29,7 +29,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -37,7 +37,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -45,7 +45,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -53,7 +53,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -61,7 +61,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -69,7 +69,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -77,7 +77,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -85,7 +85,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -93,7 +93,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() @@ -101,7 +101,7 @@ TiDB 版本:6.4.0-DMR * 功能简短描述 - 功能详细描述 [#issue]() @[贡献者 GitHub ID]() + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() [用户文档]() From c098005c799ff43aa9568b059ba017298dc7ee2d Mon Sep 17 00:00:00 2001 From: pingyu Date: Mon, 31 Oct 2022 12:55:53 +0800 Subject: [PATCH 004/105] add TiKV API V2 GA Signed-off-by: pingyu --- releases/release-6.4.0.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a08f3a7e3736..4fb7ab962601 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -67,6 +67,30 @@ TiDB 版本:6.4.0-DMR ### 易用性 +* TiKV API V2 GA + + 在 v6.1.0 之前,TiKV 的 RawKV 接口仅存储客户端传入的原始数据,因此只提供基本的 Key Value 读写能力。此外,由于编码方式不同、数据范围没有隔离,因此在同一个 TiKV 集群中,TiDB、事务 KV、RawKV 无法同时使用,对于不同使用方式并存的场景,必须部署多套集群,增加了机器和部署成本。 + + TiKV API V2 提供了新的存储格式,包括: + + * RawKV 数据以 MVCC 方式存储,记录数据的变更时间戳,并在此基础上提供 Change Data Capture 能力(实验特性,见 [TiKV-CDC](https://github.com/tikv/migration/blob/main/cdc/README.md))。 + * 数据根据使用方式划分范围,支持单一集群 TiDB、事务 KV、RawKV 应用共存。 + * 预留 Key Space 字段,可以为多租户等特性提供支持。 + + 使用 TiKV API V2 请在 TiKV 的 `[storage]` 配置中增加或修改 `api-version = 2`。详见[用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入)。 + + + + * 由于底层存储格式发生了重大变化,因此仅当 TiKV 只有 TiDB 数据时,可以平滑启用或关闭 API V2。其他情况下,需要新建集群,并使用 [TiKV-BR](https://github.com/tikv/migration/blob/main/br/README-cn.md) 进行数据迁移。 + + * 启用 API V2 后,不能将 TiKV 集群回退到 v6.1.0 之前的版本,否则可能导致数据损坏。 + + + + [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) + + [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) + * 功能简短描述 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() From 070cdd8d24ed7b1a09097796b38b8e81b6da8e08 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 31 Oct 2022 13:50:44 +0800 Subject: [PATCH 005/105] Update release-6.4.0.md add notes for FD 757 --- releases/release-6.4.0.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 4fb7ab962601..529a88c44a7b 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -91,6 +91,15 @@ TiDB 版本:6.4.0-DMR [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) + +* 优化 TiFlash 数据同步进度的准确性 + + TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 + v6.3.0 版本改进了 TiFlash 副本数据同步进度更新机制,在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 + + [用户文档](/information-schema/information-schema-tiflash-replica.md) [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) + + * 功能简短描述 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() From 7e3baf4f3a6a160043fa876eeece0294202b29a5 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 1 Nov 2022 17:37:39 +0800 Subject: [PATCH 006/105] Update release-6.4.0.md add note for fd 1062 --- releases/release-6.4.0.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 529a88c44a7b..a7289f2c830e 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -49,6 +49,11 @@ TiDB 版本:6.4.0-DMR [用户文档]() +* 新增支持下推两个[正则表达式函数](/tiflash/tiflash-supported-pushdown-calculations.md) 至 TiFlash。函数下推到 TiFlash 可以获得更强的计算性能。使用时,你不需要特别设定,优化器会根据 TiFlash 副本和函数信息进行判断,并在符合条件时,自动将这两个函数下推至 TiFlash 执行。[#5579](https://github.com/pingcap/tiflash/issues/6115) @[xzhangxian1008](https://github.com/xzhangxian1008) + + * `REGEXP_LIKE()` + * `REGEXP_INSTR()` + ### 事务 * 功能简短描述 From e0280d111cde92deb8d061f3058b883f78a55da7 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 1 Nov 2022 18:01:50 +0800 Subject: [PATCH 007/105] Update release-6.4.0.md add note for fd 841 --- releases/release-6.4.0.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a7289f2c830e..b5d5a80f39fa 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -19,6 +19,13 @@ TiDB 版本:6.4.0-DMR ### SQL +* 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction) + + v6.2.0 版本发布了针对全表的 TiFlash 副本立即触发 [物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) 功能,支持用户自行选择合适的时机、手动执行 SQL 语句来对 TiFlash 中的物理数据立即进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 版本细化了 TiFlash 副本物理数据整理的粒度,支持对表中的指定 Partition 的 TiFlash 副本立即触发物理数据整理。 + 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]` 可以立即触发指定 Partition 的 TiFlash 副本物理数据整理。 + + [用户文档](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) + * 功能简短描述 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() @@ -104,7 +111,6 @@ TiDB 版本:6.4.0-DMR [用户文档](/information-schema/information-schema-tiflash-replica.md) [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) - * 功能简短描述 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() From eed0af1283620c9c077f85acbd37c01ca520a55e Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 1 Nov 2022 18:08:02 +0800 Subject: [PATCH 008/105] modify note for fd-1062 --- releases/release-6.4.0.md | 4 +++- tiflash/tiflash-supported-pushdown-calculations.md | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index b5d5a80f39fa..381c98e60664 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -56,11 +56,13 @@ TiDB 版本:6.4.0-DMR [用户文档]() -* 新增支持下推两个[正则表达式函数](/tiflash/tiflash-supported-pushdown-calculations.md) 至 TiFlash。函数下推到 TiFlash 可以获得更强的计算性能。使用时,你不需要特别设定,优化器会根据 TiFlash 副本和函数信息进行判断,并在符合条件时,自动将这两个函数下推至 TiFlash 执行。[#5579](https://github.com/pingcap/tiflash/issues/6115) @[xzhangxian1008](https://github.com/xzhangxian1008) +* 新增支持下推两个[正则表达式函数](/tiflash/tiflash-supported-pushdown-calculations.md) 至 TiFlash。函数下推到 TiFlash 可以获得更强的计算性能。使用时,你不需要特别设定,优化器会根据 TiFlash 副本和函数信息进行判断,并在符合条件时,自动将这两个函数下推至 TiFlash 执行。 * `REGEXP_LIKE()` * `REGEXP_INSTR()` + [用户文档](/tiflash/tiflash-supported-pushdown-calculations.md) [#5579](https://github.com/pingcap/tiflash/issues/6115) @[xzhangxian1008](https://github.com/xzhangxian1008) + ### 事务 * 功能简短描述 diff --git a/tiflash/tiflash-supported-pushdown-calculations.md b/tiflash/tiflash-supported-pushdown-calculations.md index 0f2d6bcc58b7..51b3331c307a 100644 --- a/tiflash/tiflash-supported-pushdown-calculations.md +++ b/tiflash/tiflash-supported-pushdown-calculations.md @@ -31,7 +31,7 @@ TiFlash 支持部分算子的下推,支持的算子如下: * 数学函数:`+, -, /, *, %, >=, <=, =, !=, <, >, round, abs, floor(int), ceil(int), ceiling(int), sqrt, log, log2, log10, ln, exp, pow, sign, radians, degrees, conv, crc32, greatest(int/real), least(int/real)` * 逻辑函数:`and, or, not, case when, if, ifnull, isnull, in, like, coalesce, is` * 位运算:`bitand, bitor, bigneg, bitxor` -* 字符串函数:`substr, char_length, replace, concat, concat_ws, left, right, ascii, length, trim, ltrim, rtrim, position, format, lower, ucase, upper, substring_index, lpad, rpad, strcmp, regexp` +* 字符串函数:`substr, char_length, replace, concat, concat_ws, left, right, ascii, length, trim, ltrim, rtrim, position, format, lower, ucase, upper, substring_index, lpad, rpad, strcmp, regexp, regexp_like, regexp_instr` * 日期函数:`date_format, timestampdiff, from_unixtime, unix_timestamp(int), unix_timestamp(decimal), str_to_date(date), str_to_date(datetime), datediff, year, month, day, extract(datetime), date, hour, microsecond, minute, second, sysdate, date_add/adddate(datetime, int), date_add/adddate(string, int), date_add/adddate(string, real), date_sub/subdate(datetime, int), date_sub/subdate(string, int), date_sub/subdate(string, real), quarter, dayname, dayofmonth, dayofweek, dayofyear, last_day, monthname, to_seconds, to_days, from_days, weekofyear` * JSON 函数:`json_length` * 转换函数:`cast(int as double), cast(int as decimal), cast(int as string), cast(int as time), cast(double as int), cast(double as decimal), cast(double as string), cast(double as time), cast(string as int), cast(string as double), cast(string as decimal), cast(string as time), cast(decimal as int), cast(decimal as string), cast(decimal as time), cast(time as int), cast(time as decimal), cast(time as string), cast(time as real)` From bbe41b9e158c6c29bf58dfd01ae5c92be1ba4e71 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 1 Nov 2022 18:23:08 +0800 Subject: [PATCH 009/105] remove note for fd 1062 --- releases/release-6.4.0.md | 7 ------- tiflash/tiflash-supported-pushdown-calculations.md | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 381c98e60664..122820dfe9c7 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -56,13 +56,6 @@ TiDB 版本:6.4.0-DMR [用户文档]() -* 新增支持下推两个[正则表达式函数](/tiflash/tiflash-supported-pushdown-calculations.md) 至 TiFlash。函数下推到 TiFlash 可以获得更强的计算性能。使用时,你不需要特别设定,优化器会根据 TiFlash 副本和函数信息进行判断,并在符合条件时,自动将这两个函数下推至 TiFlash 执行。 - - * `REGEXP_LIKE()` - * `REGEXP_INSTR()` - - [用户文档](/tiflash/tiflash-supported-pushdown-calculations.md) [#5579](https://github.com/pingcap/tiflash/issues/6115) @[xzhangxian1008](https://github.com/xzhangxian1008) - ### 事务 * 功能简短描述 diff --git a/tiflash/tiflash-supported-pushdown-calculations.md b/tiflash/tiflash-supported-pushdown-calculations.md index 51b3331c307a..0f2d6bcc58b7 100644 --- a/tiflash/tiflash-supported-pushdown-calculations.md +++ b/tiflash/tiflash-supported-pushdown-calculations.md @@ -31,7 +31,7 @@ TiFlash 支持部分算子的下推,支持的算子如下: * 数学函数:`+, -, /, *, %, >=, <=, =, !=, <, >, round, abs, floor(int), ceil(int), ceiling(int), sqrt, log, log2, log10, ln, exp, pow, sign, radians, degrees, conv, crc32, greatest(int/real), least(int/real)` * 逻辑函数:`and, or, not, case when, if, ifnull, isnull, in, like, coalesce, is` * 位运算:`bitand, bitor, bigneg, bitxor` -* 字符串函数:`substr, char_length, replace, concat, concat_ws, left, right, ascii, length, trim, ltrim, rtrim, position, format, lower, ucase, upper, substring_index, lpad, rpad, strcmp, regexp, regexp_like, regexp_instr` +* 字符串函数:`substr, char_length, replace, concat, concat_ws, left, right, ascii, length, trim, ltrim, rtrim, position, format, lower, ucase, upper, substring_index, lpad, rpad, strcmp, regexp` * 日期函数:`date_format, timestampdiff, from_unixtime, unix_timestamp(int), unix_timestamp(decimal), str_to_date(date), str_to_date(datetime), datediff, year, month, day, extract(datetime), date, hour, microsecond, minute, second, sysdate, date_add/adddate(datetime, int), date_add/adddate(string, int), date_add/adddate(string, real), date_sub/subdate(datetime, int), date_sub/subdate(string, int), date_sub/subdate(string, real), quarter, dayname, dayofmonth, dayofweek, dayofyear, last_day, monthname, to_seconds, to_days, from_days, weekofyear` * JSON 函数:`json_length` * 转换函数:`cast(int as double), cast(int as decimal), cast(int as string), cast(int as time), cast(double as int), cast(double as decimal), cast(double as string), cast(double as time), cast(string as int), cast(string as double), cast(string as decimal), cast(string as time), cast(decimal as int), cast(decimal as string), cast(decimal as time), cast(time as int), cast(time as decimal), cast(time as string), cast(time as real)` From 2efead689ff63fc50d552cf8d714afa2cd9ebbb6 Mon Sep 17 00:00:00 2001 From: long0712 <87366891+ljun0712@users.noreply.github.com> Date: Tue, 1 Nov 2022 22:14:29 +0800 Subject: [PATCH 010/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 122820dfe9c7..c465eee96fb6 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -10,7 +10,7 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: -- 关键特性 1 +- TiFlash 静态加密支持国密算法 SM4。 - 关键特性 2 - 关键特性 3 - ...... @@ -34,11 +34,11 @@ TiDB 版本:6.4.0-DMR ### 安全 -* 功能简短描述 +* TiKFlash 静态加密支持国密算法 SM4 - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() + TiFlash 的静态加密新增 SM4 算法,用户可以修改配置文件 tiflash-learner.toml 中的 data-encryption-method 参数,设置为 sm4-ctr,以启用基于国密算法 SM4 的静态加密能力。 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) - [用户文档]() + [用户文档](/encryption-at-rest.md) ### 可观测性 @@ -159,6 +159,7 @@ TiDB 版本:6.4.0-DMR | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | +| TiFlash | data-encryption-method | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | | | | | | | | | | | | | | | | @@ -270,4 +271,4 @@ TiDB 版本:6.4.0-DMR 感谢来自 TiDB 社区的贡献者们: -- [贡献者 GitHub ID]() \ No newline at end of file +- [贡献者 GitHub ID]() From 3b8117843371735332a0ef7bbd4068cd1f359c9d Mon Sep 17 00:00:00 2001 From: benmaoer <24819510+benmaoer@users.noreply.github.com> Date: Wed, 2 Nov 2022 16:56:04 +0800 Subject: [PATCH 011/105] docs: add v6.4 flashback cluster feature --- releases/release-6.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index c465eee96fb6..e2ee886a8d3c 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -11,7 +11,7 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: - TiFlash 静态加密支持国密算法 SM4。 -- 关键特性 2 +- 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 - 关键特性 3 - ...... @@ -26,11 +26,11 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) -* 功能简短描述 +* 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() + FLASHBACK CLUSTER 支持在 Garbage Collection (GC) life time 时间内,快速回退整个集群到指定的时间点。使用该特性可以轻松快速撤消 DML 误操作,例如,用户误执行了没有 WHERE 子句的 DELETE,FLASHBACK CLUSTER 能够在几分钟内回退原数据库集群到指点时间点。该特性不依赖于数据库备份,支持在时间线上反复回退以确定特定数据更改发生的时间。FLASHBACK CLUSTER 不能替代数据库备份。[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) - [用户文档]() + [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) ### 安全 From f400b3e07dfc8798d87eff04d8296cdccac9c8ac Mon Sep 17 00:00:00 2001 From: Ryan Liu <2842195+moyun@users.noreply.github.com> Date: Wed, 2 Nov 2022 18:40:24 +0900 Subject: [PATCH 012/105] add linear hash partition in MySQL compatibility section --- releases/release-6.4.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index e2ee886a8d3c..3a40e7a56560 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -28,10 +28,11 @@ TiDB 版本:6.4.0-DMR * 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 - FLASHBACK CLUSTER 支持在 Garbage Collection (GC) life time 时间内,快速回退整个集群到指定的时间点。使用该特性可以轻松快速撤消 DML 误操作,例如,用户误执行了没有 WHERE 子句的 DELETE,FLASHBACK CLUSTER 能够在几分钟内回退原数据库集群到指点时间点。该特性不依赖于数据库备份,支持在时间线上反复回退以确定特定数据更改发生的时间。FLASHBACK CLUSTER 不能替代数据库备份。[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) + FLASHBACK CLUSTER 支持在 Garbage Collection (GC) life time 时间内,快速回退整个集群到指定的时间点。使用该特性可以轻松快速撤消 DML 误操作,例如,用户误执行了没有 WHERE 子句的 DELETE,FLASHBACK CLUSTER 能够在几分钟内回退原数据库集群到指点时间点。该特性不依赖于数据库备份,支持在时间线上反复回退以确定特定数据更改发生的时间。FLASHBACK CLUSTER 不能替代数据库备份。[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) + ### 安全 * TiKFlash 静态加密支持国密算法 SM4 @@ -114,6 +115,13 @@ TiDB 版本:6.4.0-DMR ### MySQL 兼容性 +* TiDB 分区表兼容 Linear Hash 分区 + + TiDB 现有的分区方式支持 Hash,Range,List 分区,在此基础上增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区的兼容行为,方便原 MySQL 用户迁移到 TiDB。 + 用户现有的 MySQL Linear Hash 分区的 DDL 可以不经修改直接在 TiDB 上执行,产生一个 TiDB Hash 分区表(TiDB 内部实际不存在 Linear Hash 分区)。用户已有的查询/访问原 Linear Hash 分区的 SQL(DML)也可以不经修改,直接访问对应的 TiDB Hash 分区,得到正常结果。此功能保证了对 MySQL Linear Hash 分区的语法兼容,方便用户的应用无缝迁移到 TiDB。[#issue](https://github.com/pingcap/tidb/issues/38450) @[贡献者 GitHub ID](mjonss) + + [用户文档](/mysql-compatibility.md) + * 功能简短描述 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() From 9d7de174b01e434d997494cacc8cca87407db94a Mon Sep 17 00:00:00 2001 From: benmaoer <24819510+benmaoer@users.noreply.github.com> Date: Wed, 2 Nov 2022 21:08:07 +0800 Subject: [PATCH 013/105] docs: add v6.4 monotonic auto increment feature --- releases/release-6.4.0.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 3a40e7a56560..cc792cbc5af5 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -122,11 +122,12 @@ TiDB 版本:6.4.0-DMR [用户文档](/mysql-compatibility.md) -* 功能简短描述 +* 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性 - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() + TiDB 现有的 AUTO_INCREMENT 列属性的全局单调性和性能不可兼得,提供高性能、全局单调递增的 AUTO_INCREMENT 列属性能够更完美的兼容 MySQL AUTO_INCREMENT 的功能,降低用户从 MySQL 迁移到 TiDB 的改造成本。例如,使用该特性能够轻松解决用户的查询结果需要按照自增 ID 排序的问题。[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) + + [用户文档](/auto-increment.md#mysql-兼容模式) - [用户文档]() ### 数据迁移 From 15e42767a7244b74ea1a15e1dd04cde6bff178ad Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 3 Nov 2022 10:30:04 +0800 Subject: [PATCH 014/105] FD-987 & FD-1065 --- releases/release-6.4.0.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index cc792cbc5af5..bd114901fbe3 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -10,6 +10,7 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: +- TiDB 全局内存限制 - TiFlash 静态加密支持国密算法 SM4。 - 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 - 关键特性 3 @@ -57,6 +58,13 @@ TiDB 版本:6.4.0-DMR [用户文档]() +* 前缀索引支持对空值的过滤 + + 这是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 的执行性能。 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) + + [用户文档](/system-variables.md#tidboptpreindexsinglescan-span-classversion-mark从-v640-版本开始引入span) + + ### 事务 * 功能简短描述 @@ -73,6 +81,18 @@ TiDB 版本:6.4.0-DMR [用户文档]() +* TiDB 全局内存限制 + + 在 v6.4.0 中,我们引入了一个实验特性,对 TiDB 实例的全局内存使用进行追踪。 用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入span) 设置全局内存的使用上限。 当内存使用量逼近预设的上限时, TiDB 会尝试对内存进行回收,释放更多的可用内存; 当内存使用量超出预设的上限时, TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 + + 同时,TiDB 提供了视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作, 可以帮助客户清晰了解内存使用状况。 + + 全局内存限制是 TiDB 内存管理的重要一步, 实例采用全局视角,引入系统性方法对内存的使用进行管理, 这将会极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 + + [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) + + [用户文档](configure-memory-usage.md) + ### 易用性 * TiKV API V2 GA @@ -159,10 +179,10 @@ TiDB 版本:6.4.0-DMR | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| | | | -| | | | -| | | | -| | | | +| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能 | +| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | +| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。 | +| [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | ### 配置文件参数 From a222471dff0837d63e22f86fc73c059a196eae93 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 3 Nov 2022 11:27:27 +0800 Subject: [PATCH 015/105] FD-863 --- releases/release-6.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index bd114901fbe3..5e2e90ed3f2b 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -58,6 +58,12 @@ TiDB 版本:6.4.0-DMR [用户文档]() +* 增加了动态规划算法来决定表的连接顺序 + + 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 + + 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 + * 前缀索引支持对空值的过滤 这是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 的执行性能。 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) From e731aed1c2793a1d89e3d0c1934ee7e1ed341565 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 3 Nov 2022 12:12:57 +0800 Subject: [PATCH 016/105] FD-767 --- releases/release-6.4.0.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 5e2e90ed3f2b..c80d24bca4a4 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -64,6 +64,10 @@ TiDB 版本:6.4.0-DMR 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 + [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) + + [用户文档](/join-reorder.md) + * 前缀索引支持对空值的过滤 这是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 的执行性能。 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) @@ -97,7 +101,13 @@ TiDB 版本:6.4.0-DMR [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) - [用户文档](configure-memory-usage.md) + [用户文档](/configure-memory-usage.md) + +* 控制优化器在构造范围时的内存占用 + + v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 用来限制优化器在构造范围时消耗的内存上限。 当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。 当 SQL 中的 `IN` 条件特别多时, 这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) + + [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) ### 易用性 @@ -189,6 +199,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。 | | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | +| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。| ### 配置文件参数 From 0efa271530205b2e0bfb7a8b7cedbed73bd5674f Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 4 Nov 2022 09:19:56 +0800 Subject: [PATCH 017/105] FD-1114 --- releases/release-6.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index c80d24bca4a4..a8a96a090c60 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -200,6 +200,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。 | | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | | [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。| +| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域 | ### 配置文件参数 From 9e6d5791b2c9094ddf54c8123ca32ca273380b24 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 4 Nov 2022 11:48:03 +0800 Subject: [PATCH 018/105] Apply suggestions from code review Co-authored-by: Ian Co-authored-by: Lux --- releases/release-6.4.0.md | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a8a96a090c60..f229c739188f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -153,7 +153,7 @@ TiDB 版本:6.4.0-DMR * TiDB 分区表兼容 Linear Hash 分区 - TiDB 现有的分区方式支持 Hash,Range,List 分区,在此基础上增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区的兼容行为,方便原 MySQL 用户迁移到 TiDB。 + TiDB 现有的分区方式支持 Hash,Range,List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容,方便原 MySQL 用户迁移到 TiDB。 用户现有的 MySQL Linear Hash 分区的 DDL 可以不经修改直接在 TiDB 上执行,产生一个 TiDB Hash 分区表(TiDB 内部实际不存在 Linear Hash 分区)。用户已有的查询/访问原 Linear Hash 分区的 SQL(DML)也可以不经修改,直接访问对应的 TiDB Hash 分区,得到正常结果。此功能保证了对 MySQL Linear Hash 分区的语法兼容,方便用户的应用无缝迁移到 TiDB。[#issue](https://github.com/pingcap/tidb/issues/38450) @[贡献者 GitHub ID](mjonss) [用户文档](/mysql-compatibility.md) @@ -165,6 +165,19 @@ TiDB 版本:6.4.0-DMR [用户文档](/auto-increment.md#mysql-兼容模式) +### 备份和恢复 + +* 基于 AWS EBS snapshot 的集群备份和恢复 + + 如果你的TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 AWS S3: + + - 份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 + - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 + + [#issue](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) + + [用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot) + ### 数据迁移 * 功能简短描述 @@ -183,11 +196,13 @@ TiDB 版本:6.4.0-DMR ### 部署及运维 -* 功能简短描述 +* 集群诊断功能 GA - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() + 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 + + 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-report#%E8%AF%8A%E6%96%AD%E4%BF%A1%E6%81%AF)部分可以了解 TiDB 内置自动诊断的结果。 - [用户文档]() + 详细内容见[用户文档](https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-access) ## 兼容性变更 @@ -240,6 +255,11 @@ TiDB 版本:6.4.0-DMR + Tools + + TiDB Dashboard + - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式。 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) + - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + + Backup & Restore (BR) - note [#issue]() @[贡献者 GitHub ID]() @@ -289,6 +309,10 @@ TiDB 版本:6.4.0-DMR + Tools + + TiDB Dashboard + + - 避免查询 Statement 执行计划的时候造成 TiDB OOM。 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) + + Backup & Restore (BR) - note [#issue]() @[贡献者 GitHub ID]() From b05f0563c836131b0515a5057cd9f8c6181d9f89 Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 4 Nov 2022 11:55:57 +0800 Subject: [PATCH 019/105] implement comments from Frank945946 and easonn7 --- releases/release-6.4.0.md | 72 ++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index f229c739188f..0d9027e23fea 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -33,10 +33,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) - ### 安全 -* TiKFlash 静态加密支持国密算法 SM4 +* TiKFlash 静态加密支持国密算法 SM4 TiFlash 的静态加密新增 SM4 算法,用户可以修改配置文件 tiflash-learner.toml 中的 data-encryption-method 参数,设置为 sm4-ctr,以启用基于国密算法 SM4 的静态加密能力。 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) @@ -60,9 +59,9 @@ TiDB 版本:6.4.0-DMR * 增加了动态规划算法来决定表的连接顺序 - 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 + 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 - 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 + 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) @@ -74,7 +73,6 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidboptpreindexsinglescan-span-classversion-mark从-v640-版本开始引入span) - ### 事务 * 功能简短描述 @@ -85,19 +83,17 @@ TiDB 版本:6.4.0-DMR ### 稳定性 -* 功能简短描述 - - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() +* 磁盘故障,I/O 无响应等极端情况下的故障恢复加速 - [用户文档]() + 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障,快速恢复一直是数据库面临的挑战之一。TiDB 在 6.4 版本,全面优化了 TiKV 节点的状态检测机制,即使在磁盘故障,I/O 无响应等极端情况,依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起选主,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 [#issue]() @[贡献者 GitHub ID]() * TiDB 全局内存限制 在 v6.4.0 中,我们引入了一个实验特性,对 TiDB 实例的全局内存使用进行追踪。 用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入span) 设置全局内存的使用上限。 当内存使用量逼近预设的上限时, TiDB 会尝试对内存进行回收,释放更多的可用内存; 当内存使用量超出预设的上限时, TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 - - 同时,TiDB 提供了视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作, 可以帮助客户清晰了解内存使用状况。 - - 全局内存限制是 TiDB 内存管理的重要一步, 实例采用全局视角,引入系统性方法对内存的使用进行管理, 这将会极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 + + 同时,TiDB 提供了视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作, 可以帮助客户清晰了解内存使用状况。 + + 全局内存限制是 TiDB 内存管理的重要一步, 实例采用全局视角,引入系统性方法对内存的使用进行管理, 这将会极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) @@ -135,7 +131,6 @@ TiDB 版本:6.4.0-DMR [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) - * 优化 TiFlash 数据同步进度的准确性 TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 @@ -164,27 +159,58 @@ TiDB 版本:6.4.0-DMR [用户文档](/auto-increment.md#mysql-兼容模式) - ### 备份和恢复 * 基于 AWS EBS snapshot 的集群备份和恢复 如果你的TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 AWS S3: - - - 份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 + + - 备份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 - + [#issue](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) [用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot) ### 数据迁移 -* 功能简短描述 +* 支持在分库分表迁移场景,下游的表支持增加扩展列并赋值,用于标记下游表中的记录来之上游哪个分库分表。 - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() + 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。) [#37790](https://github.com/pingcap/tidb/pull/37790) @lichunzhu - [用户文档]() + [用户文档](https://github.com/pingcap/docs-cn/pull/11536/files) + +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。 + + 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 [#无](无) @lichunzhu + + 用户文档无,对用户无感知 + +* 解决了上游数据库的建表 sql TiDB 不兼容,导致 DM 全量迁移报错的问题。[#issue](https://github.com/pingcap/tidb/issues/37984) @lance6716 + + DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 + + [用户文档](https://github.com/pingcap/docs-cn/pull/11718 + https://github.com/pingcap/docs/pull/10974) + +* 配置DM 增量迁移任务,支持 binlog_name 和 GTID 的参数可作为选配项。 + + 用户只配置 DM 增量迁移任务时,如果不指定 binlog_name 和 GTID 的参数取值,则默认按任务的启动时间去上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了用户的理解成本和配置复杂度。 + [#7393](https://github.com/pingcap/tiflow/issues/7393) @GMHDBJD + + [用户文档]( + https://github.com/pingcap/docs-cn/pull/11790 + https://github.com/pingcap/docs/pull/11096) + +* DM 任务增加一些状态信息的展示 + + * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes / s + * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows / second) + * 新增了 DM 全量任务数据导出的进度展示 + [#7343](https://github.com/pingcap/tiflow/issues/7343) @okJiang + + [用户文档](https://github.com/pingcap/docs-cn/pull/11755, +https://github.com/pingcap/docs/pull/11123) ### 数据共享与订阅 @@ -199,7 +225,7 @@ TiDB 版本:6.4.0-DMR * 集群诊断功能 GA 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 - + 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-report#%E8%AF%8A%E6%96%AD%E4%BF%A1%E6%81%AF)部分可以了解 TiDB 内置自动诊断的结果。 详细内容见[用户文档](https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-access) @@ -259,7 +285,7 @@ TiDB 版本:6.4.0-DMR - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式。 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - + + Backup & Restore (BR) - note [#issue]() @[贡献者 GitHub ID]() From 6c138fd5a719fb646213aad2e99ca09aca168250 Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 4 Nov 2022 12:10:13 +0800 Subject: [PATCH 020/105] add system variable and configuration files changes --- releases/release-6.4.0.md | 45 +++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 0d9027e23fea..cc7e427c58db 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -236,25 +236,48 @@ https://github.com/pingcap/docs/pull/11123) | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能 | -| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | -| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。 | -| [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | -| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。| -| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域 | +| [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。 | +| [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。 | +| [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 默认值为`OFF`。当此变量设置为 `ON` 时,TiDB 会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定时间戳前的历史数据。 | +| [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。 | +| [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | +| [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | +| [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存。| +| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | +| [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | +| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | +| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量默认开启,用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。 | +| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。 | +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| +| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | +| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。| +| [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,表示统计信息同步加载超时后,TiDB 默认使用 pseudo 的统计信息(`ON`)。 | +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | +| [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值:`0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | +| [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | +| [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为`0.7`。 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| TiFlash | data-encryption-method | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | -| | | | | -| | | | | -| | | | | -| | | | | +| TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。配置过大会增加 OOM 的风险。 | +| TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。配置过大会增加 OOM 的风险。 | +| TiDB | `memory-usage-alarm-ratio` | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。| +| TiDB | [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 所取代。| +| TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3 秒。| +| TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | +| TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | +| TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| +| PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | TSO 物理时钟更新周期,默认值为 50ms。 | +| TiFlash | [data-encryption-method](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | ### 其他 +- TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。 +- 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 + ## 废弃功能 ## 改进提升 From 72fd6c93430e5e25c59be1be9c9dcdfa4e846900 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 4 Nov 2022 16:03:29 +0800 Subject: [PATCH 021/105] FD-1068 --- releases/release-6.4.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index cc7e427c58db..03f90c817647 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -159,6 +159,14 @@ TiDB 版本:6.4.0-DMR [用户文档](/auto-increment.md#mysql-兼容模式) +* 对 JSON 类型中的 Array 做范围选择 + + 新版本支持 MySQL 兼容的范围选择语法。 用关键字 `to` 指定元素起始和结束的位置,用来选择 Array 中连续范围的元素,起始位置记为 `0` 。 比如 `$[0 to 2]` 选择 Array 中的前三个元素。 `last` 关键字代表 Array 中最后一个元素的位置,能够实现从右到左的位置设定, 比如 `$[last-2 to last]` 用来选择最后三个元素。 这个能力进一步提升的 JSON 操作的兼容能力,简化了 MySQL 应用向 TiDB 迁移的。 + + [用户文档](/data-type-json.md) + + + ### 备份和恢复 * 基于 AWS EBS snapshot 的集群备份和恢复 From 0aca318174b6b1c2d9bac3ffad9d49feb0134203 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 4 Nov 2022 16:38:36 +0800 Subject: [PATCH 022/105] FD-1102 --- releases/release-6.4.0.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 03f90c817647..0327995245e3 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -161,11 +161,15 @@ TiDB 版本:6.4.0-DMR * 对 JSON 类型中的 Array 做范围选择 - 新版本支持 MySQL 兼容的范围选择语法。 用关键字 `to` 指定元素起始和结束的位置,用来选择 Array 中连续范围的元素,起始位置记为 `0` 。 比如 `$[0 to 2]` 选择 Array 中的前三个元素。 `last` 关键字代表 Array 中最后一个元素的位置,能够实现从右到左的位置设定, 比如 `$[last-2 to last]` 用来选择最后三个元素。 这个能力进一步提升的 JSON 操作的兼容能力,简化了 MySQL 应用向 TiDB 迁移的。 + 新版本支持 MySQL 兼容的范围选择语法。 用关键字 `to` 指定元素起始和结束的位置,用来选择 Array 中连续范围的元素,起始位置记为 `0` 。 比如 `$[0 to 2]` 选择 Array 中的前三个元素。 `last` 关键字代表 Array 中最后一个元素的位置,能够实现从右到左的位置设定, 比如 `$[last-2 to last]` 用来选择最后三个元素。 这个能力简化了 SQL 的编写能力,进一步提升的 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 [用户文档](/data-type-json.md) - +* 支持对数据库用户增加额外说明 + + 新版本扩展了 `Create User` 和 `Alter User` 的语法,能够为数据库用户添加额外的说明。 说明支持两种格式,利用 `COMMENT` 添加一段文本,或者用 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 这个特性加强了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) + + [用户文档](/information-schema/information-schema-user-attributes.md) ### 备份和恢复 From e9df37a9cc57bb48428291f8240e29c00c985b88 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 4 Nov 2022 16:54:35 +0800 Subject: [PATCH 023/105] FD-1080 --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 0327995245e3..55fe234bbeb5 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -91,7 +91,7 @@ TiDB 版本:6.4.0-DMR 在 v6.4.0 中,我们引入了一个实验特性,对 TiDB 实例的全局内存使用进行追踪。 用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入span) 设置全局内存的使用上限。 当内存使用量逼近预设的上限时, TiDB 会尝试对内存进行回收,释放更多的可用内存; 当内存使用量超出预设的上限时, TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 - 同时,TiDB 提供了视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作, 可以帮助客户清晰了解内存使用状况。 + 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。 同时,TiDB 提供了视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作, 可以帮助客户清晰了解内存使用状况。 全局内存限制是 TiDB 内存管理的重要一步, 实例采用全局视角,引入系统性方法对内存的使用进行管理, 这将会极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 From 37ccf1cbbcb486c4584c72a8a314e9dfe227569f Mon Sep 17 00:00:00 2001 From: time-and-fate <25057648+time-and-fate@users.noreply.github.com> Date: Fri, 4 Nov 2022 17:27:34 +0800 Subject: [PATCH 024/105] FD-1005 --- releases/release-6.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 55fe234bbeb5..d0d1156b9fa8 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -73,6 +73,12 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidboptpreindexsinglescan-span-classversion-mark从-v640-版本开始引入span) +* 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化 + + 默认情况下,TiDB 总是会尝试对关联子查询解关联,以达到更高的执行效率。但是在部分场景下,解除关联反而会降低执行效率。此时,可使用 `NO_DECORRELATE` 指导优化器不要尝试对指定的查询块解关联,以提升这些场景下的查询性能。 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) + + [用户文档](/optimizer-hints.md#no_decorrelate) + ### 事务 * 功能简短描述 From 7eb5f72e5e3196c902ceabba379a3c0bea8ffafb Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 4 Nov 2022 18:30:16 +0800 Subject: [PATCH 025/105] add a configuration change and implement #discussion_r1013765580 --- releases/release-6.4.0.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index d0d1156b9fa8..8aa6d7708843 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -73,6 +73,12 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidboptpreindexsinglescan-span-classversion-mark从-v640-版本开始引入span) +* 增强了 TiDB Chunk 复用机制 + + 在之前的版本中, TiDB 只在writechunk函数中复用 chunk 。 在 v6.4.0 版本中,将 chunk 复用机制扩展到执行函数中,通过复用 chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下 SQL 执行效率。目前 Chunk 复用由变量 [`tidb_enable_reuse_chunk`]控制。 + + [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) + * 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化 默认情况下,TiDB 总是会尝试对关联子查询解关联,以达到更高的执行效率。但是在部分场景下,解除关联反而会降低执行效率。此时,可使用 `NO_DECORRELATE` 指导优化器不要尝试对指定的查询块解关联,以提升这些场景下的查询性能。 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) @@ -282,7 +288,8 @@ https://github.com/pingcap/docs/pull/11123) | -------- | -------- | -------- | -------- | | TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。配置过大会增加 OOM 的风险。 | | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。配置过大会增加 OOM 的风险。 | -| TiDB | `memory-usage-alarm-ratio` | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。| +| TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| +| TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后该配置项将会恢复为默认值。| | TiDB | [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 所取代。| | TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3 秒。| | TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | From 6380b5ec789156fa26c267cf38d1086bd45c9012 Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 4 Nov 2022 18:36:29 +0800 Subject: [PATCH 026/105] update the description of `memory-usage-alarm-ratio` --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 8aa6d7708843..ca2aef9e4e48 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -289,7 +289,7 @@ https://github.com/pingcap/docs/pull/11123) | TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。配置过大会增加 OOM 的风险。 | | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。配置过大会增加 OOM 的风险。 | | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| -| TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后该配置项将会恢复为默认值。| +| TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| | TiDB | [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 所取代。| | TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3 秒。| | TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | From 81e2259a3d6f152bdeef1f080c656d35da681241 Mon Sep 17 00:00:00 2001 From: qiancai Date: Sat, 5 Nov 2022 22:44:40 +0800 Subject: [PATCH 027/105] move the contributor info to the end of feature description summaries --- releases/release-6.4.0.md | 140 +++++++++++++++----------------------- 1 file changed, 54 insertions(+), 86 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ca2aef9e4e48..d39c25906bf9 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -20,24 +20,25 @@ TiDB 版本:6.4.0-DMR ### SQL -* 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction) +* 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) **tw@qiancai** v6.2.0 版本发布了针对全表的 TiFlash 副本立即触发 [物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) 功能,支持用户自行选择合适的时机、手动执行 SQL 语句来对 TiFlash 中的物理数据立即进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 版本细化了 TiFlash 副本物理数据整理的粒度,支持对表中的指定 Partition 的 TiFlash 副本立即触发物理数据整理。 + 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]` 可以立即触发指定 Partition 的 TiFlash 副本物理数据整理。 - [用户文档](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) + [用户文档](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) -* 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 +* 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 [#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** - FLASHBACK CLUSTER 支持在 Garbage Collection (GC) life time 时间内,快速回退整个集群到指定的时间点。使用该特性可以轻松快速撤消 DML 误操作,例如,用户误执行了没有 WHERE 子句的 DELETE,FLASHBACK CLUSTER 能够在几分钟内回退原数据库集群到指点时间点。该特性不依赖于数据库备份,支持在时间线上反复回退以确定特定数据更改发生的时间。FLASHBACK CLUSTER 不能替代数据库备份。[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) + FLASHBACK CLUSTER 支持在 Garbage Collection (GC) life time 时间内,快速回退整个集群到指定的时间点。使用该特性可以轻松快速撤消 DML 误操作,例如,用户误执行了没有 WHERE 子句的 DELETE,FLASHBACK CLUSTER 能够在几分钟内回退原数据库集群到指点时间点。该特性不依赖于数据库备份,支持在时间线上反复回退以确定特定数据更改发生的时间。FLASHBACK CLUSTER 不能替代数据库备份。 [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) ### 安全 -* TiKFlash 静态加密支持国密算法 SM4 +* TiFlash 静态加密支持国密算法 SM4 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) **tw@ran-huang** - TiFlash 的静态加密新增 SM4 算法,用户可以修改配置文件 tiflash-learner.toml 中的 data-encryption-method 参数,设置为 sm4-ctr,以启用基于国密算法 SM4 的静态加密能力。 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) + TiFlash 的静态加密新增 SM4 算法,用户可以修改配置文件 tiflash-learner.toml 中的 data-encryption-method 参数,设置为 sm4-ctr,以启用基于国密算法 SM4 的静态加密能力。 [用户文档](/encryption-at-rest.md) @@ -51,37 +52,27 @@ TiDB 版本:6.4.0-DMR ### 性能 -* 功能简短描述 - - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() - - [用户文档]() - -* 增加了动态规划算法来决定表的连接顺序 +* 增加了动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 - [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) - [用户文档](/join-reorder.md) -* 前缀索引支持对空值的过滤 - - 这是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 的执行性能。 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) +* 前缀索引支持对空值的过滤 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** - [用户文档](/system-variables.md#tidboptpreindexsinglescan-span-classversion-mark从-v640-版本开始引入span) + 这是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 的执行性能。 -* 增强了 TiDB Chunk 复用机制 + [用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) - 在之前的版本中, TiDB 只在writechunk函数中复用 chunk 。 在 v6.4.0 版本中,将 chunk 复用机制扩展到执行函数中,通过复用 chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下 SQL 执行效率。目前 Chunk 复用由变量 [`tidb_enable_reuse_chunk`]控制。 +* 增强了 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) **tw@Oreoxmt** - [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) + 在之前的版本中, TiDB 只在 writechunk 函数中复用 chunk。 在 v6.4.0 版本中,将 chunk 复用机制扩展到执行函数中,通过复用 chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下 SQL 执行效率。目前 Chunk 复用由变量 [`tidb_enable_reuse_chunk`]控制。 -* 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化 +* 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** - 默认情况下,TiDB 总是会尝试对关联子查询解关联,以达到更高的执行效率。但是在部分场景下,解除关联反而会降低执行效率。此时,可使用 `NO_DECORRELATE` 指导优化器不要尝试对指定的查询块解关联,以提升这些场景下的查询性能。 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) + 默认情况下,TiDB 总是会尝试对关联子查询解关联,以达到更高的执行效率。但是在部分场景下,解除关联反而会降低执行效率。此时,可使用 `NO_DECORRELATE` 指导优化器不要尝试对指定的查询块解关联,以提升这些场景下的查询性能。 [用户文档](/optimizer-hints.md#no_decorrelate) @@ -95,11 +86,11 @@ TiDB 版本:6.4.0-DMR ### 稳定性 -* 磁盘故障,I/O 无响应等极端情况下的故障恢复加速 +* 磁盘故障,I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** - 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障,快速恢复一直是数据库面临的挑战之一。TiDB 在 6.4 版本,全面优化了 TiKV 节点的状态检测机制,即使在磁盘故障,I/O 无响应等极端情况,依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起选主,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 [#issue]() @[贡献者 GitHub ID]() + 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障,快速恢复一直是数据库面临的挑战之一。TiDB 在 6.4 版本,全面优化了 TiKV 节点的状态检测机制,即使在磁盘故障,I/O 无响应等极端情况,依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起选主,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 -* TiDB 全局内存限制 +* TiDB 全局内存限制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** 在 v6.4.0 中,我们引入了一个实验特性,对 TiDB 实例的全局内存使用进行追踪。 用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入span) 设置全局内存的使用上限。 当内存使用量逼近预设的上限时, TiDB 会尝试对内存进行回收,释放更多的可用内存; 当内存使用量超出预设的上限时, TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 @@ -107,19 +98,17 @@ TiDB 版本:6.4.0-DMR 全局内存限制是 TiDB 内存管理的重要一步, 实例采用全局视角,引入系统性方法对内存的使用进行管理, 这将会极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 - [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) - [用户文档](/configure-memory-usage.md) -* 控制优化器在构造范围时的内存占用 +* 控制优化器在构造范围时的内存占用 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** - v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 用来限制优化器在构造范围时消耗的内存上限。 当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。 当 SQL 中的 `IN` 条件特别多时, 这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) + v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 用来限制优化器在构造范围时消耗的内存上限。 当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。 当 SQL 中的 `IN` 条件特别多时, 这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) ### 易用性 -* TiKV API V2 GA +* TiKV API V2 GA [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) **tw@Oreoxmt** 在 v6.1.0 之前,TiKV 的 RawKV 接口仅存储客户端传入的原始数据,因此只提供基本的 Key Value 读写能力。此外,由于编码方式不同、数据范围没有隔离,因此在同一个 TiKV 集群中,TiDB、事务 KV、RawKV 无法同时使用,对于不同使用方式并存的场景,必须部署多套集群,增加了机器和部署成本。 @@ -131,128 +120,108 @@ TiDB 版本:6.4.0-DMR 使用 TiKV API V2 请在 TiKV 的 `[storage]` 配置中增加或修改 `api-version = 2`。详见[用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入)。 - - - * 由于底层存储格式发生了重大变化,因此仅当 TiKV 只有 TiDB 数据时,可以平滑启用或关闭 API V2。其他情况下,需要新建集群,并使用 [TiKV-BR](https://github.com/tikv/migration/blob/main/br/README-cn.md) 进行数据迁移。 - - * 启用 API V2 后,不能将 TiKV 集群回退到 v6.1.0 之前的版本,否则可能导致数据损坏。 - - - - [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) + > **警告:** + > + > - 由于底层存储格式发生了重大变化,因此仅当 TiKV 只有 TiDB 数据时,可以平滑启用或关闭 API V2。其他情况下,需要新建集群,并使用 [TiKV-BR](https://github.com/tikv/migration/blob/main/br/README-cn.md) 进行数据迁移。 + > - 启用 API V2 后,不能将 TiKV 集群回退到 v6.1.0 之前的版本,否则可能导致数据损坏。 [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) -* 优化 TiFlash 数据同步进度的准确性 +* 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) **tw@qiancai** TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 v6.3.0 版本改进了 TiFlash 副本数据同步进度更新机制,在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 - [用户文档](/information-schema/information-schema-tiflash-replica.md) [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) - -* 功能简短描述 - - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() - - [用户文档]() + [用户文档](/information-schema/information-schema-tiflash-replica.md) ### MySQL 兼容性 -* TiDB 分区表兼容 Linear Hash 分区 +* TiDB 分区表兼容 Linear Hash 分区 [#issue](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) **tw@qiancai** TiDB 现有的分区方式支持 Hash,Range,List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容,方便原 MySQL 用户迁移到 TiDB。 - 用户现有的 MySQL Linear Hash 分区的 DDL 可以不经修改直接在 TiDB 上执行,产生一个 TiDB Hash 分区表(TiDB 内部实际不存在 Linear Hash 分区)。用户已有的查询/访问原 Linear Hash 分区的 SQL(DML)也可以不经修改,直接访问对应的 TiDB Hash 分区,得到正常结果。此功能保证了对 MySQL Linear Hash 分区的语法兼容,方便用户的应用无缝迁移到 TiDB。[#issue](https://github.com/pingcap/tidb/issues/38450) @[贡献者 GitHub ID](mjonss) + + 用户现有的 MySQL Linear Hash 分区的 DDL 可以不经修改直接在 TiDB 上执行,产生一个 TiDB Hash 分区表(TiDB 内部实际不存在 Linear Hash 分区)。用户已有的查询/访问原 Linear Hash 分区的 SQL(DML)也可以不经修改,直接访问对应的 TiDB Hash 分区,得到正常结果。此功能保证了对 MySQL Linear Hash 分区的语法兼容,方便用户的应用无缝迁移到 TiDB。 [用户文档](/mysql-compatibility.md) -* 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性 +* 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性 [#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** - TiDB 现有的 AUTO_INCREMENT 列属性的全局单调性和性能不可兼得,提供高性能、全局单调递增的 AUTO_INCREMENT 列属性能够更完美的兼容 MySQL AUTO_INCREMENT 的功能,降低用户从 MySQL 迁移到 TiDB 的改造成本。例如,使用该特性能够轻松解决用户的查询结果需要按照自增 ID 排序的问题。[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) + TiDB 现有的 AUTO_INCREMENT 列属性的全局单调性和性能不可兼得,提供高性能、全局单调递增的 AUTO_INCREMENT 列属性能够更完美的兼容 MySQL AUTO_INCREMENT 的功能,降低用户从 MySQL 迁移到 TiDB 的改造成本。例如,使用该特性能够轻松解决用户的查询结果需要按照自增 ID 排序的问题。 [用户文档](/auto-increment.md#mysql-兼容模式) -* 对 JSON 类型中的 Array 做范围选择 +* 对 JSON 类型中的 Array 做范围选择 **tw@qiancai** 新版本支持 MySQL 兼容的范围选择语法。 用关键字 `to` 指定元素起始和结束的位置,用来选择 Array 中连续范围的元素,起始位置记为 `0` 。 比如 `$[0 to 2]` 选择 Array 中的前三个元素。 `last` 关键字代表 Array 中最后一个元素的位置,能够实现从右到左的位置设定, 比如 `$[last-2 to last]` 用来选择最后三个元素。 这个能力简化了 SQL 的编写能力,进一步提升的 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 [用户文档](/data-type-json.md) -* 支持对数据库用户增加额外说明 +* 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** - 新版本扩展了 `Create User` 和 `Alter User` 的语法,能够为数据库用户添加额外的说明。 说明支持两种格式,利用 `COMMENT` 添加一段文本,或者用 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 这个特性加强了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) + 新版本扩展了 `Create User` 和 `Alter User` 的语法,能够为数据库用户添加额外的说明。 说明支持两种格式,利用 `COMMENT` 添加一段文本,或者用 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 这个特性加强了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 [用户文档](/information-schema/information-schema-user-attributes.md) ### 备份和恢复 -* 基于 AWS EBS snapshot 的集群备份和恢复 +* 基于 AWS EBS snapshot 的集群备份和恢复 [#issue](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) **tw@shichun-0415** 如果你的TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 AWS S3: - 备份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 - [#issue](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) - [用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot) ### 数据迁移 -* 支持在分库分表迁移场景,下游的表支持增加扩展列并赋值,用于标记下游表中的记录来之上游哪个分库分表。 +* 支持在分库分表迁移场景,下游的表支持增加扩展列并赋值,用于标记下游表中的记录来之上游哪个分库分表。[#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** - 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。) [#37790](https://github.com/pingcap/tidb/pull/37790) @lichunzhu + 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。) [用户文档](https://github.com/pingcap/docs-cn/pull/11536/files) -* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。 +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。 [#7333](https://github.com/pingcap/tiflow/issues/7333) @lichunzhu **tw@shichun-0415** - 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 [#无](无) @lichunzhu + 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 - 用户文档无,对用户无感知 + [用户文档](dm/dm-precheck.md) -* 解决了上游数据库的建表 sql TiDB 不兼容,导致 DM 全量迁移报错的问题。[#issue](https://github.com/pingcap/tidb/issues/37984) @lance6716 +* 解决了上游数据库的建表 sql TiDB 不兼容,导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 - [用户文档](https://github.com/pingcap/docs-cn/pull/11718 - https://github.com/pingcap/docs/pull/10974) + [用户文档](https://github.com/pingcap/docs-cn/pull/11718) -* 配置DM 增量迁移任务,支持 binlog_name 和 GTID 的参数可作为选配项。 +* 配置 DM 增量迁移任务,支持 binlog_name 和 GTID 的参数可作为选配项。[#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** 用户只配置 DM 增量迁移任务时,如果不指定 binlog_name 和 GTID 的参数取值,则默认按任务的启动时间去上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了用户的理解成本和配置复杂度。 - [#7393](https://github.com/pingcap/tiflow/issues/7393) @GMHDBJD - [用户文档]( - https://github.com/pingcap/docs-cn/pull/11790 - https://github.com/pingcap/docs/pull/11096) + [用户文档](dm/task-configuration-file-full.md) -* DM 任务增加一些状态信息的展示 +* DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) **tw@shichun-0415** - * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes / s - * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows / second) + * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes/s + * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second) * 新增了 DM 全量任务数据导出的进度展示 - [#7343](https://github.com/pingcap/tiflow/issues/7343) @okJiang - [用户文档](https://github.com/pingcap/docs-cn/pull/11755, -https://github.com/pingcap/docs/pull/11123) + [用户文档](dm/dm-query-status.md) ### 数据共享与订阅 -* 功能简短描述 - - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() +- TiCDC 支持同步数据到 `3.2.0` 版本的 Kafka **tw@shichun-0415** - [用户文档]() + TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。你可以将通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 ### 部署及运维 -* 集群诊断功能 GA +* 集群诊断功能 GA **tw@shichun-0415** 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 - 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-report#%E8%AF%8A%E6%96%AD%E4%BF%A1%E6%81%AF)部分可以了解 TiDB 内置自动诊断的结果。 + 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 - 详细内容见[用户文档](https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-access) + 详细内容见[用户文档](dashboard/dashboard-diagnostics-access.md) ## 兼容性变更 @@ -300,7 +269,6 @@ https://github.com/pingcap/docs/pull/11123) ### 其他 -- TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 ## 废弃功能 From 4fcec70a04805ed8541b6b8e207d04fd793ff716 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 7 Nov 2022 14:54:31 +0800 Subject: [PATCH 028/105] adjust the feature sequence --- releases/release-6.4.0.md | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index d39c25906bf9..4055ca0c4dab 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -44,11 +44,13 @@ TiDB 版本:6.4.0-DMR ### 可观测性 -* 功能简短描述 +* 集群诊断功能 GA **tw@shichun-0415** - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() + 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 - [用户文档]() + 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 + + 详细内容见[用户文档](dashboard/dashboard-diagnostics-access.md) ### 性能 @@ -187,12 +189,6 @@ TiDB 版本:6.4.0-DMR [用户文档](dm/dm-precheck.md) -* 解决了上游数据库的建表 sql TiDB 不兼容,导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** - - DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 - - [用户文档](https://github.com/pingcap/docs-cn/pull/11718) - * 配置 DM 增量迁移任务,支持 binlog_name 和 GTID 的参数可作为选配项。[#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** 用户只配置 DM 增量迁移任务时,如果不指定 binlog_name 和 GTID 的参数取值,则默认按任务的启动时间去上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了用户的理解成本和配置复杂度。 @@ -215,13 +211,11 @@ TiDB 版本:6.4.0-DMR ### 部署及运维 -* 集群诊断功能 GA **tw@shichun-0415** - - 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 +* 功能简短描述 - 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 + 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() - 详细内容见[用户文档](dashboard/dashboard-diagnostics-access.md) + [用户文档]() ## 兼容性变更 @@ -314,7 +308,12 @@ TiDB 版本:6.4.0-DMR + TiDB Data Migration (DM) - - note [#issue]() @[贡献者 GitHub ID]() + - 解决了上游数据库的建表 SQL TiDB 不兼容,导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + + DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 + + [用户文档](https://github.com/pingcap/docs-cn/pull/11718) + - note [#issue]() @[贡献者 GitHub ID]() + TiDB Lightning From 16457c6237144251f22a8217664eb7ddf54cb4ca Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 7 Nov 2022 14:59:40 +0800 Subject: [PATCH 029/105] adjust sequence of system variables --- releases/release-6.4.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 4055ca0c4dab..74904a195c1a 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -230,20 +230,20 @@ TiDB 版本:6.4.0-DMR | [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | | [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | | [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存。| +| [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值:`0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | | [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | | [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | | [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量默认开启,用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。 | | [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。 | -| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。| | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | -| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,表示统计信息同步加载超时后,TiDB 默认使用 pseudo 的统计信息(`ON`)。 | -| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | -| [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值:`0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为`0.7`。 | +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,表示统计信息同步加载超时后,TiDB 默认使用 pseudo 的统计信息(`ON`)。 | +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | ### 配置文件参数 @@ -259,7 +259,7 @@ TiDB 版本:6.4.0-DMR | TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | | TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| | PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | TSO 物理时钟更新周期,默认值为 50ms。 | -| TiFlash | [data-encryption-method](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | +| TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | ### 其他 From a12d40907253e2a30866d4ec9e4d33e08a09ca6f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 7 Nov 2022 15:39:34 +0800 Subject: [PATCH 030/105] Apply suggestions from code review Co-authored-by: Aolin Co-authored-by: lance6716 --- releases/release-6.4.0.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 74904a195c1a..083b20740722 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -8,6 +8,8 @@ title: TiDB 6.4.0 Release Notes TiDB 版本:6.4.0-DMR +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v6.4/quick-start-with-tidb) | [生产部署](https://docs.pingcap.com/zh/tidb/v6.4/production-deployment-using-tiup) | [下载离线包](https://cn.pingcap.com/product-community/) + 在 6.4.0-DMR 版本中,你可以获得以下关键特性: - TiDB 全局内存限制 @@ -183,7 +185,7 @@ TiDB 版本:6.4.0-DMR [用户文档](https://github.com/pingcap/docs-cn/pull/11536/files) -* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。 [#7333](https://github.com/pingcap/tiflow/issues/7333) @lichunzhu **tw@shichun-0415** +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 @@ -225,12 +227,12 @@ TiDB 版本:6.4.0-DMR |--------|------------------------------|------| | [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。 | | [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。 | -| [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 默认值为`OFF`。当此变量设置为 `ON` 时,TiDB 会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定时间戳前的历史数据。 | +| [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 默认值为 `OFF`。当此变量设置为 `ON` 时,TiDB 会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定时间戳前的历史数据。 | | [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。 | | [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | | [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | | [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存。| -| [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值:`0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | +| [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值为 `0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | | [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | | [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | @@ -240,7 +242,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。| | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | -| [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为`0.7`。 | +| [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,表示统计信息同步加载超时后,TiDB 默认使用 pseudo 的统计信息(`ON`)。 | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | @@ -308,7 +310,7 @@ TiDB 版本:6.4.0-DMR + TiDB Data Migration (DM) - - 解决了上游数据库的建表 SQL TiDB 不兼容,导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 From 48fcc26350646957696da6a0fb7e63294e537482 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 7 Nov 2022 15:59:22 +0800 Subject: [PATCH 031/105] Update releases/release-6.4.0.md Co-authored-by: Aolin --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 083b20740722..5ebe11762988 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -256,7 +256,7 @@ TiDB 版本:6.4.0-DMR | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| | TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| | TiDB | [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 所取代。| -| TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3 秒。| +| TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| | TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | | TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | | TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| From 1d2262d468fc2f90a3c226c3bff188da4b5f9e23 Mon Sep 17 00:00:00 2001 From: yisaer Date: Mon, 7 Nov 2022 16:27:30 +0800 Subject: [PATCH 032/105] add note Signed-off-by: yisaer --- releases/release-6.4.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 5ebe11762988..17fa9fc54f9c 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -80,6 +80,8 @@ TiDB 版本:6.4.0-DMR [用户文档](/optimizer-hints.md#no_decorrelate) +* 优化了 TiDB Analyze 分区表时的所需性能,减少了消耗时间,并提高了自动 Analyze 时的稳定性 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) + ### 事务 * 功能简短描述 From df7be7d789041cf7ecefd390d4119633cfc0aeb1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 8 Nov 2022 11:42:09 +0800 Subject: [PATCH 033/105] rephrase the description of the MySQL Linear Hash syntax support --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 17fa9fc54f9c..067ee7faff79 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -146,7 +146,7 @@ TiDB 版本:6.4.0-DMR TiDB 现有的分区方式支持 Hash,Range,List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容,方便原 MySQL 用户迁移到 TiDB。 - 用户现有的 MySQL Linear Hash 分区的 DDL 可以不经修改直接在 TiDB 上执行,产生一个 TiDB Hash 分区表(TiDB 内部实际不存在 Linear Hash 分区)。用户已有的查询/访问原 Linear Hash 分区的 SQL(DML)也可以不经修改,直接访问对应的 TiDB Hash 分区,得到正常结果。此功能保证了对 MySQL Linear Hash 分区的语法兼容,方便用户的应用无缝迁移到 TiDB。 + 在 TiDB 上,你可以直接执行原有的 MySQL Linear Hash 分区的 DDL 语句,TiDB 将创建一个相应的 Hash 分区表(注意 TiDB 内部实际不存在 Linear Hash 分区)。你也可以直接执行原有的 MySQL Linear Hash 分区的 DML 语句,TiDB 将正常返回对应的 TiDB Hash 分区的查询结果。此功能保证了 TiDB 对 MySQL Linear Hash 分区的语法兼容,方便基于 MySQL 的应用无缝迁移到 TiDB。 [用户文档](/mysql-compatibility.md) From 1f7a026ed246f2d1607679a11e3d1ea4ebf813eb Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 8 Nov 2022 11:46:23 +0800 Subject: [PATCH 034/105] Apply suggestions from code review Co-authored-by: Hangjie Mo Co-authored-by: Aolin --- releases/release-6.4.0.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 067ee7faff79..1134fc4d81d5 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -36,6 +36,11 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) +* 支持通过 FLASHBACK DATABASE 命令将被删除的数据库恢复 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** + + FLASHBACK DATABASE 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速通过 SQL 语句进行数据和元信息的恢复。 + + [用户文档](/sql-statements/sql-statement-flashback-database.md) ### 安全 * TiFlash 静态加密支持国密算法 SM4 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) **tw@ran-huang** @@ -144,7 +149,7 @@ TiDB 版本:6.4.0-DMR * TiDB 分区表兼容 Linear Hash 分区 [#issue](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) **tw@qiancai** - TiDB 现有的分区方式支持 Hash,Range,List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容,方便原 MySQL 用户迁移到 TiDB。 + TiDB 现有的分区方式支持 Hash、Range、List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容。 在 TiDB 上,你可以直接执行原有的 MySQL Linear Hash 分区的 DDL 语句,TiDB 将创建一个相应的 Hash 分区表(注意 TiDB 内部实际不存在 Linear Hash 分区)。你也可以直接执行原有的 MySQL Linear Hash 分区的 DML 语句,TiDB 将正常返回对应的 TiDB Hash 分区的查询结果。此功能保证了 TiDB 对 MySQL Linear Hash 分区的语法兼容,方便基于 MySQL 的应用无缝迁移到 TiDB。 @@ -262,7 +267,7 @@ TiDB 版本:6.4.0-DMR | TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | | TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | | TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| -| PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | TSO 物理时钟更新周期,默认值为 50ms。 | +| PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 50ms。 | | TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | ### 其他 From f3ceb8953aeea594299eac426c491293c6d48d06 Mon Sep 17 00:00:00 2001 From: shichun-0415 Date: Tue, 8 Nov 2022 14:51:26 +0800 Subject: [PATCH 035/105] add dm configs and fix some user doc links --- releases/release-6.4.0.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 1134fc4d81d5..304938fc65bc 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -57,7 +57,7 @@ TiDB 版本:6.4.0-DMR 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 - 详细内容见[用户文档](dashboard/dashboard-diagnostics-access.md) + 详细内容见[用户文档](/dashboard/dashboard-diagnostics-access.md) ### 性能 @@ -190,19 +190,19 @@ TiDB 版本:6.4.0-DMR 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。) - [用户文档](https://github.com/pingcap/docs-cn/pull/11536/files) + [用户文档](/dm/dm-key-features.md#提取分库分表数据源信息写入合表) -* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。[#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 - [用户文档](dm/dm-precheck.md) + [用户文档](/dm/dm-precheck.md) * 配置 DM 增量迁移任务,支持 binlog_name 和 GTID 的参数可作为选配项。[#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** 用户只配置 DM 增量迁移任务时,如果不指定 binlog_name 和 GTID 的参数取值,则默认按任务的启动时间去上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了用户的理解成本和配置复杂度。 - [用户文档](dm/task-configuration-file-full.md) + [用户文档](/dm/task-configuration-file-full.md) * DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) **tw@shichun-0415** @@ -210,7 +210,7 @@ TiDB 版本:6.4.0-DMR * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second) * 新增了 DM 全量任务数据导出的进度展示 - [用户文档](dm/dm-query-status.md) + [用户文档](/dm/dm-query-status.md) ### 数据共享与订阅 @@ -269,6 +269,9 @@ TiDB 版本:6.4.0-DMR | TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| | PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 50ms。 | | TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | +| DM | [`routes.route-rule-1.extract-table`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中分表的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | +| DM | [`routes.route-rule-1.extract-schema`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中分库的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | +| DM | [`routes.route-rule-1.extract-source`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | ### 其他 From 8b7b2c6cbcabffea284e43ea5a2253c4e84c5a3c Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 8 Nov 2022 16:24:24 +0800 Subject: [PATCH 036/105] Apply suggestions from code review Co-authored-by: Roger Song Co-authored-by: Cathy <24819510+benmaoer@users.noreply.github.com> --- releases/release-6.4.0.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 304938fc65bc..4c0cc5bbcc83 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -51,7 +51,7 @@ TiDB 版本:6.4.0-DMR ### 可观测性 -* 集群诊断功能 GA **tw@shichun-0415** +* 集群诊断功能 GA [#1438](https://github.com/pingcap/tidb-dashboard/issues/1438) @[Hawkson-jee](https://github.com/Hawkson-jee) **tw@shichun-0415** 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 @@ -85,7 +85,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/optimizer-hints.md#no_decorrelate) -* 优化了 TiDB Analyze 分区表时的所需性能,减少了消耗时间,并提高了自动 Analyze 时的稳定性 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) +* 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) **tw@TomShawn** + + 在新版本中,TiDB 优化了分区表统计信息的收集策略。 用户可以通过变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 事务 @@ -161,7 +163,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/auto-increment.md#mysql-兼容模式) -* 对 JSON 类型中的 Array 做范围选择 **tw@qiancai** +* 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) **tw@qiancai** 新版本支持 MySQL 兼容的范围选择语法。 用关键字 `to` 指定元素起始和结束的位置,用来选择 Array 中连续范围的元素,起始位置记为 `0` 。 比如 `$[0 to 2]` 选择 Array 中的前三个元素。 `last` 关键字代表 Array 中最后一个元素的位置,能够实现从右到左的位置设定, 比如 `$[last-2 to last]` 用来选择最后三个元素。 这个能力简化了 SQL 的编写能力,进一步提升的 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 @@ -251,8 +253,8 @@ TiDB 版本:6.4.0-DMR | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| -| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,表示统计信息同步加载超时后,TiDB 默认使用 pseudo 的统计信息(`ON`)。 | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | +| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 默认值从 `INT_ONLY` 修改为 `ON`。 | ### 配置文件参数 @@ -262,7 +264,6 @@ TiDB 版本:6.4.0-DMR | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。配置过大会增加 OOM 的风险。 | | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| | TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| -| TiDB | [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) | 废弃 | 自 v6.4.0 版本起该配置项被废弃,被系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 所取代。| | TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| | TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | | TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | @@ -288,8 +289,10 @@ TiDB 版本:6.4.0-DMR + TiKV - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - raftstore 新增 `apply-yield-write-size` 配置项,以限制 raftstore 的最大单轮 Apply 写入的数据大小,减缓 raftstore 线程在 Apply 写入过大时的阻塞现象。[#13594](https://github.com/tikv/tikv/pull/13594) @[glorv](https://github.com/glorv) + - 为 Region 的 Leader 迁移前增加缓存预热阶段,减缓 Leader 迁移时造成QPS剧烈抖动现象。[#13556](https://github.com/tikv/tikv/pull/13556) @[cosven](https://github.com/cosven) + - 新增支持将 `json_contains` 算子下推至 Coprocessor 。[#13592](https://github.com/tikv/tikv/issues/13592) @[lizhenhuan](https://github.com/lizhenhuan) + - 新增对 `CausalTsProvider` 的异步实现。 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + PD @@ -310,7 +313,7 @@ TiDB 版本:6.4.0-DMR + Backup & Restore (BR) - - note [#issue]() @[贡献者 GitHub ID]() + - 改进加载元数据的机制,仅在需要的时候才会将元数据加载到内存中,显著减少了 PITR 过程中的内存压力。 [#38404](https://github.com/pingcap/tidb/issues/38404) @[YuJuncen](https://github.com/YuJuncen) - note [#issue]() @[贡献者 GitHub ID]() + TiCDC @@ -347,7 +350,7 @@ TiDB 版本:6.4.0-DMR + TiKV - - note [#issue]() @[贡献者 GitHub ID]() + - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) - note [#issue]() @[贡献者 GitHub ID]() + PD @@ -396,3 +399,5 @@ TiDB 版本:6.4.0-DMR 感谢来自 TiDB 社区的贡献者们: - [贡献者 GitHub ID]() + - [goldwind-ting](https://github.com/goldwind-ting) + - [zgcbj](https://github.com/zgcbj) From 7a50f47db024845edece7ab40c61aac90bfa5961 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 8 Nov 2022 16:34:10 +0800 Subject: [PATCH 037/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 4c0cc5bbcc83..db46dfe171d3 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -8,7 +8,7 @@ title: TiDB 6.4.0 Release Notes TiDB 版本:6.4.0-DMR -试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v6.4/quick-start-with-tidb) | [生产部署](https://docs.pingcap.com/zh/tidb/v6.4/production-deployment-using-tiup) | [下载离线包](https://cn.pingcap.com/product-community/) +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v6.4/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/) 在 6.4.0-DMR 版本中,你可以获得以下关键特性: From afe9daa5045f87eb3dafc8c72ee0edd634c537de Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 9 Nov 2022 09:41:18 +0800 Subject: [PATCH 038/105] Apply suggestions from code review Co-authored-by: joey-yez <104608045+joey-yez@users.noreply.github.com> Co-authored-by: Roger Song Co-authored-by: tiancaiamao Co-authored-by: fengou1 <85682690+fengou1@users.noreply.github.com> Co-authored-by: Chunzhu Li Co-authored-by: xiongjiwei Co-authored-by: ruoxi Co-authored-by: Flowyi --- releases/release-6.4.0.md | 42 ++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index db46dfe171d3..1b55076f88e6 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -15,7 +15,7 @@ TiDB 版本:6.4.0-DMR - TiDB 全局内存限制 - TiFlash 静态加密支持国密算法 SM4。 - 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 -- 关键特性 3 +- 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction) - ...... ## 新功能 @@ -61,6 +61,10 @@ TiDB 版本:6.4.0-DMR ### 性能 +* 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** + + 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 + * 增加了动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 @@ -81,7 +85,7 @@ TiDB 版本:6.4.0-DMR * 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** - 默认情况下,TiDB 总是会尝试对关联子查询解关联,以达到更高的执行效率。但是在部分场景下,解除关联反而会降低执行效率。此时,可使用 `NO_DECORRELATE` 指导优化器不要尝试对指定的查询块解关联,以提升这些场景下的查询性能。 + 默认情况下,TiDB 总是会尝试对关联子查询重写,解除关联,这通常会达到更高的执行效率。但是在一部分场景下,解除关联反而会降低执行效率。TiDB 在新版本中引入了 hint `NO_DECORRELATE`,用来提示优化器不要对指定的查询块解关联,以提升部分场景下的查询性能。 [用户文档](/optimizer-hints.md#no_decorrelate) @@ -157,7 +161,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/mysql-compatibility.md) -* 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性 [#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** +* 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性 (实验特性,见 [#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao)) **tw@Oreoxmt** TiDB 现有的 AUTO_INCREMENT 列属性的全局单调性和性能不可兼得,提供高性能、全局单调递增的 AUTO_INCREMENT 列属性能够更完美的兼容 MySQL AUTO_INCREMENT 的功能,降低用户从 MySQL 迁移到 TiDB 的改造成本。例如,使用该特性能够轻松解决用户的查询结果需要按照自增 ID 排序的问题。 @@ -165,9 +169,7 @@ TiDB 版本:6.4.0-DMR * 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) **tw@qiancai** - 新版本支持 MySQL 兼容的范围选择语法。 用关键字 `to` 指定元素起始和结束的位置,用来选择 Array 中连续范围的元素,起始位置记为 `0` 。 比如 `$[0 to 2]` 选择 Array 中的前三个元素。 `last` 关键字代表 Array 中最后一个元素的位置,能够实现从右到左的位置设定, 比如 `$[last-2 to last]` 用来选择最后三个元素。 这个能力简化了 SQL 的编写能力,进一步提升的 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 - - [用户文档](/data-type-json.md) + 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。 例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 通过关键字 `last`,你可以指定 Array 中最后一个元素的位置,实现从右到左的位置设定。例如,使用 `$[last-2 to last]` 可以选择 Array 中的最后三个元素。 该特性简化了 SQL 的编写过程,进一步提升了 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 * 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** @@ -179,7 +181,7 @@ TiDB 版本:6.4.0-DMR * 基于 AWS EBS snapshot 的集群备份和恢复 [#issue](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) **tw@shichun-0415** - 如果你的TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 AWS S3: + 如果你的 TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 AWS S3: - 备份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 @@ -188,13 +190,13 @@ TiDB 版本:6.4.0-DMR ### 数据迁移 -* 支持在分库分表迁移场景,下游的表支持增加扩展列并赋值,用于标记下游表中的记录来之上游哪个分库分表。[#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 支持在分库分表合并迁移场景,下游合表支持增加扩展列并赋值,用于标记下游表中的记录来自上游哪个分库/分表/数据源。[#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** - 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。) + 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。 [用户文档](/dm/dm-key-features.md#提取分库分表数据源信息写入合表) -* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。[#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。[#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 @@ -284,8 +286,11 @@ TiDB 版本:6.4.0-DMR + TiDB - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - `mysql.tables_priv` 表中新增了 `grantor` 字段. [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 允许修改系统变量 `lc_messages`. [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) + - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列. [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) + - `json_path` 支持数组范围选取 [#38583](https://github.com/pingcap/tidb/issues/38583) @[YangKeao](https://github.com/YangKeao) + - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT`. [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) + TiKV @@ -301,13 +306,16 @@ TiDB 版本:6.4.0-DMR + TiFlash + - 重构了 MPP 的错误处理逻辑 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) + - 优化了 Block Sort 以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) + - 优化了编解码的内存使用和去除冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) - note [#issue]() @[贡献者 GitHub ID]() - note [#issue]() @[贡献者 GitHub ID]() + Tools + TiDB Dashboard - - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式。 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) + - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式。 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) @@ -345,8 +353,10 @@ TiDB 版本:6.4.0-DMR + TiDB - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - 修复新建索引之后有可能导致的数据索引不一致的问题. [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) + - 修复关于 `information_schema.TIKV_REGION_STATUS` 表的权限问题. [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 修复 CTE 在 join 时可能得到错误结果的问题. [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) + - 修复 CTE 在 union 时可能得到错误结果的问题. [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) + TiKV @@ -360,7 +370,7 @@ TiDB 版本:6.4.0-DMR + TiFlash - - note [#issue]() @[贡献者 GitHub ID]() + - 修复由于 PageStorage GC 未能正确清楚 Page 删除标记引起的 WAL 文件过大从而导致 OOM 的问题 [#6163](https://github.com/pingcap/tiflash/issues/6163) @[JaySon-Huang](https://github.com/JaySon-Huang) - note [#issue]() @[贡献者 GitHub ID]() + Tools From 6efed8635ddf0e888a423b24d6d132305f835f44 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 9 Nov 2022 09:44:28 +0800 Subject: [PATCH 039/105] Update releases/release-6.4.0.md Co-authored-by: joey-yez <104608045+joey-yez@users.noreply.github.com> From 549884e50821cc0e76b67bf54a94ddc57250be5e Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 9 Nov 2022 09:45:13 +0800 Subject: [PATCH 040/105] Apply suggestions from code review Co-authored-by: ruoxi --- releases/release-6.4.0.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 1b55076f88e6..a5091b130d0d 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -61,6 +61,10 @@ TiDB 版本:6.4.0-DMR ### 性能 +* 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** + + 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 + * 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 @@ -306,6 +310,9 @@ TiDB 版本:6.4.0-DMR + TiFlash + - 重构了 MPP 的错误处理逻辑 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) + - 优化了 Block Sort 以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) + - 优化了编解码的内存使用和去除冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) - 重构了 MPP 的错误处理逻辑 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) - 优化了 Block Sort 以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) - 优化了编解码的内存使用和去除冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) From ee13be9e314713929c724978a6d19251e0bd4c4e Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 9 Nov 2022 09:55:47 +0800 Subject: [PATCH 041/105] added TiKV improvements and bug fixes --- releases/release-6.4.0.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a5091b130d0d..d50c690c1521 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -41,6 +41,7 @@ TiDB 版本:6.4.0-DMR FLASHBACK DATABASE 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速通过 SQL 语句进行数据和元信息的恢复。 [用户文档](/sql-statements/sql-statement-flashback-database.md) + ### 安全 * TiFlash 静态加密支持国密算法 SM4 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) **tw@ran-huang** @@ -64,11 +65,11 @@ TiDB 版本:6.4.0-DMR * 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 - + * 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 - + * 增加了动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 @@ -95,7 +96,7 @@ TiDB 版本:6.4.0-DMR * 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) **tw@TomShawn** - 在新版本中,TiDB 优化了分区表统计信息的收集策略。 用户可以通过变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 + 在新版本中,TiDB 优化了分区表统计信息的收集策略。 用户可以通过变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 事务 @@ -151,6 +152,7 @@ TiDB 版本:6.4.0-DMR * 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) **tw@qiancai** TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 + v6.3.0 版本改进了 TiFlash 副本数据同步进度更新机制,在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 [用户文档](/information-schema/information-schema-tiflash-replica.md) @@ -295,13 +297,14 @@ TiDB 版本:6.4.0-DMR - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列. [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) - `json_path` 支持数组范围选取 [#38583](https://github.com/pingcap/tidb/issues/38583) @[YangKeao](https://github.com/YangKeao) - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT`. [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 内部事务重试使用悲观模式避免重试失败,降低耗时 [#38136](https://github.com/pingcap/tidb/issues/38136) @[jackysp](https://github.com/jackysp) + TiKV - raftstore 新增 `apply-yield-write-size` 配置项,以限制 raftstore 的最大单轮 Apply 写入的数据大小,减缓 raftstore 线程在 Apply 写入过大时的阻塞现象。[#13594](https://github.com/tikv/tikv/pull/13594) @[glorv](https://github.com/glorv) - 为 Region 的 Leader 迁移前增加缓存预热阶段,减缓 Leader 迁移时造成QPS剧烈抖动现象。[#13556](https://github.com/tikv/tikv/pull/13556) @[cosven](https://github.com/cosven) - 新增支持将 `json_contains` 算子下推至 Coprocessor 。[#13592](https://github.com/tikv/tikv/issues/13592) @[lizhenhuan](https://github.com/lizhenhuan) - - 新增对 `CausalTsProvider` 的异步实现。 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + - 新增对 `CausalTsProvider` 的异步实现。 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + PD @@ -316,12 +319,11 @@ TiDB 版本:6.4.0-DMR - 重构了 MPP 的错误处理逻辑 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) - 优化了 Block Sort 以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) - 优化了编解码的内存使用和去除冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + Tools + TiDB Dashboard + - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式。 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) @@ -364,11 +366,13 @@ TiDB 版本:6.4.0-DMR - 修复关于 `information_schema.TIKV_REGION_STATUS` 表的权限问题. [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) - 修复 CTE 在 join 时可能得到错误结果的问题. [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - 修复 CTE 在 union 时可能得到错误结果的问题. [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) + - 修复监控 transaction region num panel 信息不准确问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](github.com/jackysp) + - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) + TiKV - - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) - - note [#issue]() @[贡献者 GitHub ID]() + - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) + - 修复 tikv 监控 tikv_gc_compaction_filtered 表达式错误问题 [#13537](https://github.com/tikv/tikv/issues/13537) + PD @@ -378,7 +382,6 @@ TiDB 版本:6.4.0-DMR + TiFlash - 修复由于 PageStorage GC 未能正确清楚 Page 删除标记引起的 WAL 文件过大从而导致 OOM 的问题 [#6163](https://github.com/pingcap/tiflash/issues/6163) @[JaySon-Huang](https://github.com/JaySon-Huang) - - note [#issue]() @[贡献者 GitHub ID]() + Tools @@ -415,6 +418,5 @@ TiDB 版本:6.4.0-DMR 感谢来自 TiDB 社区的贡献者们: -- [贡献者 GitHub ID]() - - [goldwind-ting](https://github.com/goldwind-ting) - - [zgcbj](https://github.com/zgcbj) +- [goldwind-ting](https://github.com/goldwind-ting) +- [zgcbj](https://github.com/zgcbj) From 49141147c3de05a6a9f86b55996a1e91689f21e3 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 9 Nov 2022 10:23:15 +0800 Subject: [PATCH 042/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index d50c690c1521..2f41fab93a14 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -12,11 +12,19 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: -- TiDB 全局内存限制 -- TiFlash 静态加密支持国密算法 SM4。 - 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 -- 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction) -- ...... +- 支持 TiDB 全局内存限制 +- TiDB 分区表兼容 Linear Hash 分区。 +- 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性。 +- 支持对 JSON 类型中的 Array 数据做范围选择。 +- 磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 +- 增加了动态规划算法来决定表的连接顺序。 +- 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化。 +- 集群诊断功能 GA。 +- TiFlash 静态加密支持国密算法 SM4。 +- 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction)。 +- 支持对数据库用户增加额外说明。 +- 支持基于 AWS EBS snapshot 的集群备份和恢复。 ## 新功能 @@ -108,7 +116,7 @@ TiDB 版本:6.4.0-DMR ### 稳定性 -* 磁盘故障,I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** +* 磁盘故障、I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障,快速恢复一直是数据库面临的挑战之一。TiDB 在 6.4 版本,全面优化了 TiKV 节点的状态检测机制,即使在磁盘故障,I/O 无响应等极端情况,依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起选主,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 From 257adb968413ded8a49183b5bc6ec155eb00ebb1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 9 Nov 2022 10:53:53 +0800 Subject: [PATCH 043/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 2f41fab93a14..7cc99ea77667 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -70,10 +70,6 @@ TiDB 版本:6.4.0-DMR ### 性能 -* 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** - - 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 - * 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 From cba3b8a7cd65e377e61372c30f9734bb2cb20302 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 9 Nov 2022 13:16:32 +0800 Subject: [PATCH 044/105] Apply suggestions from code review --- releases/release-6.4.0.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 7cc99ea77667..950f020a5156 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -82,9 +82,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/join-reorder.md) -* 前缀索引支持对空值的过滤 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** +* 前缀索引支持对空值进行过滤 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** - 这是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 的执行性能。 + 该特性是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 语句中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 语句的执行性能。 [用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) @@ -92,15 +92,15 @@ TiDB 版本:6.4.0-DMR 在之前的版本中, TiDB 只在 writechunk 函数中复用 chunk。 在 v6.4.0 版本中,将 chunk 复用机制扩展到执行函数中,通过复用 chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下 SQL 执行效率。目前 Chunk 复用由变量 [`tidb_enable_reuse_chunk`]控制。 -* 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** +* 引入新的优化器提示 `NO_DECORRELATE` 来控制关联优化的解除 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** - 默认情况下,TiDB 总是会尝试对关联子查询重写,解除关联,这通常会达到更高的执行效率。但是在一部分场景下,解除关联反而会降低执行效率。TiDB 在新版本中引入了 hint `NO_DECORRELATE`,用来提示优化器不要对指定的查询块解关联,以提升部分场景下的查询性能。 + 默认情况下,TiDB 总是会尝试重写关联子查询以解除关联,这通常会提高执行效率。但是在一部分场景下,解除关联反而会降低执行效率。TiDB 在 v6.4.0 版本中引入了 hint `NO_DECORRELATE`,用来提示优化器不要对指定的查询块解除关联,以提升部分场景下的查询性能。 [用户文档](/optimizer-hints.md#no_decorrelate) * 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) **tw@TomShawn** - 在新版本中,TiDB 优化了分区表统计信息的收集策略。 用户可以通过变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 + 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。用户可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从 v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 事务 @@ -116,19 +116,19 @@ TiDB 版本:6.4.0-DMR 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障,快速恢复一直是数据库面临的挑战之一。TiDB 在 6.4 版本,全面优化了 TiKV 节点的状态检测机制,即使在磁盘故障,I/O 无响应等极端情况,依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起选主,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 -* TiDB 全局内存限制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** +* TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** - 在 v6.4.0 中,我们引入了一个实验特性,对 TiDB 实例的全局内存使用进行追踪。 用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入span) 设置全局内存的使用上限。 当内存使用量逼近预设的上限时, TiDB 会尝试对内存进行回收,释放更多的可用内存; 当内存使用量超出预设的上限时, TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 + v6.4.0 引入了全局内存控制(实验特性),对 TiDB 实例的全局内存使用进行追踪。用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 - 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。 同时,TiDB 提供了视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作, 可以帮助客户清晰了解内存使用状况。 + 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。同时,TiDB 提供了系统表视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作,帮助用户清晰了解内存使用状况。 - 全局内存限制是 TiDB 内存管理的重要一步, 实例采用全局视角,引入系统性方法对内存的使用进行管理, 这将会极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 + 全局内存控制是 TiDB 内存管理的重要一步,对实例采用全局视角,引入系统性方法对内存用量进行管理,这可以极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 [用户文档](/configure-memory-usage.md) * 控制优化器在构造范围时的内存占用 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** - v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 用来限制优化器在构造范围时消耗的内存上限。 当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。 当 SQL 中的 `IN` 条件特别多时, 这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 + v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 来限制优化器在构造范围时消耗的内存上限。当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。当 SQL 语句中的 `IN` 条件较多时,这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) From 60b89741c2a7179dda38dbc5074b1ad413569630 Mon Sep 17 00:00:00 2001 From: yisaer Date: Wed, 9 Nov 2022 16:31:32 +0800 Subject: [PATCH 045/105] add sync load release note Signed-off-by: yisaer --- releases/release-6.4.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 950f020a5156..7c472ec841e6 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -132,6 +132,10 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) +* 支持统计信息的同步加载(GA特性)[#38841](https://github.com/pingcap/tidb/pull/38841) @[chrysan](https://github.com/chrysan) + + v6.4.0 TiDB 正式打开了统计信息同步加载的特性(默认开启),支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性 + ### 易用性 * TiKV API V2 GA [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) **tw@Oreoxmt** From 84ed5b1310d40508ee4a897dfe736a754acc1081 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 10 Nov 2022 09:47:47 +0800 Subject: [PATCH 046/105] Apply suggestions from code review Co-authored-by: Jianyuan Jiang Co-authored-by: Yexiang Zhang Co-authored-by: 3pointer Co-authored-by: Jianjun Liao <36503113+Leavrth@users.noreply.github.com> --- releases/release-6.4.0.md | 50 +++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 7c472ec841e6..1a4288f6df99 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -343,11 +343,16 @@ TiDB 版本:6.4.0-DMR + TiCDC - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - TiCDC 支持同步 Exchange Partition DDL. [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) + - 提升 MQ sink 非 batch 协议的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) + - 提升单表大量 region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) + - 支持 Kafka 3.x 版 [7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) + - 支持 syncpoint 功能与下游 TiDB 集群的 `tidb_enable_external_ts_read` 一起使用 [#7419](https://github.com/pingcap/tiflow/issues/7419) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) + - 封装、暴露 Checker 对应的接口,提升各个入口功能组装、调用的灵活性。[#7116](https://github.com/pingcap/tiflow/issues/7116) @[D3Hunter](https://github.com/D3Hunter) + - 移除 dmctl 中无用的 operate-source update 指令。[#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 @@ -358,7 +363,7 @@ TiDB 版本:6.4.0-DMR + TiDB Lightning - - note [#issue]() @[贡献者 GitHub ID]() + - 优化文件扫描逻辑,提升 Schema 类型文件的扫描速度。[#38598](https://github.com/pingcap/tidb/issues/38598) @[dsdashun](https://github.com/dsdashun) - note [#issue]() @[贡献者 GitHub ID]() + TiUP @@ -381,6 +386,9 @@ TiDB 版本:6.4.0-DMR - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) - 修复 tikv 监控 tikv_gc_compaction_filtered 表达式错误问题 [#13537](https://github.com/tikv/tikv/issues/13537) + - 修复了 `delete_files_in_range` 中存在的异常而导致的性能问题 [#13534](https://github.com/tikv/tikv/issues/13534) @[tabokie](https://github.com/tabokie) + - 修复了获取 Snapshot 时 Lease 过期而引发的异常竞争问题 [#13553](https://github.com/tikv/tikv/issues/13553) @[SpadeA-Tang](https://github.com/SpadeA-Tang) + - 修复了第一次 FlashBack 失败时存在异常的问题 [#13695](https://github.com/tikv/tikv/issues/13695) @[HuSharp](https://github.com/HuSharp) + PD @@ -396,27 +404,45 @@ TiDB 版本:6.4.0-DMR + TiDB Dashboard - 避免查询 Statement 执行计划的时候造成 TiDB OOM。 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) + - 修复 ng-monitoring 丢失 PD 连接后有概率造成 TopSQL 开关无效的问题。 [#164](https://github.com/pingcap/ng-monitoring/issues/164) @[zhongzc](https://github.com/zhongzc) + Backup & Restore (BR) + - 修复由于恢复过程中 PD leader 切换,导致恢复失败的问题。[#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) + - 修复了日志备份任务无法 pause 的问题。[#38250](https://github.com/pingcap/tidb/issues/38250) +@[joccau](https://github.com/joccau) - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - 修复 BR 删除日志备份数据时,会删除不应被删除的数据的问题。[#38939](https://github.com/pingcap/tidb/issues/38939) @[Leavrth](https://github.com/leavrth) + - 修复 BR 第一次执行删除在 `Azure Storage Blob` 或 `Google Cloud Storage` 的日志备份数据时,会执行失败的问题。[#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + TiCDC - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - 修复`changefeed query` 的输出中有`sasl-password` 明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) + - 修复可能向 ETCD 提交过多操作的问题. [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复 redo log 文件可能被错误删除的问题. [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复 sink v2 MQ 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) + - 修复 checkpoint ts 可能被提前推进的问题 [#7274](https://github.com/pingcap/tiflow/issues/7274) @[hi-rustin](https://github.com/hi-rustin) + - 修改 mounter 模块的日志级以修复 log 打印太多的问题 [#7235](https://github.com/pingcap/tiflow/issues/7235) @[hi-rustin](https://github.com/hi-rustin) + - 修复可能存在两个 owner 的问题. [#4051](https://github.com/pingcap/tiflow/issues/4051) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - 修复 DM UI 产生错误 allow-list 参数问题。[#7096](https://github.com/pingcap/tiflow/issues/7096) @[zoubingwu](https://github.com/zoubingwu) + - 修复 DM Worker 在启动、停止时有一定概率触发 data race 的问题。[#6401](https://github.com/pingcap/tiflow/issues/6401) @[liumengya94](https://github.com/liumengya94) + - 修复当同步 Update、Delete 语句且下游行数据不存在时,DM 静默忽略的问题。[#6383](https://github.com/pingcap/tiflow/issues/6383) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 Query Status 时 secondsBehindMaster 字段未显示的问题。[#7189](https://github.com/pingcap/tiflow/issues/7189) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复更新 Checkpoint 时可能触发大事务的问题。[#5010](https://github.com/pingcap/tiflow/issues/5010) @[lance6716](https://github.com/lance6716) + - 修复从 full 模式进行入 sync 模式且很快失败时可能丢失上游表结构信息的问题。[#7159](https://github.com/pingcap/tiflow/issues/7159) @[lance6716](https://github.com/lance6716) + - 修复开启一致性校验(validator)时可能触发死锁的问题。[#7241](https://github.com/pingcap/tiflow/issues/7241) @[buchuitoudegou](https://github.com/buchuitoudegou) + - 修复任务预检查对 INFORMATION_SCHEMA 表需要 SELECT 权限的问题。[#7317](https://github.com/pingcap/tiflow/issues/7317) @[lance6716](https://github.com/lance6716) + - 修复空 TLS 配置导致直接报错的问题。[#7384](https://github.com/pingcap/tiflow/issues/7384) @[liumengya94](https://github.com/liumengya94) + TiDB Lightning - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() - + - 修复 Parquet String Column 且 Table 设置了 binary 属性时导致导入性能下降的问题。[#38351](https://github.com/pingcap/tidb/issues/38351) @[dsdashun](https://github.com/dsdashun) + + TiDB Dumpling + + - 修复导出大量表时可能导致超时的问题。[#36549](https://github.com/pingcap/tidb/issues/36549) @[lance6716](https://github.com/lance6716) + - 修复加锁模式但是上游不存在对应表时导致加锁报错的问题 [#38683](https://github.com/pingcap/tidb/issues/38683) @[lance6716](https://github.com/lance6716) + TiUP - note [#issue]() @[贡献者 GitHub ID]() From 3e50e827c5008e31b1c73dc6c406a1265f542029 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 10 Nov 2022 09:53:45 +0800 Subject: [PATCH 047/105] Apply suggestions from code review --- releases/release-6.4.0.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 1a4288f6df99..46908ce43743 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -23,9 +23,8 @@ TiDB 版本:6.4.0-DMR - 集群诊断功能 GA。 - TiFlash 静态加密支持国密算法 SM4。 - 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction)。 -- 支持对数据库用户增加额外说明。 - 支持基于 AWS EBS snapshot 的集群备份和恢复。 - +- 支持在分库分表合并迁移场景中标记下游表中的记录来自上游哪个分库/分表/数据源。 ## 新功能 ### SQL @@ -303,7 +302,6 @@ TiDB 版本:6.4.0-DMR - `mysql.tables_priv` 表中新增了 `grantor` 字段. [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - 允许修改系统变量 `lc_messages`. [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列. [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) - - `json_path` 支持数组范围选取 [#38583](https://github.com/pingcap/tidb/issues/38583) @[YangKeao](https://github.com/YangKeao) - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT`. [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) - 内部事务重试使用悲观模式避免重试失败,降低耗时 [#38136](https://github.com/pingcap/tidb/issues/38136) @[jackysp](https://github.com/jackysp) @@ -386,9 +384,9 @@ TiDB 版本:6.4.0-DMR - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) - 修复 tikv 监控 tikv_gc_compaction_filtered 表达式错误问题 [#13537](https://github.com/tikv/tikv/issues/13537) - - 修复了 `delete_files_in_range` 中存在的异常而导致的性能问题 [#13534](https://github.com/tikv/tikv/issues/13534) @[tabokie](https://github.com/tabokie) - - 修复了获取 Snapshot 时 Lease 过期而引发的异常竞争问题 [#13553](https://github.com/tikv/tikv/issues/13553) @[SpadeA-Tang](https://github.com/SpadeA-Tang) - - 修复了第一次 FlashBack 失败时存在异常的问题 [#13695](https://github.com/tikv/tikv/issues/13695) @[HuSharp](https://github.com/HuSharp) + - 修复了 `delete_files_in_range` 中存在的异常而导致的性能问题 [#13534](https://github.com/tikv/tikv/issues/13534) @[tabokie](https://github.com/tabokie) + - 修复了获取 Snapshot 时 Lease 过期而引发的异常竞争问题 [#13553](https://github.com/tikv/tikv/issues/13553) @[SpadeA-Tang](https://github.com/SpadeA-Tang) + - 修复了第一次 FlashBack 失败时存在异常的问题 [#13695](https://github.com/tikv/tikv/issues/13695) @[HuSharp](https://github.com/HuSharp) + PD From 53f71ea825515c25a1f75a42fc500beb3d5140d2 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 10 Nov 2022 15:25:53 +0800 Subject: [PATCH 048/105] Apply suggestions from code review --- releases/release-6.4.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 46908ce43743..f8122765a597 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -265,6 +265,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。| | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | +| [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 这个变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| @@ -275,6 +276,7 @@ TiDB 版本:6.4.0-DMR | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | +| TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值。 | | TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。配置过大会增加 OOM 的风险。 | | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。配置过大会增加 OOM 的风险。 | | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| From 7d0bdfa000a3021fb8309d3cf192fc6faa4ad607 Mon Sep 17 00:00:00 2001 From: Ran Date: Thu, 10 Nov 2022 17:39:54 +0800 Subject: [PATCH 049/105] Apply suggestions from code review --- releases/release-6.4.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index f8122765a597..4832ecd600aa 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -43,9 +43,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) -* 支持通过 FLASHBACK DATABASE 命令将被删除的数据库恢复 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** +* 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** - FLASHBACK DATABASE 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速通过 SQL 语句进行数据和元信息的恢复。 + `FLASHBACK DATABASE` 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速地通过 SQL 语句进行数据和元信息的恢复。 [用户文档](/sql-statements/sql-statement-flashback-database.md) @@ -53,9 +53,9 @@ TiDB 版本:6.4.0-DMR * TiFlash 静态加密支持国密算法 SM4 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) **tw@ran-huang** - TiFlash 的静态加密新增 SM4 算法,用户可以修改配置文件 tiflash-learner.toml 中的 data-encryption-method 参数,设置为 sm4-ctr,以启用基于国密算法 SM4 的静态加密能力。 + TiFlash 的静态加密新增 SM4 算法,你可以将配置文件 `tiflash-learner.toml` 中的 `data-encryption-method` 参数的值设置为 `sm4-ctr`,以启用基于国密算法 SM4 的静态加密能力。 - [用户文档](/encryption-at-rest.md) + [用户文档](/encryption-at-rest.md#tiflash) ### 可观测性 @@ -69,9 +69,9 @@ TiDB 版本:6.4.0-DMR ### 性能 -* 引入 cop task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** +* 引入 Coprocessor Task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** - 随 cop task 任务数增加结合 TiKV 处理速度,自动调整增加 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 并发度,减少因 cop task 任务排队,降低延迟。 + 随着 Coprocessor Task 任务数增加,TiDB 将结合 TiKV 处理速度自动增加任务并发度(调整 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) ),减少 Coprocessor Task 任务排队,降低延迟。 * 增加了动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** From 250d198c8ba4e566c00b37cf6a7f3ccec18d0202 Mon Sep 17 00:00:00 2001 From: qiancai Date: Thu, 10 Nov 2022 19:30:40 +0800 Subject: [PATCH 050/105] add PD improvements/bug fixes and add contributor info --- releases/release-6.4.0.md | 51 +++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 4832ecd600aa..ae80adfa2377 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -293,6 +293,8 @@ TiDB 版本:6.4.0-DMR ### 其他 +- mysql.user 表新增 2 个字段:`User_attributes`、`Token_issuer` +- 针对命名规则符合 Dumpling 表结构和数据格式但后缀名中包含非压缩格式的文件(例如,`test-schema-create.sql.origin` 和 `test.table-schema.sql.xxx`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 ## 废弃功能 @@ -316,8 +318,11 @@ TiDB 版本:6.4.0-DMR + PD - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - 新增热点调度 rank v2 算法,在特定场景下 `v2` 版本算法则可以在两个维度都取得更好的均衡效果,并减少无效调度 [#5021](https://github.com/tikv/pd/issues/5021) @[HundunDM](https://github.com/hundundm) + - 改进 Operator 超时机制,防止过早超时 [#5596](https://github.com/tikv/pd/issues/5596) @[bufferflies](https://github.com/bufferflies) + - 新增 Placement rule 支持 witness [#5568](https://github.com/tikv/pd/issues/5568) @[ethercflow](https://github.com/ethercflow) + - 优化调度器在大集群下的性能 [#5473](https://github.com/tikv/pd/issues/5473)@[bufferflies](https://github.com/bufferflies) + - 支持 external timestamp. [#5637](https://github.com/tikv/pd/issues/5637) @[lhy1024](https://github.com/lhy1024) + TiFlash @@ -332,18 +337,18 @@ TiDB 版本:6.4.0-DMR + TiDB Dashboard - - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式。 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) - - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) + - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + Backup & Restore (BR) - - 改进加载元数据的机制,仅在需要的时候才会将元数据加载到内存中,显著减少了 PITR 过程中的内存压力。 [#38404](https://github.com/pingcap/tidb/issues/38404) @[YuJuncen](https://github.com/YuJuncen) + - 改进加载元数据的机制,仅在需要的时候才会将元数据加载到内存中,显著减少了 PITR 过程中的内存压力 [#38404](https://github.com/pingcap/tidb/issues/38404) @[YuJuncen](https://github.com/YuJuncen) - note [#issue]() @[贡献者 GitHub ID]() + TiCDC - - TiCDC 支持同步 Exchange Partition DDL. [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) + - TiCDC 支持同步 Exchange Partition DDL [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) - 提升 MQ sink 非 batch 协议的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) - 提升单表大量 region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) - 支持 Kafka 3.x 版 [7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) @@ -392,8 +397,7 @@ TiDB 版本:6.4.0-DMR + PD - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() + - 修复 Stream 超时问题,加速 Leader 切换的速度. [#5207](https://github.com/tikv/pd/issues/5207) @[CabinfeverB](https://github.com/CabinfeverB) + TiFlash @@ -408,15 +412,13 @@ TiDB 版本:6.4.0-DMR + Backup & Restore (BR) - 修复由于恢复过程中 PD leader 切换,导致恢复失败的问题。[#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) - - 修复了日志备份任务无法 pause 的问题。[#38250](https://github.com/pingcap/tidb/issues/38250) -@[joccau](https://github.com/joccau) - + - 修复了日志备份任务无法 pause 的问题。[#38250](https://github.com/pingcap/tidb/issues/38250)@[joccau](https://github.com/joccau) - 修复 BR 删除日志备份数据时,会删除不应被删除的数据的问题。[#38939](https://github.com/pingcap/tidb/issues/38939) @[Leavrth](https://github.com/leavrth) - 修复 BR 第一次执行删除在 `Azure Storage Blob` 或 `Google Cloud Storage` 的日志备份数据时,会执行失败的问题。[#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + TiCDC - - 修复`changefeed query` 的输出中有`sasl-password` 明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) + - 修复`changefeed query` 的输出中有`sasl-password` 明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) - 修复可能向 ETCD 提交过多操作的问题. [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - 修复 redo log 文件可能被错误删除的问题. [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - 修复 sink v2 MQ 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) @@ -439,10 +441,12 @@ TiDB 版本:6.4.0-DMR + TiDB Lightning - 修复 Parquet String Column 且 Table 设置了 binary 属性时导致导入性能下降的问题。[#38351](https://github.com/pingcap/tidb/issues/38351) @[dsdashun](https://github.com/dsdashun) + + TiDB Dumpling - - - 修复导出大量表时可能导致超时的问题。[#36549](https://github.com/pingcap/tidb/issues/36549) @[lance6716](https://github.com/lance6716) - - 修复加锁模式但是上游不存在对应表时导致加锁报错的问题 [#38683](https://github.com/pingcap/tidb/issues/38683) @[lance6716](https://github.com/lance6716) + + - 修复导出大量表时可能导致超时的问题。[#36549](https://github.com/pingcap/tidb/issues/36549) @[lance6716](https://github.com/lance6716) + - 修复加锁模式但是上游不存在对应表时导致加锁报错的问题 [#38683](https://github.com/pingcap/tidb/issues/38683) @[lance6716](https://github.com/lance6716) + + TiUP - note [#issue]() @[贡献者 GitHub ID]() @@ -452,5 +456,20 @@ TiDB 版本:6.4.0-DMR 感谢来自 TiDB 社区的贡献者们: -- [goldwind-ting](https://github.com/goldwind-ting) +- [645775992](https://github.com/645775992) +- [An-DJ](https://github.com/An-DJ) +- [AndrewDi](https://github.com/AndrewDi) +- [erwadba](https://github.com/erwadba) +- [fuzhe1989](https://github.com/fuzhe1989) +- [goldwind-ting](https://github.com/goldwind-ting) (首次贡献者) +- [h3n4l](https://github.com/h3n4l) +- [igxlin](https://github.com/igxlin) (首次贡献者) +- [ihcsim](https://github.com/ihcsim) +- [JigaoLuo](https://github.com/JigaoLuo) +- [morgo](https://github.com/morgo) +- [Ranxy](https://github.com/Ranxy) +- [shenqidebaozi](https://github.com/shenqidebaozi) (首次贡献者) +- [taofengliu](https://github.com/taofengliu) (首次贡献者) +- [TszKitLo40](https://github.com/TszKitLo40) +- [wxbty](https://github.com/wxbty) (首次贡献者) - [zgcbj](https://github.com/zgcbj) From 510943bd4186f2a6f54baf9833a0ca36f78826fb Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 11 Nov 2022 09:25:57 +0800 Subject: [PATCH 051/105] wording updates --- releases/release-6.4.0.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ae80adfa2377..66214876e73e 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -73,9 +73,9 @@ TiDB 版本:6.4.0-DMR 随着 Coprocessor Task 任务数增加,TiDB 将结合 TiKV 处理速度自动增加任务并发度(调整 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) ),减少 Coprocessor Task 任务排队,降低延迟。 -* 增加了动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** +* 新增动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** - 在之前的版本中, TiDB 采用贪心算法来决定表的连接顺序。 在版本 v6.4.0 中, 优化器引入了[动态规划算法](/join-reorder.md#join-reorder-算法实例),相比贪心算法, 动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 + 在之前的版本中,TiDB 采用贪心算法来决定表的连接顺序。 在 v6.4.0 中, 优化器引入了[动态规划算法](join-reorder#join-reorder-动态规划算法实例)。相比贪心算法,动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 @@ -160,7 +160,7 @@ TiDB 版本:6.4.0-DMR TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 - v6.3.0 版本改进了 TiFlash 副本数据同步进度更新机制,在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 + v6.4.0 版本改进了 TiFlash 副本数据同步进度更新机制。在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 [用户文档](/information-schema/information-schema-tiflash-replica.md) @@ -182,7 +182,12 @@ TiDB 版本:6.4.0-DMR * 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) **tw@qiancai** - 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。 例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 通过关键字 `last`,你可以指定 Array 中最后一个元素的位置,实现从右到左的位置设定。例如,使用 `$[last-2 to last]` 可以选择 Array 中的最后三个元素。 该特性简化了 SQL 的编写过程,进一步提升了 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 + 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 + + - 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。 例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 + - 通过关键字 `last`,你可以指定 Array 中最后一个元素的位置,实现从右到左的位置设定。例如,使用 `$[last-2 to last]` 可以选择 Array 中的最后三个元素。 + + 该特性简化了 SQL 的编写过程,进一步提升了 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 * 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** From e59bc912127ad53ddf8f11847851fcd31b529c8d Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 11 Nov 2022 11:11:41 +0800 Subject: [PATCH 052/105] Update releases/release-6.4.0.md Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 66214876e73e..5776c4b20b89 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -29,7 +29,7 @@ TiDB 版本:6.4.0-DMR ### SQL -* 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) **tw@qiancai** +* 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) **tw@qiancai** v6.2.0 版本发布了针对全表的 TiFlash 副本立即触发 [物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) 功能,支持用户自行选择合适的时机、手动执行 SQL 语句来对 TiFlash 中的物理数据立即进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 版本细化了 TiFlash 副本物理数据整理的粒度,支持对表中的指定 Partition 的 TiFlash 副本立即触发物理数据整理。 From 4fa2f3cfe474e72d4f6de93b8db5ea0967744128 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 11 Nov 2022 11:12:22 +0800 Subject: [PATCH 053/105] Update releases/release-6.4.0.md Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 5776c4b20b89..c919622469c4 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -31,7 +31,7 @@ TiDB 版本:6.4.0-DMR * 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) **tw@qiancai** - v6.2.0 版本发布了针对全表的 TiFlash 副本立即触发 [物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) 功能,支持用户自行选择合适的时机、手动执行 SQL 语句来对 TiFlash 中的物理数据立即进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 版本细化了 TiFlash 副本物理数据整理的粒度,支持对表中的指定 Partition 的 TiFlash 副本立即触发物理数据整理。 + TiDB v6.2.0 发布了针对全表的 TiFlash 副本立即进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact#对表中-tiflash-副本进行数据整理) 的功能,支持用户自行选择合适的时机,手动执行 SQL 语句立即对 TiFlash 中的物理数据进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 细化了 TiFlash 副本数据整理的粒度,支持对表中指定分区的 TiFlash 副本立即进行数据整理。 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]` 可以立即触发指定 Partition 的 TiFlash 副本物理数据整理。 From 8bdc55ab82f30242e175e0642140c93e6b140a10 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 11 Nov 2022 11:13:00 +0800 Subject: [PATCH 054/105] Update releases/release-6.4.0.md Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index c919622469c4..ee42ec74ae2d 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -33,7 +33,7 @@ TiDB 版本:6.4.0-DMR TiDB v6.2.0 发布了针对全表的 TiFlash 副本立即进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact#对表中-tiflash-副本进行数据整理) 的功能,支持用户自行选择合适的时机,手动执行 SQL 语句立即对 TiFlash 中的物理数据进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 细化了 TiFlash 副本数据整理的粒度,支持对表中指定分区的 TiFlash 副本立即进行数据整理。 - 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]` 可以立即触发指定 Partition 的 TiFlash 副本物理数据整理。 + 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]`,你可以立即对指定分区的 TiFlash 副本进行数据整理。 [用户文档](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) From bd0aa4a27587fec2eabafdef18f9948be702acd3 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 11 Nov 2022 11:13:33 +0800 Subject: [PATCH 055/105] Update releases/release-6.4.0.md Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ee42ec74ae2d..58f5ef1c6233 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -35,7 +35,7 @@ TiDB 版本:6.4.0-DMR 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]`,你可以立即对指定分区的 TiFlash 副本进行数据整理。 - [用户文档](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) + [用户文档](/sql-statements/sql-statement-alter-table-compact.md#对分区表中指定分区的-tiflash-副本进行数据整理) * 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 [#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** From bf0880cf564ffcc3c2f7cf6984dfb6508a205694 Mon Sep 17 00:00:00 2001 From: Ping Yu Date: Fri, 11 Nov 2022 11:32:33 +0800 Subject: [PATCH 056/105] Apply suggestion for TiKV API v2 (remove warning) Co-authored-by: Aolin --- releases/release-6.4.0.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 58f5ef1c6233..f16dad520b80 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -137,22 +137,17 @@ TiDB 版本:6.4.0-DMR ### 易用性 -* TiKV API V2 GA [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) **tw@Oreoxmt** +* TiKV API V2 成为正式功能 [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) **tw@Oreoxmt** - 在 v6.1.0 之前,TiKV 的 RawKV 接口仅存储客户端传入的原始数据,因此只提供基本的 Key Value 读写能力。此外,由于编码方式不同、数据范围没有隔离,因此在同一个 TiKV 集群中,TiDB、事务 KV、RawKV 无法同时使用,对于不同使用方式并存的场景,必须部署多套集群,增加了机器和部署成本。 + 在 v6.1.0 之前,TiKV 的 RawKV 接口仅存储客户端传入的原始数据,因此只提供基本的 Key-Value 读写能力。此外,由于编码方式不同、数据范围没有隔离等,同一个 TiKV 集群中,TiDB、事务 KV、RawKV 无法同时使用,因此对于不同使用方式并存的场景,必须部署多个集群,增加了机器和部署成本。 TiKV API V2 提供了新的存储格式,包括: * RawKV 数据以 MVCC 方式存储,记录数据的变更时间戳,并在此基础上提供 Change Data Capture 能力(实验特性,见 [TiKV-CDC](https://github.com/tikv/migration/blob/main/cdc/README.md))。 * 数据根据使用方式划分范围,支持单一集群 TiDB、事务 KV、RawKV 应用共存。 - * 预留 Key Space 字段,可以为多租户等特性提供支持。 + * 预留 Key Space 字段,为多租户等特性提供支持。 - 使用 TiKV API V2 请在 TiKV 的 `[storage]` 配置中增加或修改 `api-version = 2`。详见[用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入)。 - - > **警告:** - > - > - 由于底层存储格式发生了重大变化,因此仅当 TiKV 只有 TiDB 数据时,可以平滑启用或关闭 API V2。其他情况下,需要新建集群,并使用 [TiKV-BR](https://github.com/tikv/migration/blob/main/br/README-cn.md) 进行数据迁移。 - > - 启用 API V2 后,不能将 TiKV 集群回退到 v6.1.0 之前的版本,否则可能导致数据损坏。 + 你可以通过在 TiKV 的 `[storage]` 配置中设置 `api-version = 2` 来启用 TiKV API V2。 [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) From 53bb2cc734c0bdde4dd20ba1c08748990642cd93 Mon Sep 17 00:00:00 2001 From: tiancaiamao Date: Fri, 11 Nov 2022 11:57:46 +0800 Subject: [PATCH 057/105] Update releases/release-6.4.0.md Co-authored-by: Aolin --- releases/release-6.4.0.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index f16dad520b80..8857a1bd9436 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -169,9 +169,13 @@ TiDB 版本:6.4.0-DMR [用户文档](/mysql-compatibility.md) -* 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性 (实验特性,见 [#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao)) **tw@Oreoxmt** +* 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性 (实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** - TiDB 现有的 AUTO_INCREMENT 列属性的全局单调性和性能不可兼得,提供高性能、全局单调递增的 AUTO_INCREMENT 列属性能够更完美的兼容 MySQL AUTO_INCREMENT 的功能,降低用户从 MySQL 迁移到 TiDB 的改造成本。例如,使用该特性能够轻松解决用户的查询结果需要按照自增 ID 排序的问题。 + TiDB v6.4.0 引入了 `AUTO_INCREMENT` 的 MySQL 兼容模式,通过中心化分配自增 ID 的服务实现了自增 ID 在所有 TiDB 实例上单调递增。使用该特性能够更容易地实现查询结果按自增 ID 排序。要使用 MySQL 兼容模式,你需要在建表时将 `AUTO_ID_CACHE` 设置为 `1`。 + + ```sql + CREATE TABLE t(a int AUTO_INCREMENT key) AUTO_ID_CACHE 1; + ``` [用户文档](/auto-increment.md#mysql-兼容模式) From 76829453f774a016b6b851568ebfbbd4cfcccbc5 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 11 Nov 2022 13:32:02 +0800 Subject: [PATCH 058/105] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-6.4.0.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 8857a1bd9436..1886317aec88 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -15,7 +15,7 @@ TiDB 版本:6.4.0-DMR - 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 - 支持 TiDB 全局内存限制 - TiDB 分区表兼容 Linear Hash 分区。 -- 支持高性能、全局单调递增的 AUTO_INCREMENT 列属性。 +- 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 - 支持对 JSON 类型中的 Array 数据做范围选择。 - 磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 - 增加了动态规划算法来决定表的连接顺序。 @@ -113,7 +113,7 @@ TiDB 版本:6.4.0-DMR * 磁盘故障、I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** - 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障,快速恢复一直是数据库面临的挑战之一。TiDB 在 6.4 版本,全面优化了 TiKV 节点的状态检测机制,即使在磁盘故障,I/O 无响应等极端情况,依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起选主,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 + 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障并恢复一直是数据库面临的挑战之一。TiDB v6.4 全面优化了 TiKV 节点的状态检测机制。即使在磁盘故障或 I/O 无响应等极端情况下,TiDB 依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起 Leader 选举,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 * TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** @@ -190,9 +190,11 @@ TiDB 版本:6.4.0-DMR * 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** - 新版本扩展了 `Create User` 和 `Alter User` 的语法,能够为数据库用户添加额外的说明。 说明支持两种格式,利用 `COMMENT` 添加一段文本,或者用 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 这个特性加强了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 - - [用户文档](/information-schema/information-schema-user-attributes.md) + 在 TiDB v6.4 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 + + 此外,TiDB v6.4 新增了 [USER_ATTRIBUTES](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 + + 这个特性提升了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 ### 备份和恢复 From 56c3dcbfdd44b952e8f5ed4c275aaab8c4f2988b Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 11 Nov 2022 13:42:16 +0800 Subject: [PATCH 059/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 54 ++++++++++++--------------------------- 1 file changed, 16 insertions(+), 38 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 1886317aec88..11a075e85b87 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -241,14 +241,6 @@ TiDB 版本:6.4.0-DMR TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。你可以将通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 -### 部署及运维 - -* 功能简短描述 - - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() - - [用户文档]() - ## 兼容性变更 ### 系统变量 @@ -309,10 +301,10 @@ TiDB 版本:6.4.0-DMR + TiDB - - `mysql.tables_priv` 表中新增了 `grantor` 字段. [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - - 允许修改系统变量 `lc_messages`. [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) - - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列. [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) - - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT`. [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) + - `mysql.tables_priv` 表中新增了 `grantor` 字段 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 允许修改系统变量 `lc_messages` [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) + - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列 [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) + - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT` [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) - 内部事务重试使用悲观模式避免重试失败,降低耗时 [#38136](https://github.com/pingcap/tidb/issues/38136) @[jackysp](https://github.com/jackysp) + TiKV @@ -320,7 +312,7 @@ TiDB 版本:6.4.0-DMR - raftstore 新增 `apply-yield-write-size` 配置项,以限制 raftstore 的最大单轮 Apply 写入的数据大小,减缓 raftstore 线程在 Apply 写入过大时的阻塞现象。[#13594](https://github.com/tikv/tikv/pull/13594) @[glorv](https://github.com/glorv) - 为 Region 的 Leader 迁移前增加缓存预热阶段,减缓 Leader 迁移时造成QPS剧烈抖动现象。[#13556](https://github.com/tikv/tikv/pull/13556) @[cosven](https://github.com/cosven) - 新增支持将 `json_contains` 算子下推至 Coprocessor 。[#13592](https://github.com/tikv/tikv/issues/13592) @[lizhenhuan](https://github.com/lizhenhuan) - - 新增对 `CausalTsProvider` 的异步实现。 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + - 新增对 `CausalTsProvider` 的异步实现 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + PD @@ -328,7 +320,7 @@ TiDB 版本:6.4.0-DMR - 改进 Operator 超时机制,防止过早超时 [#5596](https://github.com/tikv/pd/issues/5596) @[bufferflies](https://github.com/bufferflies) - 新增 Placement rule 支持 witness [#5568](https://github.com/tikv/pd/issues/5568) @[ethercflow](https://github.com/ethercflow) - 优化调度器在大集群下的性能 [#5473](https://github.com/tikv/pd/issues/5473)@[bufferflies](https://github.com/bufferflies) - - 支持 external timestamp. [#5637](https://github.com/tikv/pd/issues/5637) @[lhy1024](https://github.com/lhy1024) + - 支持 external timestamp [#5637](https://github.com/tikv/pd/issues/5637) @[lhy1024](https://github.com/lhy1024) + TiFlash @@ -350,7 +342,6 @@ TiDB 版本:6.4.0-DMR + Backup & Restore (BR) - 改进加载元数据的机制,仅在需要的时候才会将元数据加载到内存中,显著减少了 PITR 过程中的内存压力 [#38404](https://github.com/pingcap/tidb/issues/38404) @[YuJuncen](https://github.com/YuJuncen) - - note [#issue]() @[贡献者 GitHub ID]() + TiCDC @@ -370,26 +361,18 @@ TiDB 版本:6.4.0-DMR [用户文档](https://github.com/pingcap/docs-cn/pull/11718) - - note [#issue]() @[贡献者 GitHub ID]() - + TiDB Lightning - 优化文件扫描逻辑,提升 Schema 类型文件的扫描速度。[#38598](https://github.com/pingcap/tidb/issues/38598) @[dsdashun](https://github.com/dsdashun) - - note [#issue]() @[贡献者 GitHub ID]() - - + TiUP - - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() ## 错误修复 + TiDB - - 修复新建索引之后有可能导致的数据索引不一致的问题. [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) - - 修复关于 `information_schema.TIKV_REGION_STATUS` 表的权限问题. [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) - - 修复 CTE 在 join 时可能得到错误结果的问题. [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - - 修复 CTE 在 union 时可能得到错误结果的问题. [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) + - 修复新建索引之后有可能导致的数据索引不一致的问题 [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) + - 修复关于 `information_schema.TIKV_REGION_STATUS` 表的权限问题 [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 修复 CTE 在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) + - 修复 CTE 在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控 transaction region num panel 信息不准确问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](github.com/jackysp) - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) @@ -403,7 +386,7 @@ TiDB 版本:6.4.0-DMR + PD - - 修复 Stream 超时问题,加速 Leader 切换的速度. [#5207](https://github.com/tikv/pd/issues/5207) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 Stream 超时问题,加速 Leader 切换的速度 [#5207](https://github.com/tikv/pd/issues/5207) @[CabinfeverB](https://github.com/CabinfeverB) + TiFlash @@ -413,8 +396,8 @@ TiDB 版本:6.4.0-DMR + TiDB Dashboard - - 避免查询 Statement 执行计划的时候造成 TiDB OOM。 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) - - 修复 ng-monitoring 丢失 PD 连接后有概率造成 TopSQL 开关无效的问题。 [#164](https://github.com/pingcap/ng-monitoring/issues/164) @[zhongzc](https://github.com/zhongzc) + - 避免查询 Statement 执行计划的时候造成 TiDB OOM [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) + - 修复 ng-monitoring 丢失 PD 连接后有概率造成 TopSQL 开关无效的问题 [#164](https://github.com/pingcap/ng-monitoring/issues/164) @[zhongzc](https://github.com/zhongzc) + Backup & Restore (BR) - 修复由于恢复过程中 PD leader 切换,导致恢复失败的问题。[#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) @@ -425,12 +408,12 @@ TiDB 版本:6.4.0-DMR + TiCDC - 修复`changefeed query` 的输出中有`sasl-password` 明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) - - 修复可能向 ETCD 提交过多操作的问题. [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - - 修复 redo log 文件可能被错误删除的问题. [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复可能向 ETCD 提交过多操作的问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复 redo log 文件可能被错误删除的问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - 修复 sink v2 MQ 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) - 修复 checkpoint ts 可能被提前推进的问题 [#7274](https://github.com/pingcap/tiflow/issues/7274) @[hi-rustin](https://github.com/hi-rustin) - 修改 mounter 模块的日志级以修复 log 打印太多的问题 [#7235](https://github.com/pingcap/tiflow/issues/7235) @[hi-rustin](https://github.com/hi-rustin) - - 修复可能存在两个 owner 的问题. [#4051](https://github.com/pingcap/tiflow/issues/4051) @[asddongmen](https://github.com/asddongmen) + - 修复可能存在两个 owner 的问题 [#4051](https://github.com/pingcap/tiflow/issues/4051) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) @@ -453,11 +436,6 @@ TiDB 版本:6.4.0-DMR - 修复导出大量表时可能导致超时的问题。[#36549](https://github.com/pingcap/tidb/issues/36549) @[lance6716](https://github.com/lance6716) - 修复加锁模式但是上游不存在对应表时导致加锁报错的问题 [#38683](https://github.com/pingcap/tidb/issues/38683) @[lance6716](https://github.com/lance6716) - + TiUP - - - note [#issue]() @[贡献者 GitHub ID]() - - note [#issue]() @[贡献者 GitHub ID]() - ## 贡献者 感谢来自 TiDB 社区的贡献者们: From 80a591b884d9843fbc7e8cab58acc27aa83193c4 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 11 Nov 2022 13:50:35 +0800 Subject: [PATCH 060/105] Update releases/release-6.4.0.md Co-authored-by: Xiaoju Wu --- releases/release-6.4.0.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 11a075e85b87..9e0637bbaa78 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -375,7 +375,10 @@ TiDB 版本:6.4.0-DMR - 修复 CTE 在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控 transaction region num panel 信息不准确问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](github.com/jackysp) - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) - +- 修复了条件在某些场景下被错误下推 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) +- 修复了 `AND` `OR` 条件的 `isNullRejected` 的错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) +- 修复了外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `order by` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) +- 修复了错误下推的条件被 join reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + TiKV - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) From 47fdc9581ab5eb15c9f5b85b93b4dfccd1494fd8 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Fri, 11 Nov 2022 14:16:07 +0800 Subject: [PATCH 061/105] Apply suggestions from code review --- releases/release-6.4.0.md | 48 +++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 9e0637bbaa78..204060f54eee 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -61,12 +61,10 @@ TiDB 版本:6.4.0-DMR * 集群诊断功能 GA [#1438](https://github.com/pingcap/tidb-dashboard/issues/1438) @[Hawkson-jee](https://github.com/Hawkson-jee) **tw@shichun-0415** - 集群诊断功能是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个诊断报告。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 + [集群诊断功能](/dashboard/dashboard-diagnostics-access.md)是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个[诊断报告](/dashboard/dashboard-diagnostics-report.md)。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 - 详细内容见[用户文档](/dashboard/dashboard-diagnostics-access.md) - ### 性能 * 引入 Coprocessor Task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** @@ -205,41 +203,51 @@ TiDB 版本:6.4.0-DMR - 备份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 - [用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot) + 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot)。 ### 数据迁移 -* 支持在分库分表合并迁移场景,下游合表支持增加扩展列并赋值,用于标记下游表中的记录来自上游哪个分库/分表/数据源。[#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** - - 在上游分库分表合并到 TiDB 的场景,用户可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会带上上游分库分表的名称,在一些数据异常的场景,用户可以通过该功能快速定位目标表的问题数据时来自于上游哪个分库分表。 - - [用户文档](/dm/dm-key-features.md#提取分库分表数据源信息写入合表) +* 支持迁移过程中对目标表增加扩展列并进行赋值,用于标识上游数据源信息 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** -* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项。[#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** + 在上游分库分表合并到 TiDB 的场景,你可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会包含上游分库分表的名称。在一些数据异常的场景,你可以通过该功能快速定位目标表的问题数据源信息,如该数据来自上游哪个分库,哪个分表。 - 将“检查字符集是否存在兼容性差异”、“检查上游表中是否存在主键或唯一键约束”,“数据库主从配置,上游数据库必须设置数据库 ID server_id” 这 3 个前置检查从必须通过项,改为非必须通过项,提升用户前置检查的通过率。 + 更多信息,请参考[用户文档](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 - [用户文档](/dm/dm-precheck.md) +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** -* 配置 DM 增量迁移任务,支持 binlog_name 和 GTID 的参数可作为选配项。[#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** + 为了使数据迁移任务顺利进行,DM 在启动迁移任务时会自动触发[任务前置检查](/dm/dm-precheck.md),并返回检查结果。只有当前置检查通过后,DM 才开始执行迁移任务。 + + 在 v6.4.0,DM 将如下三个检查项由必须通过项改为非必须通过项,提升了前置检查通过率: + + - 检查字符集是否存在兼容性差异 + - 检查上游表中是否存在主键或唯一键约束 + - 数据库主从配置,上游数据库必须设置数据库 ID `server_id` - 用户只配置 DM 增量迁移任务时,如果不指定 binlog_name 和 GTID 的参数取值,则默认按任务的启动时间去上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了用户的理解成本和配置复杂度。 +* 增量迁移任务支持 binlog position 和 GTID 作为选配参数 [#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** - [用户文档](/dm/task-configuration-file-full.md) + v6.4.0 之前,增量迁移任务需要传入 binlog position 或者 GTID 才能启动,配置复杂。自 v6.4.0 起,如果只需要执行增量迁移任务,则可以不指定 binlog position 或者 GTID 的参数取值,DM 将默认按任务的启动时间从上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了使用时的理解成本和配置复杂度。 + + 更多信息,请参考 [DM 任务完整配置文件介绍](/dm/task-configuration-file-full.md)。 * DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) **tw@shichun-0415** - * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes/s - * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second) - * 新增了 DM 全量任务数据导出的进度展示 + DM 数据迁移任务提供了性能指标和进度指标,方便用户了解和把控当前任务进度,同时为问题排查提供参考信息。 + + 在 v6.4.0,DM 新增了几个状态信息,可以方便用户更直观了解迁移性能和进度: + + * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes/s。 + * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second)。 + * 新增了 DM 全量任务数据导出的进度展示。 + + 关于这些指标的详细介绍,参阅 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 [用户文档](/dm/dm-query-status.md) ### 数据共享与订阅 -- TiCDC 支持同步数据到 `3.2.0` 版本的 Kafka **tw@shichun-0415** +- TiCDC 支持同步数据到 `3.2.0` 版本的 Kafka [#7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) **tw@shichun-0415** - TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。你可以将通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 + TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。你可以通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 ## 兼容性变更 From 90e8309e06451f5d898b0667761a93d34641d88f Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Fri, 11 Nov 2022 14:18:30 +0800 Subject: [PATCH 062/105] format --- releases/release-6.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 204060f54eee..1a9f943c69df 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -219,9 +219,9 @@ TiDB 版本:6.4.0-DMR 在 v6.4.0,DM 将如下三个检查项由必须通过项改为非必须通过项,提升了前置检查通过率: - - 检查字符集是否存在兼容性差异 - - 检查上游表中是否存在主键或唯一键约束 - - 数据库主从配置,上游数据库必须设置数据库 ID `server_id` + - 检查字符集是否存在兼容性差异 + - 检查上游表中是否存在主键或唯一键约束 + - 数据库主从配置,上游数据库必须设置数据库 ID `server_id` * 增量迁移任务支持 binlog position 和 GTID 作为选配参数 [#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** From 8fee6ab6ad00d03c29f1fc632283095163de314e Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Fri, 11 Nov 2022 14:34:25 +0800 Subject: [PATCH 063/105] Apply suggestions from code review --- releases/release-6.4.0.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 1a9f943c69df..7aa0c920b698 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -239,9 +239,7 @@ TiDB 版本:6.4.0-DMR * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second)。 * 新增了 DM 全量任务数据导出的进度展示。 - 关于这些指标的详细介绍,参阅 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 - - [用户文档](/dm/dm-query-status.md) + 关于这些指标的详细介绍,请参考 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 ### 数据共享与订阅 @@ -363,11 +361,7 @@ TiDB 版本:6.4.0-DMR - 封装、暴露 Checker 对应的接口,提升各个入口功能组装、调用的灵活性。[#7116](https://github.com/pingcap/tiflow/issues/7116) @[D3Hunter](https://github.com/D3Hunter) - 移除 dmctl 中无用的 operate-source update 指令。[#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) - - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题。[#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** - - DM 会默认使用上游数据库的建表 SQL 去 TiDB 执行,帮用户创建好目标表。当上游的建表 SQL TiDB 不兼容时,DM 使用该 SQL 帮用户创建目标表会失败,导致 DM 任务中断。这时候用户可以提前在 TiDB 手动创建好目标表,DM 检查到已存在的目标表时会忽略掉这个建表 SQL 报错,让全量迁移任务继续运行。 - - [用户文档](https://github.com/pingcap/docs-cn/pull/11718) + - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + TiDB Lightning From 5e294ab8d96251c2a5427b78c1410f5ddc6a6e65 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Fri, 11 Nov 2022 14:46:14 +0800 Subject: [PATCH 064/105] address comment --- releases/release-6.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 7aa0c920b698..8649e7e14c2f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -207,11 +207,11 @@ TiDB 版本:6.4.0-DMR ### 数据迁移 -* 支持迁移过程中对目标表增加扩展列并进行赋值,用于标识上游数据源信息 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 支持迁移过程中对目标表增加的扩展列进行赋值,用于标识上游数据源信息 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** 在上游分库分表合并到 TiDB 的场景,你可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会包含上游分库分表的名称。在一些数据异常的场景,你可以通过该功能快速定位目标表的问题数据源信息,如该数据来自上游哪个分库,哪个分表。 - 更多信息,请参考[用户文档](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 + 更多信息,请参考[提取分库分表数据源信息写入合表](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 * 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** @@ -225,7 +225,7 @@ TiDB 版本:6.4.0-DMR * 增量迁移任务支持 binlog position 和 GTID 作为选配参数 [#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** - v6.4.0 之前,增量迁移任务需要传入 binlog position 或者 GTID 才能启动,配置复杂。自 v6.4.0 起,如果只需要执行增量迁移任务,则可以不指定 binlog position 或者 GTID 的参数取值,DM 将默认按任务的启动时间从上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了使用时的理解成本和配置复杂度。 + v6.4.0 之前,只配置增量迁移任务时,也需要传入 binlog position 或者 GTID 才能启动任务,配置复杂。自 v6.4.0 起,如果只需要执行增量迁移任务,则可以不指定 binlog position 或者 GTID 的参数取值,DM 将默认按任务的启动时间从上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了使用时的理解成本和配置复杂度。 更多信息,请参考 [DM 任务完整配置文件介绍](/dm/task-configuration-file-full.md)。 From 537e5d84b7a524483fab16549a01f0ffef9ea648 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 11 Nov 2022 16:58:03 +0800 Subject: [PATCH 065/105] Apply suggestions from code review --- releases/release-6.4.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 8649e7e14c2f..de740640af7d 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -12,7 +12,7 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: -- 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 +- 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点 - 支持 TiDB 全局内存限制 - TiDB 分区表兼容 Linear Hash 分区。 - 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 @@ -37,9 +37,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-alter-table-compact.md#对分区表中指定分区的-tiflash-副本进行数据整理) -* 支持通过 FLASHBACK CLUSTER 命令将集群快速回退到过去某一个指定的时间点 [#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** +* 支持通过 `FLASHBACK CLUSTER TO TIMESTAMP` 命令将集群快速回退到特定的时间点(实验特性)[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** - FLASHBACK CLUSTER 支持在 Garbage Collection (GC) life time 时间内,快速回退整个集群到指定的时间点。使用该特性可以轻松快速撤消 DML 误操作,例如,用户误执行了没有 WHERE 子句的 DELETE,FLASHBACK CLUSTER 能够在几分钟内回退原数据库集群到指点时间点。该特性不依赖于数据库备份,支持在时间线上反复回退以确定特定数据更改发生的时间。FLASHBACK CLUSTER 不能替代数据库备份。 + `FLASHBACK CLUSTER TO TIMESTAMP` 支持在 Garbage Collection (GC) life time 内快速回退整个集群到指定的时间点。使用该特性可以快速撤消 DML 误操作。例如,在误执行了没有 `WHERE` 子句的 `DELETE` 后,使用 `FLASHBACK CLUSTER TO TIMESTAMP` 能够在几分钟内将集群数据恢复到指定的时间点。该特性不依赖于数据库备份,并支持在时间线上多次回退以确定特定数据更改发生的时间。需要注意的是,`FLASHBACK CLUSTER TO TIMESTAMP` 不能替代数据库备份。 [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) @@ -85,9 +85,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) -* 增强了 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) **tw@Oreoxmt** +* 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) **tw@Oreoxmt** - 在之前的版本中, TiDB 只在 writechunk 函数中复用 chunk。 在 v6.4.0 版本中,将 chunk 复用机制扩展到执行函数中,通过复用 chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下 SQL 执行效率。目前 Chunk 复用由变量 [`tidb_enable_reuse_chunk`]控制。 + 在之前的版本中,TiDB 只在 `writechunk` 函数中复用 Chunk。TiDB v6.4.0 扩展 Chunk 复用机制到执行函数中,通过复用 Chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下的 SQL 查询执行效率。你可以通过系统变量 [`tidb_enable_reuse_chunk`](/system-variable.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) 来控制是否启用 Chunk 对象复用,默认为开启。 * 引入新的优化器提示 `NO_DECORRELATE` 来控制关联优化的解除 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** From 88efcc17ba360a8561c20339177897cf69767ad3 Mon Sep 17 00:00:00 2001 From: shichun-0415 Date: Fri, 11 Nov 2022 17:29:20 +0800 Subject: [PATCH 066/105] add links for dm key features and fix format --- releases/release-6.4.0.md | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index de740640af7d..38c2988af66d 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -12,8 +12,8 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: -- 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点 -- 支持 TiDB 全局内存限制 +- 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点。 +- 支持 TiDB 全局内存限制。 - TiDB 分区表兼容 Linear Hash 分区。 - 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 - 支持对 JSON 类型中的 Array 数据做范围选择。 @@ -23,8 +23,9 @@ TiDB 版本:6.4.0-DMR - 集群诊断功能 GA。 - TiFlash 静态加密支持国密算法 SM4。 - 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction)。 -- 支持基于 AWS EBS snapshot 的集群备份和恢复。 -- 支持在分库分表合并迁移场景中标记下游表中的记录来自上游哪个分库/分表/数据源。 +- 支持[基于 AWS EBS snapshot 的集群备份和恢复](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot)。 +- 支持在分库分表合并迁移场景中[标记下游表中的数据来自上游哪个分库、分表和数据源](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 + ## 新功能 ### SQL @@ -179,19 +180,19 @@ TiDB 版本:6.4.0-DMR * 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) **tw@qiancai** - 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 + 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 + + - 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。 例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 + - 通过关键字 `last`,你可以指定 Array 中最后一个元素的位置,实现从右到左的位置设定。例如,使用 `$[last-2 to last]` 可以选择 Array 中的最后三个元素。 - - 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。 例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 - - 通过关键字 `last`,你可以指定 Array 中最后一个元素的位置,实现从右到左的位置设定。例如,使用 `$[last-2 to last]` 可以选择 Array 中的最后三个元素。 - 该特性简化了 SQL 的编写过程,进一步提升了 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 * 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** - 在 TiDB v6.4 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 - + 在 TiDB v6.4 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 + 此外,TiDB v6.4 新增了 [USER_ATTRIBUTES](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 - + 这个特性提升了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 ### 备份和恢复 @@ -216,29 +217,29 @@ TiDB 版本:6.4.0-DMR * 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** 为了使数据迁移任务顺利进行,DM 在启动迁移任务时会自动触发[任务前置检查](/dm/dm-precheck.md),并返回检查结果。只有当前置检查通过后,DM 才开始执行迁移任务。 - + 在 v6.4.0,DM 将如下三个检查项由必须通过项改为非必须通过项,提升了前置检查通过率: - + - 检查字符集是否存在兼容性差异 - 检查上游表中是否存在主键或唯一键约束 - 数据库主从配置,上游数据库必须设置数据库 ID `server_id` * 增量迁移任务支持 binlog position 和 GTID 作为选配参数 [#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** - v6.4.0 之前,只配置增量迁移任务时,也需要传入 binlog position 或者 GTID 才能启动任务,配置复杂。自 v6.4.0 起,如果只需要执行增量迁移任务,则可以不指定 binlog position 或者 GTID 的参数取值,DM 将默认按任务的启动时间从上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了使用时的理解成本和配置复杂度。 - + v6.4.0 之前,只配置增量迁移任务时,需要传入 binlog position 或者 GTID 才能启动任务,配置复杂,用户理解成本高。自 v6.4.0 起,如果只需要执行增量迁移任务,则可以不指定 binlog position 或者 GTID 的参数取值,DM 将默认按任务的启动时间从上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了使用时的理解成本和配置复杂度。 + 更多信息,请参考 [DM 任务完整配置文件介绍](/dm/task-configuration-file-full.md)。 * DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) **tw@shichun-0415** DM 数据迁移任务提供了性能指标和进度指标,方便用户了解和把控当前任务进度,同时为问题排查提供参考信息。 - - 在 v6.4.0,DM 新增了几个状态信息,可以方便用户更直观了解迁移性能和进度: - + + 在 v6.4.0,DM 新增了几个状态信息,方便用户更直观了解迁移性能和进度: + * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes/s。 * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second)。 * 新增了 DM 全量任务数据导出的进度展示。 - + 关于这些指标的详细介绍,请参考 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 ### 数据共享与订阅 From 6e4262206b8e939c079ed9c2ebc7f28caaa5f9c2 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 11 Nov 2022 18:16:03 +0800 Subject: [PATCH 067/105] Update releases/release-6.4.0.md Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 38c2988af66d..ea1230552357 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -378,10 +378,11 @@ TiDB 版本:6.4.0-DMR - 修复 CTE 在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控 transaction region num panel 信息不准确问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](github.com/jackysp) - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) -- 修复了条件在某些场景下被错误下推 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) -- 修复了 `AND` `OR` 条件的 `isNullRejected` 的错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) -- 修复了外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `order by` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) -- 修复了错误下推的条件被 join reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + - 修复了条件在某些场景下被错误下推 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) + - 修复了 `AND` `OR` 条件的 `isNullRejected` 的错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) + - 修复了外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `order by` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) + - 修复了错误下推的条件被 join reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + + TiKV - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) From 18bd9120c7300848c211083b9cf8700b86fdf823 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Sun, 13 Nov 2022 15:50:57 +0800 Subject: [PATCH 068/105] update descriptions of system variables and configuration parameters --- releases/release-6.4.0.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ea1230552357..84f12b07486a 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -257,17 +257,17 @@ TiDB 版本:6.4.0-DMR | [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。 | | [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。 | | [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 默认值为 `OFF`。当此变量设置为 `ON` 时,TiDB 会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定时间戳前的历史数据。 | -| [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。 | +| [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | | [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | | [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | | [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存。| | [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值为 `0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | -| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | +| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。 | | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | | [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | | [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量默认开启,用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。 | | [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。 | -| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | +| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。| | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | | [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 这个变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | @@ -275,7 +275,9 @@ TiDB 版本:6.4.0-DMR | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | -| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 默认值从 `INT_ONLY` 修改为 `ON`。 | +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| +| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,代表表的主键默认使用聚簇索引。 | +| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | ### 配置文件参数 @@ -287,7 +289,7 @@ TiDB 版本:6.4.0-DMR | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| | TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| | TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| -| TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。 | +| TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。默认值为 32KiB。 | | TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | | TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| | PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 50ms。 | From f3ca4f502c814e8a3accd113ae73a59f5c5ebbe5 Mon Sep 17 00:00:00 2001 From: qiancai Date: Sun, 13 Nov 2022 23:09:18 +0800 Subject: [PATCH 069/105] update variables and configuration file changes --- releases/release-6.4.0.md | 42 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 84f12b07486a..ebec6ef72acb 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -254,44 +254,44 @@ TiDB 版本:6.4.0-DMR | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。 | -| [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。 | -| [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 默认值为 `OFF`。当此变量设置为 `ON` 时,TiDB 会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定时间戳前的历史数据。 | +| [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。默认值为 `OFF`。 | +| [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。默认值为 `1`。 | +| [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定的时间戳前的历史数据。默认值为 `OFF`。 | | [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | | [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | -| [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | -| [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存。| +| [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存,默认为 `ON`。| | [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值为 `0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | -| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。 | +| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。默认值为 `0.6`。 | | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | -| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | -| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量默认开启,用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。 | -| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 `0` 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围。 | -| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。 | -| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 `tidb_server_memory_limit` 值 \* `tidb_server_memory_limit_gc_trigger` 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。| -| [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。 | +| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。默认为 `ON`。 | +| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864 (64 MiB)`。 | +| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | +| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值(实验特性)。默认值为 `70%`。| +| [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MB)。 | | [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 这个变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | +| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,代表表的主键默认使用聚簇索引。 | +| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | +| [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | +| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| -| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,代表表的主键默认使用聚簇索引。 | -| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | +| TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置不再生效。| +| TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| | TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值。 | -| TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。配置过大会增加 OOM 的风险。 | -| TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。配置过大会增加 OOM 的风险。 | -| TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置项在 v6.4.0 之前的版本中用于控制系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值,自 v6.4.0 起被废弃。| -| TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项自 v6.4.0 起被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| -| TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | TiKV 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| -| TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,这是个软限制。默认值为 32KiB。 | +| TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。 | +| TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。 | +| TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 该配置不再生效。| +| TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| +| TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,默认值为 32KiB。 这是个软限制。| | TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | -| TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 废弃对 RawKV 的 Resolved TS 进行异常检测的阈值。| | PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 50ms。 | | TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | | DM | [`routes.route-rule-1.extract-table`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中分表的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | From 591136a2e8549467b241b7ba4c7ae05f277f7114 Mon Sep 17 00:00:00 2001 From: qiancai Date: Sun, 13 Nov 2022 23:32:15 +0800 Subject: [PATCH 070/105] updated the variables and configuration file parameters --- releases/release-6.4.0.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ebec6ef72acb..25d64dba8703 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -252,32 +252,32 @@ TiDB 版本:6.4.0-DMR ### 系统变量 -| 变量名 | 修改类型(包括新增/修改/删除) | 描述 | +| 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。默认值为 `OFF`。 | +| [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 该变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | +| [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 该变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | +| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,表示表的主键默认使用聚簇索引。 | +| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | +| [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 该变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | +| [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | +| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 该变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。v6.4.0 新增了 Global 的作用域。 | +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 该变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| +| [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。默认值为 `OFF`。 | | [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。默认值为 `1`。 | | [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定的时间戳前的历史数据。默认值为 `OFF`。 | -| [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 ON。 | +| [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 `ON`。 | | [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | -| [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存,默认为 `ON`。| +| [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 该变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存,默认为 `ON`。| | [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值为 `0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | -| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。默认值为 `0.6`。 | +| [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。默认值为 `0.6`。 | | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | -| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 这个变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。默认为 `ON`。 | -| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864 (64 MiB)`。 | +| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。默认为 `ON`。 | +| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864`(即 64 MiB)。 | | [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值(实验特性)。默认值为 `70%`。| | [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MB)。 | -| [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 这个变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | -| [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 这个变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | -| [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,代表表的主键默认使用聚簇索引。 | -| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | -| [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | -| [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | -| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。本次增加了 Global 的作用域。 | -| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 这个变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| -| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | -| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| ### 配置文件参数 From 63d0d41cea6131dcc00c4fcadc9419be8d511b4e Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 14 Nov 2022 10:02:54 +0800 Subject: [PATCH 071/105] Apply suggestions from code review --- releases/release-6.4.0.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 25d64dba8703..ec30f345a654 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -350,7 +350,7 @@ TiDB 版本:6.4.0-DMR + Backup & Restore (BR) - - 改进加载元数据的机制,仅在需要的时候才会将元数据加载到内存中,显著减少了 PITR 过程中的内存压力 [#38404](https://github.com/pingcap/tidb/issues/38404) @[YuJuncen](https://github.com/YuJuncen) + - 改进加载元数据的机制,仅在需要时才将元数据加载到内存中,显著减少 PITR 过程中的内存压力 [#38404](https://github.com/pingcap/tidb/issues/38404) @[YuJuncen](https://github.com/YuJuncen) + TiCDC @@ -363,7 +363,7 @@ TiDB 版本:6.4.0-DMR + TiDB Data Migration (DM) - 封装、暴露 Checker 对应的接口,提升各个入口功能组装、调用的灵活性。[#7116](https://github.com/pingcap/tiflow/issues/7116) @[D3Hunter](https://github.com/D3Hunter) - - 移除 dmctl 中无用的 operate-source update 指令。[#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) + - 移除 dmctl 中无用的 `operate-source update` 指令 [#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + TiDB Lightning @@ -409,10 +409,11 @@ TiDB 版本:6.4.0-DMR - 修复 ng-monitoring 丢失 PD 连接后有概率造成 TopSQL 开关无效的问题 [#164](https://github.com/pingcap/ng-monitoring/issues/164) @[zhongzc](https://github.com/zhongzc) + Backup & Restore (BR) - - 修复由于恢复过程中 PD leader 切换,导致恢复失败的问题。[#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) - - 修复了日志备份任务无法 pause 的问题。[#38250](https://github.com/pingcap/tidb/issues/38250)@[joccau](https://github.com/joccau) - - 修复 BR 删除日志备份数据时,会删除不应被删除的数据的问题。[#38939](https://github.com/pingcap/tidb/issues/38939) @[Leavrth](https://github.com/leavrth) - - 修复 BR 第一次执行删除在 `Azure Storage Blob` 或 `Google Cloud Storage` 的日志备份数据时,会执行失败的问题。[#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + + - 修复恢复过程中由于 PD leader 切换导致恢复失败的问题 [#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) + - 修复了无法暂停日志备份任务的问题 [#38250](https://github.com/pingcap/tidb/issues/38250)@[joccau](https://github.com/joccau) + - 修复 BR 删除日志备份数据时,会删除不应被删除的数据的问题 [#38939](https://github.com/pingcap/tidb/issues/38939) @[Leavrth](https://github.com/leavrth) + - 修复 BR 首次删除存储在 Azure Storage Blob 或 Google Cloud Storage 的日志备份数据时执行失败的问题 [#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + TiCDC @@ -426,15 +427,15 @@ TiDB 版本:6.4.0-DMR + TiDB Data Migration (DM) - - 修复 DM UI 产生错误 allow-list 参数问题。[#7096](https://github.com/pingcap/tiflow/issues/7096) @[zoubingwu](https://github.com/zoubingwu) - - 修复 DM Worker 在启动、停止时有一定概率触发 data race 的问题。[#6401](https://github.com/pingcap/tiflow/issues/6401) @[liumengya94](https://github.com/liumengya94) - - 修复当同步 Update、Delete 语句且下游行数据不存在时,DM 静默忽略的问题。[#6383](https://github.com/pingcap/tiflow/issues/6383) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复 Query Status 时 secondsBehindMaster 字段未显示的问题。[#7189](https://github.com/pingcap/tiflow/issues/7189) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复更新 Checkpoint 时可能触发大事务的问题。[#5010](https://github.com/pingcap/tiflow/issues/5010) @[lance6716](https://github.com/lance6716) - - 修复从 full 模式进行入 sync 模式且很快失败时可能丢失上游表结构信息的问题。[#7159](https://github.com/pingcap/tiflow/issues/7159) @[lance6716](https://github.com/lance6716) - - 修复开启一致性校验(validator)时可能触发死锁的问题。[#7241](https://github.com/pingcap/tiflow/issues/7241) @[buchuitoudegou](https://github.com/buchuitoudegou) - - 修复任务预检查对 INFORMATION_SCHEMA 表需要 SELECT 权限的问题。[#7317](https://github.com/pingcap/tiflow/issues/7317) @[lance6716](https://github.com/lance6716) - - 修复空 TLS 配置导致直接报错的问题。[#7384](https://github.com/pingcap/tiflow/issues/7384) @[liumengya94](https://github.com/liumengya94) + - 修复 DM WebUI 产生错误 `allow-list` 参数的问题 [#7096](https://github.com/pingcap/tiflow/issues/7096) @[zoubingwu](https://github.com/zoubingwu) + - 修复 DM Worker 在启动、停止时有一定概率触发 data race 的问题 [#6401](https://github.com/pingcap/tiflow/issues/6401) @[liumengya94](https://github.com/liumengya94) + - 修复当同步 `UPDATE`、`DELETE` 语句且下游行数据不存在时,DM 静默忽略的问题 [#6383](https://github.com/pingcap/tiflow/issues/6383) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复 Query Status 时 `secondsBehindMaster` 字段未显示的问题 [#7189](https://github.com/pingcap/tiflow/issues/7189) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复更新 Checkpoint 时可能触发大事务的问题 [#5010](https://github.com/pingcap/tiflow/issues/5010) @[lance6716](https://github.com/lance6716) + - 修复在全量任务模式下,任务进入 sync 阶段且立刻失败时,DM 可能丢失上游表结构信息的问题 [#7159](https://github.com/pingcap/tiflow/issues/7159) @[lance6716](https://github.com/lance6716) + - 修复开启一致性校验时可能触发死锁的问题 [#7241](https://github.com/pingcap/tiflow/issues/7241) @[buchuitoudegou](https://github.com/buchuitoudegou) + - 修复任务预检查对 `INFORMATION_SCHEMA` 表需要 `SELECT` 权限的问题 [#7317](https://github.com/pingcap/tiflow/issues/7317) @[lance6716](https://github.com/lance6716) + - 修复空的 TLS 配置导致报错的问题 [#7384](https://github.com/pingcap/tiflow/issues/7384) @[liumengya94](https://github.com/liumengya94) + TiDB Lightning From 7eafaed28ecac2c4ffd5242cd2aa1ac2c8054814 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Nov 2022 10:40:03 +0800 Subject: [PATCH 072/105] add compatibility warning of FLASHBACK Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ec30f345a654..77adeb5bfbac 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -12,7 +12,7 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: -- 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点。 +- 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点 (实验特性)。 - 支持 TiDB 全局内存限制。 - TiDB 分区表兼容 Linear Hash 分区。 - 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 @@ -42,6 +42,8 @@ TiDB 版本:6.4.0-DMR `FLASHBACK CLUSTER TO TIMESTAMP` 支持在 Garbage Collection (GC) life time 内快速回退整个集群到指定的时间点。使用该特性可以快速撤消 DML 误操作。例如,在误执行了没有 `WHERE` 子句的 `DELETE` 后,使用 `FLASHBACK CLUSTER TO TIMESTAMP` 能够在几分钟内将集群数据恢复到指定的时间点。该特性不依赖于数据库备份,并支持在时间线上多次回退以确定特定数据更改发生的时间。需要注意的是,`FLASHBACK CLUSTER TO TIMESTAMP` 不能替代数据库备份。 + 在执行 `FLASHBACK CLUSTER TO TIMESTAMP` 之前,需要暂停 PITR 和 TiCDC 等工具上运行的同步任务,待 `FLASHBACK` 执行完成后再启动,否则会造成同步失败等问题。 + [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) * 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** From f8812f8b0d8fe78dadc9f67a40ca05c60ee6cc95 Mon Sep 17 00:00:00 2001 From: shichun-0415 Date: Mon, 14 Nov 2022 11:33:33 +0800 Subject: [PATCH 073/105] refine the description of a dm feature and a dm improvement --- releases/release-6.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 77adeb5bfbac..15293d76d7a8 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -210,7 +210,7 @@ TiDB 版本:6.4.0-DMR ### 数据迁移 -* 支持迁移过程中对目标表增加的扩展列进行赋值,用于标识上游数据源信息 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 支持将上游数据源信息以扩展列形式写入下游合表 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** 在上游分库分表合并到 TiDB 的场景,你可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会包含上游分库分表的名称。在一些数据异常的场景,你可以通过该功能快速定位目标表的问题数据源信息,如该数据来自上游哪个分库,哪个分表。 @@ -366,7 +366,7 @@ TiDB 版本:6.4.0-DMR - 封装、暴露 Checker 对应的接口,提升各个入口功能组装、调用的灵活性。[#7116](https://github.com/pingcap/tiflow/issues/7116) @[D3Hunter](https://github.com/D3Hunter) - 移除 dmctl 中无用的 `operate-source update` 指令 [#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) - - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题,当上游的建表 SQL TiDB 不兼容时,用户可以提前在 TiDB 手动创建好目标表,让全量迁移任务继续运行 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + TiDB Lightning From 64d5b981acf615b5f7495958f77eace24a8ea715 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 14 Nov 2022 13:25:20 +0800 Subject: [PATCH 074/105] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-6.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 15293d76d7a8..f14dd501a127 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -415,7 +415,7 @@ TiDB 版本:6.4.0-DMR - 修复恢复过程中由于 PD leader 切换导致恢复失败的问题 [#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) - 修复了无法暂停日志备份任务的问题 [#38250](https://github.com/pingcap/tidb/issues/38250)@[joccau](https://github.com/joccau) - 修复 BR 删除日志备份数据时,会删除不应被删除的数据的问题 [#38939](https://github.com/pingcap/tidb/issues/38939) @[Leavrth](https://github.com/leavrth) - - 修复 BR 首次删除存储在 Azure Storage Blob 或 Google Cloud Storage 的日志备份数据时执行失败的问题 [#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + - 修复 BR 首次删除存储在 Azure Blob Storage 或 Google Cloud Storage 的日志备份数据时执行失败的问题 [#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + TiCDC @@ -430,9 +430,9 @@ TiDB 版本:6.4.0-DMR + TiDB Data Migration (DM) - 修复 DM WebUI 产生错误 `allow-list` 参数的问题 [#7096](https://github.com/pingcap/tiflow/issues/7096) @[zoubingwu](https://github.com/zoubingwu) - - 修复 DM Worker 在启动、停止时有一定概率触发 data race 的问题 [#6401](https://github.com/pingcap/tiflow/issues/6401) @[liumengya94](https://github.com/liumengya94) + - 修复 DM-worker 在启动、停止时有一定概率触发 data race 的问题 [#6401](https://github.com/pingcap/tiflow/issues/6401) @[liumengya94](https://github.com/liumengya94) - 修复当同步 `UPDATE`、`DELETE` 语句且下游行数据不存在时,DM 静默忽略的问题 [#6383](https://github.com/pingcap/tiflow/issues/6383) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复 Query Status 时 `secondsBehindMaster` 字段未显示的问题 [#7189](https://github.com/pingcap/tiflow/issues/7189) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复运行 `query-status` 命令后未显示 `secondsBehindMaster` 字段的问题 [#7189](https://github.com/pingcap/tiflow/issues/7189) @[GMHDBJD](https://github.com/GMHDBJD) - 修复更新 Checkpoint 时可能触发大事务的问题 [#5010](https://github.com/pingcap/tiflow/issues/5010) @[lance6716](https://github.com/lance6716) - 修复在全量任务模式下,任务进入 sync 阶段且立刻失败时,DM 可能丢失上游表结构信息的问题 [#7159](https://github.com/pingcap/tiflow/issues/7159) @[lance6716](https://github.com/lance6716) - 修复开启一致性校验时可能触发死锁的问题 [#7241](https://github.com/pingcap/tiflow/issues/7241) @[buchuitoudegou](https://github.com/buchuitoudegou) From d74148e4ee7ed1eed1d4db8385a1dd0820e4e937 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 14 Nov 2022 15:05:44 +0800 Subject: [PATCH 075/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index f14dd501a127..a7deb77cae7f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -132,7 +132,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) -* 支持统计信息的同步加载(GA特性)[#38841](https://github.com/pingcap/tidb/pull/38841) @[chrysan](https://github.com/chrysan) +* 支持统计信息的同步加载(GA特性)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) **tw@ran-huang** v6.4.0 TiDB 正式打开了统计信息同步加载的特性(默认开启),支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性 From f991d771bb877fb6048e2dd6eaed4fcbae44ae15 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Nov 2022 16:28:56 +0800 Subject: [PATCH 076/105] Apply suggestions from code review --- releases/release-6.4.0.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a7deb77cae7f..a5083a90c6f8 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -320,18 +320,17 @@ TiDB 版本:6.4.0-DMR + TiKV - - raftstore 新增 `apply-yield-write-size` 配置项,以限制 raftstore 的最大单轮 Apply 写入的数据大小,减缓 raftstore 线程在 Apply 写入过大时的阻塞现象。[#13594](https://github.com/tikv/tikv/pull/13594) @[glorv](https://github.com/glorv) - - 为 Region 的 Leader 迁移前增加缓存预热阶段,减缓 Leader 迁移时造成QPS剧烈抖动现象。[#13556](https://github.com/tikv/tikv/pull/13556) @[cosven](https://github.com/cosven) - - 新增支持将 `json_contains` 算子下推至 Coprocessor 。[#13592](https://github.com/tikv/tikv/issues/13592) @[lizhenhuan](https://github.com/lizhenhuan) - - 新增对 `CausalTsProvider` 的异步实现 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + - 新增 `apply-yield-write-size` 配置项,以限制 Apply 线程每一轮处理单个状态机写入的数据大小,减缓 Raftstore 线程在 Apply 写入过大时的阻塞现象 [#13594](https://github.com/tikv/tikv/pull/13594) @[glorv](https://github.com/glorv) + - 在 Region 的 Leader 迁移前增加缓存预热阶段,减缓 Leader 迁移时造成 QPS 剧烈抖动现象 [#13556](https://github.com/tikv/tikv/pull/13556) @[cosven](https://github.com/cosven) + - 支持将 `json_contains` 算子下推至 Coprocessor [#13592](https://github.com/tikv/tikv/issues/13592) @[lizhenhuan](https://github.com/lizhenhuan) + - 新增 `CausalTsProvider` 的异步实现,提升某些场景下刷盘的性能 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) + PD - - 新增热点调度 rank v2 算法,在特定场景下 `v2` 版本算法则可以在两个维度都取得更好的均衡效果,并减少无效调度 [#5021](https://github.com/tikv/pd/issues/5021) @[HundunDM](https://github.com/hundundm) - - 改进 Operator 超时机制,防止过早超时 [#5596](https://github.com/tikv/pd/issues/5596) @[bufferflies](https://github.com/bufferflies) - - 新增 Placement rule 支持 witness [#5568](https://github.com/tikv/pd/issues/5568) @[ethercflow](https://github.com/ethercflow) + - 热点均衡调度器 v2 版本算法成为正式功能,在特定场景下 v2 版本算法可以在配置的两个维度均取得更好的均衡效果,并减少无效调度 [#5021](https://github.com/tikv/pd/issues/5021) @[HundunDM](https://github.com/hundundm) + - 改进 Operator step 超时机制,防止过早超时 [#5596](https://github.com/tikv/pd/issues/5596) @[bufferflies](https://github.com/bufferflies) - 优化调度器在大集群下的性能 [#5473](https://github.com/tikv/pd/issues/5473)@[bufferflies](https://github.com/bufferflies) - - 支持 external timestamp [#5637](https://github.com/tikv/pd/issues/5637) @[lhy1024](https://github.com/lhy1024) + - 支持使用非 PD 提供的外部时间戳 [#5637](https://github.com/tikv/pd/issues/5637) @[lhy1024](https://github.com/lhy1024) + TiFlash @@ -389,15 +388,15 @@ TiDB 版本:6.4.0-DMR + TiKV - - 修复了当环境中存在多个 `cgroup`s 和 `mountinfo`s 时的启动异常问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) - - 修复 tikv 监控 tikv_gc_compaction_filtered 表达式错误问题 [#13537](https://github.com/tikv/tikv/issues/13537) - - 修复了 `delete_files_in_range` 中存在的异常而导致的性能问题 [#13534](https://github.com/tikv/tikv/issues/13534) @[tabokie](https://github.com/tabokie) - - 修复了获取 Snapshot 时 Lease 过期而引发的异常竞争问题 [#13553](https://github.com/tikv/tikv/issues/13553) @[SpadeA-Tang](https://github.com/SpadeA-Tang) - - 修复了第一次 FlashBack 失败时存在异常的问题 [#13695](https://github.com/tikv/tikv/issues/13695) @[HuSharp](https://github.com/HuSharp) + - 修 Gitpod 环境中存在多个 `cgroup` 和 `mountinfo` 时 TiDB 启动异常的问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) + - 修复 TiKV 监控 `tikv_gc_compaction_filtered` 表达式错误的问题 [#13537](https://github.com/tikv/tikv/issues/13537) + - 修复 `delete_files_in_range` 存在异常导致的性能问题 [#13534](https://github.com/tikv/tikv/issues/13534) @[tabokie](https://github.com/tabokie) + - 修复获取 Snapshot 时 Lease 过期引发的异常竞争问题 [#13553](https://github.com/tikv/tikv/issues/13553) @[SpadeA-Tang](https://github.com/SpadeA-Tang) + - 修复第一次 `FLASHBACK` 失败时存在异常的问题 [#13672](https://github.com/tikv/tikv/issues/13672) [#13704](https://github.com/tikv/tikv/issues/13704) [#13723](https://github.com/tikv/tikv/issues/13723) @[HuSharp](https://github.com/HuSharp) + PD - - 修复 Stream 超时问题,加速 Leader 切换的速度 [#5207](https://github.com/tikv/pd/issues/5207) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 Stream 超时问题,提高 Leader 切换的速度 [#5207](https://github.com/tikv/pd/issues/5207) @[CabinfeverB](https://github.com/CabinfeverB) + TiFlash From 5d8a00d61b0009bd65ebf48deb03672c8ca0ca5b Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 14 Nov 2022 16:30:05 +0800 Subject: [PATCH 077/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a5083a90c6f8..7548cce71061 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -375,16 +375,16 @@ TiDB 版本:6.4.0-DMR + TiDB - - 修复新建索引之后有可能导致的数据索引不一致的问题 [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) - - 修复关于 `information_schema.TIKV_REGION_STATUS` 表的权限问题 [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) - - 修复 CTE 在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - - 修复 CTE 在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - - 修复监控 transaction region num panel 信息不准确问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](github.com/jackysp) + - 修复新建索引之后有可能导致数据索引不一致的问题 [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) + - 修复 `information_schema.TIKV_REGION_STATUS` 表的权限问题 [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 修复公共表表达式在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) + - 修复公共表表达式在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) + - 修复监控面板 **transaction region num** 信息不准确的问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](https://github.com/jackysp) - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) - - 修复了条件在某些场景下被错误下推 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) - - 修复了 `AND` `OR` 条件的 `isNullRejected` 的错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) - - 修复了外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `order by` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) - - 修复了错误下推的条件被 join reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + - 修复了条件在某些场景下被错误下推至 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) + - 修复了 `AND` 和 `OR` 条件的 `isNullRejected` 检查错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) + - 修复了外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `ORDER BY` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) + - 修复了错误下推的条件被 Join Reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + TiKV From 65dc9b4458c0da52dcdb5a2e92b053fa03df8aaf Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 14 Nov 2022 16:31:17 +0800 Subject: [PATCH 078/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 7548cce71061..e9df1c9c775c 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -312,8 +312,8 @@ TiDB 版本:6.4.0-DMR + TiDB - - `mysql.tables_priv` 表中新增了 `grantor` 字段 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - - 允许修改系统变量 `lc_messages` [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) + - 在 `mysql.tables_priv` 表中新增 `grantor` 字段 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 允许修改 noop 系统变量 `lc_messages` [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列 [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT` [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) - 内部事务重试使用悲观模式避免重试失败,降低耗时 [#38136](https://github.com/pingcap/tidb/issues/38136) @[jackysp](https://github.com/jackysp) From 629b743b43529ec8a39a5e7e2932e7066c614f03 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Mon, 14 Nov 2022 17:37:37 +0800 Subject: [PATCH 079/105] Apply suggestions from code review --- releases/release-6.4.0.md | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index e9df1c9c775c..47c72bf2c264 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -238,8 +238,8 @@ TiDB 版本:6.4.0-DMR 在 v6.4.0,DM 新增了几个状态信息,方便用户更直观了解迁移性能和进度: - * 增加了 DM 任务当前数据导出、数据导入的性能,单位 bytes/s。 - * 将当前 DM 写入目标库的性能指标命名 从 TPS 改为 RPS (rows/second)。 + * 增加了 DM 任务当前数据导出、数据导入的性能指标,单位 bytes/s。 + * 将当前 DM 写入目标库的性能指标命名从 TPS 改为 RPS (rows/second)。 * 新增了 DM 全量任务数据导出的进度展示。 关于这些指标的详细介绍,请参考 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 @@ -248,7 +248,7 @@ TiDB 版本:6.4.0-DMR - TiCDC 支持同步数据到 `3.2.0` 版本的 Kafka [#7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) **tw@shichun-0415** - TiCDC 下游可支持的 Kafka 的最高版本从 `3.1.0` 变为 `3.2.0`。你可以通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 + TiCDC 下游支持的 Kafka 最高版本从 `3.1.0` 变为 `3.2.0`。你可以通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 ## 兼容性变更 @@ -357,9 +357,8 @@ TiDB 版本:6.4.0-DMR - TiCDC 支持同步 Exchange Partition DDL [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) - 提升 MQ sink 非 batch 协议的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) - - 提升单表大量 region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) - - 支持 Kafka 3.x 版 [7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) - - 支持 syncpoint 功能与下游 TiDB 集群的 `tidb_enable_external_ts_read` 一起使用 [#7419](https://github.com/pingcap/tiflow/issues/7419) @[asddongmen](https://github.com/asddongmen) + - 提升单表大量 Region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) + - 支持在 Syncpoint 功能开启时在下游 TiDB 集群使用 `tidb_enable_external_ts_read` 来读取历史数据 [#7419](https://github.com/pingcap/tiflow/issues/7419) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) @@ -419,12 +418,12 @@ TiDB 版本:6.4.0-DMR + TiCDC - 修复`changefeed query` 的输出中有`sasl-password` 明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) - - 修复可能向 ETCD 提交过多操作的问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - - 修复 redo log 文件可能被错误删除的问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复在一个 etcd 事务中提交太多数据导致 TiCDC 服务不可用问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复 redo log 文件可能被错误删除的问题 [#6413](https://github.com/pingcap/tiflow/issues/6413) @[asddongmen](https://github.com/asddongmen) - 修复 sink v2 MQ 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) - 修复 checkpoint ts 可能被提前推进的问题 [#7274](https://github.com/pingcap/tiflow/issues/7274) @[hi-rustin](https://github.com/hi-rustin) - - 修改 mounter 模块的日志级以修复 log 打印太多的问题 [#7235](https://github.com/pingcap/tiflow/issues/7235) @[hi-rustin](https://github.com/hi-rustin) - - 修复可能存在两个 owner 的问题 [#4051](https://github.com/pingcap/tiflow/issues/4051) @[asddongmen](https://github.com/asddongmen) + - 修复 mounter 模块的日志级别设置不当导致 log 打印太多的问题 [#7235](https://github.com/pingcap/tiflow/issues/7235) @[hi-rustin](https://github.com/hi-rustin) + - 修复一个 TiCDC 集群可能存在两个 owner 的问题 [#4051](https://github.com/pingcap/tiflow/issues/4051) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) @@ -444,8 +443,8 @@ TiDB 版本:6.4.0-DMR + TiDB Dumpling - - 修复导出大量表时可能导致超时的问题。[#36549](https://github.com/pingcap/tidb/issues/36549) @[lance6716](https://github.com/lance6716) - - 修复加锁模式但是上游不存在对应表时导致加锁报错的问题 [#38683](https://github.com/pingcap/tidb/issues/38683) @[lance6716](https://github.com/lance6716) + - 修复导出大量表时可能导致超时的问题 [#36549](https://github.com/pingcap/tidb/issues/36549) @[lance6716](https://github.com/lance6716) + - 修复加锁模式下,上游不存在对应表时导致加锁报错的问题 [#38683](https://github.com/pingcap/tidb/issues/38683) @[lance6716](https://github.com/lance6716) ## 贡献者 From 433415883473af418366f152bfb8763a6e09bc09 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Nov 2022 17:42:42 +0800 Subject: [PATCH 080/105] refine words Co-authored-by: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> --- releases/release-6.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 47c72bf2c264..e6593f78b23f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -142,7 +142,7 @@ TiDB 版本:6.4.0-DMR 在 v6.1.0 之前,TiKV 的 RawKV 接口仅存储客户端传入的原始数据,因此只提供基本的 Key-Value 读写能力。此外,由于编码方式不同、数据范围没有隔离等,同一个 TiKV 集群中,TiDB、事务 KV、RawKV 无法同时使用,因此对于不同使用方式并存的场景,必须部署多个集群,增加了机器和部署成本。 - TiKV API V2 提供了新的存储格式,包括: + TiKV API V2 提供了新的存储格式,功能亮点如下: * RawKV 数据以 MVCC 方式存储,记录数据的变更时间戳,并在此基础上提供 Change Data Capture 能力(实验特性,见 [TiKV-CDC](https://github.com/tikv/migration/blob/main/cdc/README.md))。 * 数据根据使用方式划分范围,支持单一集群 TiDB、事务 KV、RawKV 应用共存。 @@ -170,9 +170,9 @@ TiDB 版本:6.4.0-DMR [用户文档](/mysql-compatibility.md) -* 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性 (实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** +* 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性(实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** - TiDB v6.4.0 引入了 `AUTO_INCREMENT` 的 MySQL 兼容模式,通过中心化分配自增 ID 的服务实现了自增 ID 在所有 TiDB 实例上单调递增。使用该特性能够更容易地实现查询结果按自增 ID 排序。要使用 MySQL 兼容模式,你需要在建表时将 `AUTO_ID_CACHE` 设置为 `1`。 + TiDB v6.4.0 引入了 `AUTO_INCREMENT` 的 MySQL 兼容模式,通过中心化分配自增 ID,实现了自增 ID 在所有 TiDB 实例上单调递增。使用该特性能够更容易地实现查询结果按自增 ID 排序。要使用 MySQL 兼容模式,你需要在建表时将 `AUTO_ID_CACHE` 设置为 `1`。 ```sql CREATE TABLE t(a int AUTO_INCREMENT key) AUTO_ID_CACHE 1; From 66f1da66a79adc59046c7cbfc1604d850d6919f5 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 15 Nov 2022 10:22:21 +0800 Subject: [PATCH 081/105] Apply suggestions from code review --- releases/release-6.4.0.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index e6593f78b23f..720918218e05 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -290,10 +290,10 @@ TiDB 版本:6.4.0-DMR | TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值。 | | TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。 | | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。 | -| TiKV | [`raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 该配置不再生效。| -| TiKV | [`alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| -| TiKV | [`apply-yield-write-size`](#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,默认值为 32KiB。 这是个软限制。| -| TiKV | [`renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | +| TiKV | [`cdc.raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 该配置不再生效。| +| TiKV | [`causal-ts.alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| +| TiKV | [`causal-ts.renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | +| TiKV | [`raftstore.apply-yield-write-size`](/tikv-configuration-file.md#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,默认值为 32KiB。 这是个软限制。| | PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 50ms。 | | TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | | DM | [`routes.route-rule-1.extract-table`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中分表的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | @@ -334,18 +334,15 @@ TiDB 版本:6.4.0-DMR + TiFlash - - 重构了 MPP 的错误处理逻辑 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) - - 优化了 Block Sort 以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) - - 优化了编解码的内存使用和去除冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) - - 重构了 MPP 的错误处理逻辑 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) - - 优化了 Block Sort 以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) - - 优化了编解码的内存使用和去除冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) + - 重构了 TiFlash MPP 的错误处理流程,进一步提升了 MPP 的稳定性 [#5095](https://github.com/pingcap/tiflash/issues/5095) @[windtalker](https://github.com/windtalker) + - 优化了 TiFlash 计算过程中的排序操作,以及对 Join 和 Aggregation 的 Key 的处理 [#5294](https://github.com/pingcap/tiflash/issues/5294) @[solotzg](https://github.com/solotzg) + - 优化了 TiFlash 编解码的内存使用,去除了冗余传输列以提升 Join 性能 [#6157](https://github.com/pingcap/tiflash/issues/6157) @[yibin87](https://github.com/yibin87) + Tools + TiDB Dashboard - - Monitoring 页面展示 TiFlash 相关指标,并且优化指标的展示方式 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) + - 支持在 Monitoring 页面展示 TiFlash 相关指标,并且优化了该页面指标的展示方式 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) @@ -368,7 +365,7 @@ TiDB 版本:6.4.0-DMR + TiDB Lightning - - 优化文件扫描逻辑,提升 Schema 类型文件的扫描速度。[#38598](https://github.com/pingcap/tidb/issues/38598) @[dsdashun](https://github.com/dsdashun) + - 优化文件扫描逻辑,提升 Schema 类型文件的扫描速度 [#38598](https://github.com/pingcap/tidb/issues/38598) @[dsdashun](https://github.com/dsdashun) ## 错误修复 @@ -399,14 +396,14 @@ TiDB 版本:6.4.0-DMR + TiFlash - - 修复由于 PageStorage GC 未能正确清楚 Page 删除标记引起的 WAL 文件过大从而导致 OOM 的问题 [#6163](https://github.com/pingcap/tiflash/issues/6163) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复由于 PageStorage GC 未能正确清除 Page 删除标记导致 WAL 文件过大从而引发的 OOM 的问题 [#6163](https://github.com/pingcap/tiflash/issues/6163) @[JaySon-Huang](https://github.com/JaySon-Huang) + Tools + TiDB Dashboard - - 避免查询 Statement 执行计划的时候造成 TiDB OOM [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) - - 修复 ng-monitoring 丢失 PD 连接后有概率造成 TopSQL 开关无效的问题 [#164](https://github.com/pingcap/ng-monitoring/issues/164) @[zhongzc](https://github.com/zhongzc) + - 修复查询某些复杂 SQL 语句的执行计划时 TiDB OOM 的问题 [#1386](https://github.com/pingcap/tidb-dashboard/issues/1386) @[baurine](https://github.com/baurine) + - 修复 NgMonitoring 丢失对 PD 节点的连接时可能导致 Top SQL 开关无效的问题 [#164](https://github.com/pingcap/ng-monitoring/issues/164) @[zhongzc](https://github.com/zhongzc) + Backup & Restore (BR) From 58f4ebe5deeafbb0e55745ddc64330af50a2fb35 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 15 Nov 2022 11:38:40 +0800 Subject: [PATCH 082/105] apply suggestions from code review --- releases/release-6.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 720918218e05..7aa0801087cd 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -90,7 +90,7 @@ TiDB 版本:6.4.0-DMR * 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) **tw@Oreoxmt** - 在之前的版本中,TiDB 只在 `writechunk` 函数中复用 Chunk。TiDB v6.4.0 扩展 Chunk 复用机制到执行函数中,通过复用 Chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下的 SQL 查询执行效率。你可以通过系统变量 [`tidb_enable_reuse_chunk`](/system-variable.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) 来控制是否启用 Chunk 对象复用,默认为开启。 + 在之前的版本中,TiDB 只在 `writechunk` 函数中复用 Chunk。TiDB v6.4.0 扩展 Chunk 复用机制到 Executor 的算子中,通过复用 Chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下的 SQL 查询执行效率。你可以通过系统变量 [`tidb_enable_reuse_chunk`](/system-variable.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) 来控制是否启用 Chunk 对象复用,默认为开启。 * 引入新的优化器提示 `NO_DECORRELATE` 来控制关联优化的解除 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** @@ -320,8 +320,8 @@ TiDB 版本:6.4.0-DMR + TiKV - - 新增 `apply-yield-write-size` 配置项,以限制 Apply 线程每一轮处理单个状态机写入的数据大小,减缓 Raftstore 线程在 Apply 写入过大时的阻塞现象 [#13594](https://github.com/tikv/tikv/pull/13594) @[glorv](https://github.com/glorv) - - 在 Region 的 Leader 迁移前增加缓存预热阶段,减缓 Leader 迁移时造成 QPS 剧烈抖动现象 [#13556](https://github.com/tikv/tikv/pull/13556) @[cosven](https://github.com/cosven) + - 新增 `apply-yield-write-size` 配置项,以限制 Apply 线程每一轮处理单个状态机写入的数据大小,缓解 Raftstore 线程在 Apply 写入过大时的阻塞现象 [#13313](https://github.com/tikv/tikv/issues/13313) @[glorv](https://github.com/glorv) + - 在 Region 的 Leader 迁移前增加缓存预热阶段,缓解 Leader 迁移时造成的 QPS 剧烈抖动 [#13060](https://github.com/tikv/tikv/issues/13060) @[cosven](https://github.com/cosven) - 支持将 `json_contains` 算子下推至 Coprocessor [#13592](https://github.com/tikv/tikv/issues/13592) @[lizhenhuan](https://github.com/lizhenhuan) - 新增 `CausalTsProvider` 的异步实现,提升某些场景下刷盘的性能 [#13428](https://github.com/tikv/tikv/issues/13428) @[zeminzhou](https://github.com/zeminzhou) @@ -385,7 +385,7 @@ TiDB 版本:6.4.0-DMR + TiKV - 修 Gitpod 环境中存在多个 `cgroup` 和 `mountinfo` 时 TiDB 启动异常的问题 [#13660](https://github.com/tikv/tikv/issues/13660) @[tabokie](https://github.com/tabokie) - - 修复 TiKV 监控 `tikv_gc_compaction_filtered` 表达式错误的问题 [#13537](https://github.com/tikv/tikv/issues/13537) + - 修复 TiKV 监控 `tikv_gc_compaction_filtered` 表达式错误的问题 [#13537](https://github.com/tikv/tikv/issues/13537) @[Defined2014](https://github.com/Defined2014) - 修复 `delete_files_in_range` 存在异常导致的性能问题 [#13534](https://github.com/tikv/tikv/issues/13534) @[tabokie](https://github.com/tabokie) - 修复获取 Snapshot 时 Lease 过期引发的异常竞争问题 [#13553](https://github.com/tikv/tikv/issues/13553) @[SpadeA-Tang](https://github.com/SpadeA-Tang) - 修复第一次 `FLASHBACK` 失败时存在异常的问题 [#13672](https://github.com/tikv/tikv/issues/13672) [#13704](https://github.com/tikv/tikv/issues/13704) [#13723](https://github.com/tikv/tikv/issues/13723) @[HuSharp](https://github.com/HuSharp) From 43614ebd8e7d866783d46208459a63f37c3261d9 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Tue, 15 Nov 2022 13:54:58 +0800 Subject: [PATCH 083/105] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 7aa0801087cd..7b3c50637d8f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -66,7 +66,7 @@ TiDB 版本:6.4.0-DMR [集群诊断功能](/dashboard/dashboard-diagnostics-access.md)是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个[诊断报告](/dashboard/dashboard-diagnostics-report.md)。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 - 用户可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若用户的集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 + 你可以通过该报告快速了解集群内的基本诊断信息,包括负载、组件、耗时和配置信息。若集群存在一些常见问题,在[诊断信息](/dashboard/dashboard-diagnostics-report.md#诊断信息)部分可以了解 TiDB 内置自动诊断的结果。 ### 性能 @@ -212,7 +212,7 @@ TiDB 版本:6.4.0-DMR * 支持将上游数据源信息以扩展列形式写入下游合表 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** - 在上游分库分表合并到 TiDB 的场景,你可以在目标表手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值,如赋予上游分库分表的名称,则通过 DM 写入到下游的记录会包含上游分库分表的名称。在一些数据异常的场景,你可以通过该功能快速定位目标表的问题数据源信息,如该数据来自上游哪个分库,哪个分表。 + 在上游分库分表合并到 TiDB 的场景,你可以在目标表中手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值。例如,当赋予上游分库分表的名称时,通过 DM 写入到下游的记录会包含上游分库分表的名称。在一些数据异常的场景,你可以通过该功能快速定位目标表的问题数据源信息,如该数据来自上游哪个分库,哪个分表。 更多信息,请参考[提取分库分表数据源信息写入合表](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 @@ -234,9 +234,7 @@ TiDB 版本:6.4.0-DMR * DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) **tw@shichun-0415** - DM 数据迁移任务提供了性能指标和进度指标,方便用户了解和把控当前任务进度,同时为问题排查提供参考信息。 - - 在 v6.4.0,DM 新增了几个状态信息,方便用户更直观了解迁移性能和进度: + 在 v6.4.0,DM 数据迁移任务新增了一些性能指标和进度指标,方便用户更直观地了解迁移性能和进度,同时为问题排查提供参考信息: * 增加了 DM 任务当前数据导出、数据导入的性能指标,单位 bytes/s。 * 将当前 DM 写入目标库的性能指标命名从 TPS 改为 RPS (rows/second)。 @@ -352,7 +350,7 @@ TiDB 版本:6.4.0-DMR + TiCDC - - TiCDC 支持同步 Exchange Partition DDL [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) + - 支持同步 Exchange Partition 的 DDL 语句 [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) - 提升 MQ sink 非 batch 协议的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) - 提升单表大量 Region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) - 支持在 Syncpoint 功能开启时在下游 TiDB 集群使用 `tidb_enable_external_ts_read` 来读取历史数据 [#7419](https://github.com/pingcap/tiflow/issues/7419) @[asddongmen](https://github.com/asddongmen) @@ -414,7 +412,7 @@ TiDB 版本:6.4.0-DMR + TiCDC - - 修复`changefeed query` 的输出中有`sasl-password` 明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) + - 修复 `changefeed query` 的输出中 `sasl-password` 显示为明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) - 修复在一个 etcd 事务中提交太多数据导致 TiCDC 服务不可用问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - 修复 redo log 文件可能被错误删除的问题 [#6413](https://github.com/pingcap/tiflow/issues/6413) @[asddongmen](https://github.com/asddongmen) - 修复 sink v2 MQ 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) From bc2acd29ce8e86e9021f35beb41a33092c4c6dcb Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Tue, 15 Nov 2022 14:10:45 +0800 Subject: [PATCH 084/105] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 7b3c50637d8f..c3a1adbfac2c 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -351,7 +351,7 @@ TiDB 版本:6.4.0-DMR + TiCDC - 支持同步 Exchange Partition 的 DDL 语句 [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) - - 提升 MQ sink 非 batch 协议的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) + - 提升 MQ sink 模块非攒批发送的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) - 提升单表大量 Region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) - 支持在 Syncpoint 功能开启时在下游 TiDB 集群使用 `tidb_enable_external_ts_read` 来读取历史数据 [#7419](https://github.com/pingcap/tiflow/issues/7419) @[asddongmen](https://github.com/asddongmen) @@ -415,7 +415,7 @@ TiDB 版本:6.4.0-DMR - 修复 `changefeed query` 的输出中 `sasl-password` 显示为明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) - 修复在一个 etcd 事务中提交太多数据导致 TiCDC 服务不可用问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - 修复 redo log 文件可能被错误删除的问题 [#6413](https://github.com/pingcap/tiflow/issues/6413) @[asddongmen](https://github.com/asddongmen) - - 修复 sink v2 MQ 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) + - 修复 Kafka Sink V2 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) - 修复 checkpoint ts 可能被提前推进的问题 [#7274](https://github.com/pingcap/tiflow/issues/7274) @[hi-rustin](https://github.com/hi-rustin) - 修复 mounter 模块的日志级别设置不当导致 log 打印太多的问题 [#7235](https://github.com/pingcap/tiflow/issues/7235) @[hi-rustin](https://github.com/hi-rustin) - 修复一个 TiCDC 集群可能存在两个 owner 的问题 [#4051](https://github.com/pingcap/tiflow/issues/4051) @[asddongmen](https://github.com/asddongmen) From 9da92c8979d2726b614b26425bfd612b2a4fd93c Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 15 Nov 2022 14:36:10 +0800 Subject: [PATCH 085/105] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-6.4.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index c3a1adbfac2c..12b0a92bd20e 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -100,7 +100,7 @@ TiDB 版本:6.4.0-DMR * 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) **tw@TomShawn** - 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。用户可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从 v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 + 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从 v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 事务 @@ -118,7 +118,7 @@ TiDB 版本:6.4.0-DMR * TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** - v6.4.0 引入了全局内存控制(实验特性),对 TiDB 实例的全局内存使用进行追踪。用户可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidbservermemorylimit-span-classversion-mark从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 + v6.4.0 引入了全局内存控制(实验特性),对 TiDB 实例的全局内存使用进行追踪。你可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。同时,TiDB 提供了系统表视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作,帮助用户清晰了解内存使用状况。 @@ -375,10 +375,10 @@ TiDB 版本:6.4.0-DMR - 修复公共表表达式在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控面板 **transaction region num** 信息不准确的问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](https://github.com/jackysp) - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) - - 修复了条件在某些场景下被错误下推至 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) - - 修复了 `AND` 和 `OR` 条件的 `isNullRejected` 检查错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) - - 修复了外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `ORDER BY` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) - - 修复了错误下推的条件被 Join Reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + - 修复条件在某些场景下被错误下推至 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) + - 修复 `AND` 和 `OR` 条件的 `isNullRejected` 检查错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) + - 修复外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `ORDER BY` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) + - 修复错误下推的条件被 Join Reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) + TiKV From 94febe384530952cf162280c240ab428161a55cc Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 15 Nov 2022 15:02:57 +0800 Subject: [PATCH 086/105] Apply suggestions from code review Co-authored-by: Aolin Co-authored-by: Ran Co-authored-by: dsdashun --- releases/release-6.4.0.md | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 12b0a92bd20e..59450c2f3d1f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -13,16 +13,16 @@ TiDB 版本:6.4.0-DMR 在 6.4.0-DMR 版本中,你可以获得以下关键特性: - 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点 (实验特性)。 -- 支持 TiDB 全局内存限制。 -- TiDB 分区表兼容 Linear Hash 分区。 +- 支持对 TiDB 实例的[全局内存使用进行追踪](/configure-memory-usage.md)(实验特性)。 +- TiDB 分区表[兼容 Linear Hash 分区](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 - 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 -- 支持对 JSON 类型中的 Array 数据做范围选择。 +- 支持对 [JSON 类型](/data-type-json)中的 Array 数据做范围选择。 - 磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 -- 增加了动态规划算法来决定表的连接顺序。 -- 引入新的优化器提示 `NO_DECORRELATE` 来控制解关联优化。 -- 集群诊断功能 GA。 -- TiFlash 静态加密支持国密算法 SM4。 -- 支持通过 SQL 语句对指定 Partition 的 TiFlash 副本立即触发物理数据整理 (Compaction)。 +- 新增[动态规划算法](/join-reorder.md#join-reorder-动态规划算法实例)来决定表的连接顺序。 +- 引入新的[优化器提示 `NO_DECORRELATE`](/optimizer-hints.md#no_decorrelate) 来控制关联优化的解除。 +- [集群诊断功能](/dashboard/dashboard-diagnostics-access.md) GA。 +- [TiFlash 静态加密](/encryption-at-rest.md#tiflash)支持国密算法 SM4。 +- 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md)。 - 支持[基于 AWS EBS snapshot 的集群备份和恢复](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot)。 - 支持在分库分表合并迁移场景中[标记下游表中的数据来自上游哪个分库、分表和数据源](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 @@ -32,7 +32,7 @@ TiDB 版本:6.4.0-DMR * 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) **tw@qiancai** - TiDB v6.2.0 发布了针对全表的 TiFlash 副本立即进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact#对表中-tiflash-副本进行数据整理) 的功能,支持用户自行选择合适的时机,手动执行 SQL 语句立即对 TiFlash 中的物理数据进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 细化了 TiFlash 副本数据整理的粒度,支持对表中指定分区的 TiFlash 副本立即进行数据整理。 + TiDB v6.2.0 发布了针对全表的 TiFlash 副本立即进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) 的功能,支持用户自行选择合适的时机,手动执行 SQL 语句立即对 TiFlash 中的物理数据进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 细化了 TiFlash 副本数据整理的粒度,支持对表中指定分区的 TiFlash 副本立即进行数据整理。 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]`,你可以立即对指定分区的 TiFlash 副本进行数据整理。 @@ -76,9 +76,9 @@ TiDB 版本:6.4.0-DMR * 新增动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** - 在之前的版本中,TiDB 采用贪心算法来决定表的连接顺序。 在 v6.4.0 中, 优化器引入了[动态规划算法](join-reorder#join-reorder-动态规划算法实例)。相比贪心算法,动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 + 在之前的版本中,TiDB 采用贪心算法来决定表的连接顺序。在 v6.4.0 中,优化器引入了[动态规划算法](/join-reorder.md#join-reorder-动态规划算法实例)。相比贪心算法,动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 - 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidboptjoinreorderthreshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 + 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidb_opt_join_reorder_threshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 [用户文档](/join-reorder.md) @@ -132,9 +132,11 @@ TiDB 版本:6.4.0-DMR [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) -* 支持统计信息的同步加载(GA特性)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) **tw@ran-huang** +* 支持统计信息的同步加载(GA)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) **tw@ran-huang** - v6.4.0 TiDB 正式打开了统计信息同步加载的特性(默认开启),支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性 + TiDB v6.4.0 起,正式开启了统计信息同步加载的特性(默认开启),支持在执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高优化该 SQL 语句时统计信息的完整性。 + + [用户文档](/system-varaibles.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) ### 易用性 @@ -168,7 +170,7 @@ TiDB 版本:6.4.0-DMR 在 TiDB 上,你可以直接执行原有的 MySQL Linear Hash 分区的 DDL 语句,TiDB 将创建一个相应的 Hash 分区表(注意 TiDB 内部实际不存在 Linear Hash 分区)。你也可以直接执行原有的 MySQL Linear Hash 分区的 DML 语句,TiDB 将正常返回对应的 TiDB Hash 分区的查询结果。此功能保证了 TiDB 对 MySQL Linear Hash 分区的语法兼容,方便基于 MySQL 的应用无缝迁移到 TiDB。 - [用户文档](/mysql-compatibility.md) + [用户文档](/partitioned-table.md#tidb-对-linear-hash-分区的处理) * 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性(实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** @@ -195,7 +197,7 @@ TiDB 版本:6.4.0-DMR 此外,TiDB v6.4 新增了 [USER_ATTRIBUTES](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 - 这个特性提升了 TiDB 对 MySQL 的语法的兼容性, 使得 TiDB 更容易融入 MySQL 生态的工具或平台。 + 这个特性提升了 TiDB 对 MySQL 的语法的兼容性,使得 TiDB 更容易融入 MySQL 生态的工具或平台。 ### 备份和恢复 @@ -341,8 +343,8 @@ TiDB 版本:6.4.0-DMR + TiDB Dashboard - 支持在 Monitoring 页面展示 TiFlash 相关指标,并且优化了该页面指标的展示方式 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) - - 在 Slow Query 列表 和 SQL Statement 列表展示结果行数 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - - 优化 Dashboard 的报错信息。 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + - 支持在 Slow Query 列表 和 SQL Statement 列表展示结果行数 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + - 优化 Dashboard 的报错信息 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + Backup & Restore (BR) @@ -434,7 +436,7 @@ TiDB 版本:6.4.0-DMR + TiDB Lightning - - 修复 Parquet String Column 且 Table 设置了 binary 属性时导致导入性能下降的问题。[#38351](https://github.com/pingcap/tidb/issues/38351) @[dsdashun](https://github.com/dsdashun) + - 修复当导入 Apache Parquet 格式的数据时,如果目标表存在 binary 编码格式的 String 类型列,导入性能下降的问题。[#38351](https://github.com/pingcap/tidb/issues/38351) @[dsdashun](https://github.com/dsdashun) + TiDB Dumpling From b120866660f044b51167da43bd620e9c0f04aa2b Mon Sep 17 00:00:00 2001 From: CbcWestwolf <1004626265@qq.com> Date: Tue, 15 Nov 2022 15:10:00 +0800 Subject: [PATCH 087/105] Update releases/release-6.4.0.md Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 59450c2f3d1f..6cc3ccbeb3fc 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -315,7 +315,6 @@ TiDB 版本:6.4.0-DMR - 在 `mysql.tables_priv` 表中新增 `grantor` 字段 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - 允许修改 noop 系统变量 `lc_messages` [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列 [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) - - `CREATE USER` 和 `ALTER USER` 支持 `ATTRIBUTE` 和 `COMMENT` [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) - 内部事务重试使用悲观模式避免重试失败,降低耗时 [#38136](https://github.com/pingcap/tidb/issues/38136) @[jackysp](https://github.com/jackysp) + TiKV From 678039c13c81d16aafe1f769a3f1b28fa8369036 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 15 Nov 2022 16:20:06 +0800 Subject: [PATCH 088/105] Apply suggestions from code review --- releases/release-6.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 6cc3ccbeb3fc..46b53df9292d 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -16,10 +16,10 @@ TiDB 版本:6.4.0-DMR - 支持对 TiDB 实例的[全局内存使用进行追踪](/configure-memory-usage.md)(实验特性)。 - TiDB 分区表[兼容 Linear Hash 分区](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 - 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 -- 支持对 [JSON 类型](/data-type-json)中的 Array 数据做范围选择。 -- 磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 +- 支持对 [JSON 类型](/data-type-json.md)中的 Array 数据做范围选择。 +- 实现磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 - 新增[动态规划算法](/join-reorder.md#join-reorder-动态规划算法实例)来决定表的连接顺序。 -- 引入新的[优化器提示 `NO_DECORRELATE`](/optimizer-hints.md#no_decorrelate) 来控制关联优化的解除。 +- 引入[新的优化器提示 `NO_DECORRELATE`](/optimizer-hints.md#no_decorrelate) 来控制关联优化的解除。 - [集群诊断功能](/dashboard/dashboard-diagnostics-access.md) GA。 - [TiFlash 静态加密](/encryption-at-rest.md#tiflash)支持国密算法 SM4。 - 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md)。 From abfcebcef1fad1b580a1848be1702d96f07039b9 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Tue, 15 Nov 2022 16:58:17 +0800 Subject: [PATCH 089/105] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-6.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 46b53df9292d..edee3014259c 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -114,7 +114,7 @@ TiDB 版本:6.4.0-DMR * 磁盘故障、I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** - 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障并恢复一直是数据库面临的挑战之一。TiDB v6.4 全面优化了 TiKV 节点的状态检测机制。即使在磁盘故障或 I/O 无响应等极端情况下,TiDB 依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起 Leader 选举,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 + 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障并恢复一直是数据库面临的挑战之一。TiDB v6.4.0 全面优化了 TiKV 节点的状态检测机制。即使在磁盘故障或 I/O 无响应等极端情况下,TiDB 依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起 Leader 选举,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 * TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** @@ -164,7 +164,7 @@ TiDB 版本:6.4.0-DMR ### MySQL 兼容性 -* TiDB 分区表兼容 Linear Hash 分区 [#issue](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) **tw@qiancai** +* TiDB 分区表兼容 Linear Hash 分区 [#38450](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) **tw@qiancai** TiDB 现有的分区方式支持 Hash、Range、List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容。 @@ -201,9 +201,9 @@ TiDB 版本:6.4.0-DMR ### 备份和恢复 -* 基于 AWS EBS snapshot 的集群备份和恢复 [#issue](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) **tw@shichun-0415** +* 基于 AWS EBS snapshot 的集群备份和恢复 [#33849](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) **tw@shichun-0415** - 如果你的 TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 AWS S3: + 如果你的 TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 Amazon S3: - 备份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 From 7ccfbe63aaabf80ca2eabc5ac188c686ab48636b Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 15 Nov 2022 16:59:04 +0800 Subject: [PATCH 090/105] Update releases/release-6.4.0.md Co-authored-by: CbcWestwolf <1004626265@qq.com> --- releases/release-6.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index edee3014259c..a3637ee62bac 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -312,7 +312,6 @@ TiDB 版本:6.4.0-DMR + TiDB - - 在 `mysql.tables_priv` 表中新增 `grantor` 字段 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - 允许修改 noop 系统变量 `lc_messages` [#38231](https://github.com/pingcap/tidb/issues/38231) @[djshow832](https://github.com/djshow832) - 允许 `AUTO_RANDOM` 列作为聚簇复合索引中的第一列 [#38572](https://github.com/pingcap/tidb/issues/38572) @[tangenta](https://github.com/tangenta) - 内部事务重试使用悲观模式避免重试失败,降低耗时 [#38136](https://github.com/pingcap/tidb/issues/38136) @[jackysp](https://github.com/jackysp) From 0afd0cec3e30a9af91b652c58b7841aa3f91cc95 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 15 Nov 2022 17:21:24 +0800 Subject: [PATCH 091/105] Update releases/release-6.4.0.md Co-authored-by: CbcWestwolf <1004626265@qq.com> --- releases/release-6.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index a3637ee62bac..02674fb21043 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -371,6 +371,7 @@ TiDB 版本:6.4.0-DMR - 修复新建索引之后有可能导致数据索引不一致的问题 [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) - 修复 `information_schema.TIKV_REGION_STATUS` 表的权限问题 [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 修复 `mysql.tables_priv` 表中 `grantor` 字段缺失的问题 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - 修复公共表表达式在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - 修复公共表表达式在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控面板 **transaction region num** 信息不准确的问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](https://github.com/jackysp) From 312fd22575c8814d284294b1e60354df08f76615 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 15 Nov 2022 18:56:45 +0800 Subject: [PATCH 092/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 02674fb21043..5da1e5ae9f50 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -302,7 +302,7 @@ TiDB 版本:6.4.0-DMR ### 其他 -- mysql.user 表新增 2 个字段:`User_attributes`、`Token_issuer` +- 从 v6.4.0 开始,`mysql.user` 表新增 2 个字段:`User_attributes`、`Token_issuer`。 如果从 6.4.0 之前版本的备份数据[恢复 mysql schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表) 到 6.4.0 版本集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择[恢复 mysql schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表),则不会报错。 - 针对命名规则符合 Dumpling 表结构和数据格式但后缀名中包含非压缩格式的文件(例如,`test-schema-create.sql.origin` 和 `test.table-schema.sql.xxx`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 From 9d974de467300d9985d581a6113b6465c13f9022 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 16 Nov 2022 09:44:49 +0800 Subject: [PATCH 093/105] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-6.4.0.md | 91 +++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 38 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 5da1e5ae9f50..ca5d55b6128f 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -38,7 +38,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-alter-table-compact.md#对分区表中指定分区的-tiflash-副本进行数据整理) -* 支持通过 `FLASHBACK CLUSTER TO TIMESTAMP` 命令将集群快速回退到特定的时间点(实验特性)[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** +* 支持通过 `FLASHBACK CLUSTER TO TIMESTAMP` 命令将集群快速回退到特定的时间点(实验特性)[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** `FLASHBACK CLUSTER TO TIMESTAMP` 支持在 Garbage Collection (GC) life time 内快速回退整个集群到指定的时间点。使用该特性可以快速撤消 DML 误操作。例如,在误执行了没有 `WHERE` 子句的 `DELETE` 后,使用 `FLASHBACK CLUSTER TO TIMESTAMP` 能够在几分钟内将集群数据恢复到指定的时间点。该特性不依赖于数据库备份,并支持在时间线上多次回退以确定特定数据更改发生的时间。需要注意的是,`FLASHBACK CLUSTER TO TIMESTAMP` 不能替代数据库备份。 @@ -46,7 +46,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) -* 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** +* 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** `FLASHBACK DATABASE` 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速地通过 SQL 语句进行数据和元信息的恢复。 @@ -72,7 +72,7 @@ TiDB 版本:6.4.0-DMR * 引入 Coprocessor Task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** - 随着 Coprocessor Task 任务数增加,TiDB 将结合 TiKV 处理速度自动增加任务并发度(调整 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) ),减少 Coprocessor Task 任务排队,降低延迟。 + 随着 Coprocessor Task 任务数增加,TiDB 将结合 TiKV 处理速度自动增加任务并发度(调整 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency)),减少 Coprocessor Task 任务排队,降低延迟。 * 新增动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** @@ -100,7 +100,7 @@ TiDB 版本:6.4.0-DMR * 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) **tw@TomShawn** - 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从 v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 + 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从-v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 事务 @@ -150,9 +150,9 @@ TiDB 版本:6.4.0-DMR * 数据根据使用方式划分范围,支持单一集群 TiDB、事务 KV、RawKV 应用共存。 * 预留 Key Space 字段,为多租户等特性提供支持。 - 你可以通过在 TiKV 的 `[storage]` 配置中设置 `api-version = 2` 来启用 TiKV API V2。 + 你可以通过在 TiKV 的 `[storage]` 配置中设置 `api-version = 2` 来启用 TiKV API V2。 - [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) + [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) * 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) **tw@qiancai** @@ -186,16 +186,32 @@ TiDB 版本:6.4.0-DMR 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 - - 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。 例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 + - 通过关键字 `to`,你可以指定元素起始和结束的位置,并选择 Array 中连续范围的元素,起始位置记为 `0`。例如,使用 `$[0 to 2]` 可以选择 Array 中的前三个元素。 - 通过关键字 `last`,你可以指定 Array 中最后一个元素的位置,实现从右到左的位置设定。例如,使用 `$[last-2 to last]` 可以选择 Array 中的最后三个元素。 该特性简化了 SQL 的编写过程,进一步提升了 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 * 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** - 在 TiDB v6.4 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 + 在 TiDB v6.4.0 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 - 此外,TiDB v6.4 新增了 [USER_ATTRIBUTES](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 + 此外,TiDB v6.4.0 新增了 [`USER_ATTRIBUTES`](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 + + ```sql + CREATE USER 'newuser1'@'%' COMMENT 'This user is created only for test'; + CREATE USER 'newuser2'@'%' ATTRIBUTE '{"email": "user@pingcap.com"}'; + SELECT * FROM information_schema.user_attributes; + ``` + + ```sql + +-----------+------+---------------------------------------------------+ + | USER | HOST | ATTRIBUTE | + +-----------+------+---------------------------------------------------+ + | newuser1 | % | {"comment": "This user is created only for test"} | + | newuser1 | % | {"email": "user@pingcap.com"} | + +-----------+------+---------------------------------------------------+ + 2 rows in set (0.00 sec) + ``` 这个特性提升了 TiDB 对 MySQL 的语法的兼容性,使得 TiDB 更容易融入 MySQL 生态的工具或平台。 @@ -208,7 +224,7 @@ TiDB 版本:6.4.0-DMR - 备份的影响降到最小,如备份对 QPS 和事务耗时影响小于 5%,不占用集群 CPU 以及内存。 - 快速备份和恢复,比如 1 小时内完成备份,2 小时内完成恢复。 - 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot)。 + 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.4/backup-to-aws-s3-by-snapshot)。 ### 数据迁移 @@ -242,7 +258,7 @@ TiDB 版本:6.4.0-DMR * 将当前 DM 写入目标库的性能指标命名从 TPS 改为 RPS (rows/second)。 * 新增了 DM 全量任务数据导出的进度展示。 - 关于这些指标的详细介绍,请参考 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 + 关于这些指标的详细介绍,请参考 [TiDB Data Migration 查询状态](/dm/dm-query-status.md)。 ### 数据共享与订阅 @@ -262,8 +278,8 @@ TiDB 版本:6.4.0-DMR | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | | [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 该变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | -| [`tidb_opt_agg_push_down`](/system-variables.md#tidboptaggpushdown) | 修改 | 该变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。v6.4.0 新增了 Global 的作用域。 | -| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 该变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| +| [`tidb_opt_agg_push_down`](/system-variables.md#tidb_opt_agg_push_down) | 修改 | 该变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。v6.4.0 新增了 GLOBAL 的作用域。 | +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 修改 | 该变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| | [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。默认值为 `OFF`。 | @@ -279,7 +295,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864`(即 64 MiB)。 | | [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值(实验特性)。默认值为 `70%`。| -| [`tidb_server_memory_limit_sess_min_size`](tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MB)。 | +| [`tidb_server_memory_limit_sess_min_size`](/system-variables.md#tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MiB)。 | ### 配置文件参数 @@ -288,21 +304,21 @@ TiDB 版本:6.4.0-DMR | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置不再生效。| | TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| | TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值。 | -| TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 64。 | -| TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 256。 | +| TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 `64`。 | +| TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 `256`。 | | TiKV | [`cdc.raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 该配置不再生效。| -| TiKV | [`causal-ts.alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | 预分配给 TSO 的缓存大小(以时长计算),默认值为 3s。| -| TiKV | [`causal-ts.renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 8192。 | -| TiKV | [`raftstore.apply-yield-write-size`](/tikv-configuration-file.md#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,默认值为 32KiB。 这是个软限制。| -| PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 50ms。 | -| TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 sm4-ctr。设置为 sm4-ctr 时,数据将采用国密算法 SM4 加密后进行存储。 | +| TiKV | [`causal-ts.alloc-ahead-buffer`](/tikv-configuration-file.md#alloc-ahead-buffer-从-v640-版本开始引入) | 新增 | 预分配给 TSO 的缓存大小(以时长计算),默认值为 `3s`。| +| TiKV | [`causal-ts.renew-batch-max-size`](/tikv-configuration-file.md#renew-batch-max-size-从-v640-版本开始引入)| 新增 | 单次时间戳请求的最大数量,默认值为 `8192`。 | +| TiKV | [`raftstore.apply-yield-write-size`](/tikv-configuration-file.md#apply-yield-write-size-从-v640-版本开始引入) | 新增 | Apply 线程每一轮处理单个状态机写入的最大数据量,默认值为 `32KiB`。这是个软限制。| +| PD | [`tso-update-physical-interval`](/pd-configuration-file.md#tso-update-physical-interval) | 新增 | 这个配置项从 v6.4.0 开始生效,用来控制 TSO 物理时钟更新周期,默认值为 `50ms`。 | +| TiFlash | [`data-encryption-method`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 修改 | 扩展可选值范围:增加 `sm4-ctr`。设置为 `sm4-ctr` 时,数据将采用国密算法 SM4 加密后进行存储。 | | DM | [`routes.route-rule-1.extract-table`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中分表的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | | DM | [`routes.route-rule-1.extract-schema`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中分库的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | | DM | [`routes.route-rule-1.extract-source`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 可选配置。用于提取分库分表场景中的源信息,提取的信息写入下游合表,用于标识数据来源。如果配置该项,需要提前在下游手动创建合表。 | ### 其他 -- 从 v6.4.0 开始,`mysql.user` 表新增 2 个字段:`User_attributes`、`Token_issuer`。 如果从 6.4.0 之前版本的备份数据[恢复 mysql schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表) 到 6.4.0 版本集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择[恢复 mysql schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表),则不会报错。 +- 从 v6.4.0 开始,`mysql.user` 表新增 2 个字段:`User_attributes`、`Token_issuer`。如果从 6.4.0 之前版本的备份数据[恢复 mysql schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表) 到 6.4.0 版本集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择[恢复 mysql schema 下的系统表](/br/br-snapshot-guide.md#恢复-mysql-数据库下的表),则不会报错。 - 针对命名规则符合 Dumpling 表结构和数据格式但后缀名中包含非压缩格式的文件(例如,`test-schema-create.sql.origin` 和 `test.table-schema.sql.xxx`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 @@ -327,7 +343,7 @@ TiDB 版本:6.4.0-DMR - 热点均衡调度器 v2 版本算法成为正式功能,在特定场景下 v2 版本算法可以在配置的两个维度均取得更好的均衡效果,并减少无效调度 [#5021](https://github.com/tikv/pd/issues/5021) @[HundunDM](https://github.com/hundundm) - 改进 Operator step 超时机制,防止过早超时 [#5596](https://github.com/tikv/pd/issues/5596) @[bufferflies](https://github.com/bufferflies) - - 优化调度器在大集群下的性能 [#5473](https://github.com/tikv/pd/issues/5473)@[bufferflies](https://github.com/bufferflies) + - 优化调度器在大集群下的性能 [#5473](https://github.com/tikv/pd/issues/5473) @[bufferflies](https://github.com/bufferflies) - 支持使用非 PD 提供的外部时间戳 [#5637](https://github.com/tikv/pd/issues/5637) @[lhy1024](https://github.com/lhy1024) + TiFlash @@ -341,8 +357,8 @@ TiDB 版本:6.4.0-DMR + TiDB Dashboard - 支持在 Monitoring 页面展示 TiFlash 相关指标,并且优化了该页面指标的展示方式 [#1440](https://github.com/pingcap/tidb-dashboard/issues/1440) @[YiniXu9506](https://github.com/YiniXu9506) - - 支持在 Slow Query 列表 和 SQL Statement 列表展示结果行数 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) - - 优化 Dashboard 的报错信息 [#1407](https://github.com/pingcap/tidb-dashboard/pull/1407) @[baurine](https://github.com/baurine) + - 支持在 Slow Queries 列表和 SQL Statements 列表展示结果行数 [#1443](https://github.com/pingcap/tidb-dashboard/issues/1443) @[baurine](https://github.com/baurine) + - 当集群没有 Alertmanager 时不显示报错信息 [#1444](https://github.com/pingcap/tidb-dashboard/issues/1444) @[baurine](https://github.com/baurine) + Backup & Restore (BR) @@ -352,12 +368,11 @@ TiDB 版本:6.4.0-DMR - 支持同步 Exchange Partition 的 DDL 语句 [#639](https://github.com/pingcap/tiflow/issues/639) @[asddongmen](https://github.com/asddongmen) - 提升 MQ sink 模块非攒批发送的性能 [#7353](https://github.com/pingcap/tiflow/issues/7353) @[hi-rustin](https://github.com/hi-rustin) - - 提升单表大量 Region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) + - 提升单表大量 Region 场景下 TiCDC puller 的性能 [#7078](https://github.com/pingcap/tiflow/issues/7078) [#7281](https://github.com/pingcap/tiflow/issues/7281) @[sdojjy](https://github.com/sdojjy) - 支持在 Syncpoint 功能开启时在下游 TiDB 集群使用 `tidb_enable_external_ts_read` 来读取历史数据 [#7419](https://github.com/pingcap/tiflow/issues/7419) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) - - 封装、暴露 Checker 对应的接口,提升各个入口功能组装、调用的灵活性。[#7116](https://github.com/pingcap/tiflow/issues/7116) @[D3Hunter](https://github.com/D3Hunter) - 移除 dmctl 中无用的 `operate-source update` 指令 [#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题,当上游的建表 SQL TiDB 不兼容时,用户可以提前在 TiDB 手动创建好目标表,让全量迁移任务继续运行 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** @@ -375,8 +390,8 @@ TiDB 版本:6.4.0-DMR - 修复公共表表达式在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - 修复公共表表达式在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控面板 **transaction region num** 信息不准确的问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](https://github.com/jackysp) - - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 session [#38766](https://github.com/pingcap/tidb/issues/38766) - - 修复条件在某些场景下被错误下推至 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623)@[Reminiscent](https://github.com/Reminiscent) + - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 SESSION [#38766](https://github.com/pingcap/tidb/issues/38766) + - 修复条件在某些场景下被错误下推至 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623) @[Reminiscent](https://github.com/Reminiscent) - 修复 `AND` 和 `OR` 条件的 `isNullRejected` 检查错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) - 修复外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `ORDER BY` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) - 修复错误下推的条件被 Join Reorder 丢弃后导致查询结果错误的问题 [#38736](https://github.com/pingcap/tidb/issues/38736) @[winoros](https://github.com/winoros) @@ -395,7 +410,7 @@ TiDB 版本:6.4.0-DMR + TiFlash - - 修复由于 PageStorage GC 未能正确清除 Page 删除标记导致 WAL 文件过大从而引发的 OOM 的问题 [#6163](https://github.com/pingcap/tiflash/issues/6163) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复由于 PageStorage GC 未能正确清除 Page 删除标记导致 WAL 文件过大从而导致 TiFlash OOM 的问题 [#6163](https://github.com/pingcap/tiflash/issues/6163) @[JaySon-Huang](https://github.com/JaySon-Huang) + Tools @@ -407,14 +422,14 @@ TiDB 版本:6.4.0-DMR + Backup & Restore (BR) - 修复恢复过程中由于 PD leader 切换导致恢复失败的问题 [#36910](https://github.com/pingcap/tidb/issues/36910) @[MoCuishle28](https://github.com/MoCuishle28) - - 修复了无法暂停日志备份任务的问题 [#38250](https://github.com/pingcap/tidb/issues/38250)@[joccau](https://github.com/joccau) + - 修复了无法暂停日志备份任务的问题 [#38250](https://github.com/pingcap/tidb/issues/38250) @[joccau](https://github.com/joccau) - 修复 BR 删除日志备份数据时,会删除不应被删除的数据的问题 [#38939](https://github.com/pingcap/tidb/issues/38939) @[Leavrth](https://github.com/leavrth) - 修复 BR 首次删除存储在 Azure Blob Storage 或 Google Cloud Storage 的日志备份数据时执行失败的问题 [#38229](https://github.com/pingcap/tidb/issues/38229) @[Leavrth](https://github.com/leavrth) + TiCDC - 修复 `changefeed query` 的输出中 `sasl-password` 显示为明文的问题 [#7182](https://github.com/pingcap/tiflow/issues/7182) @[dveeden](https://github.com/dveeden) - - 修复在一个 etcd 事务中提交太多数据导致 TiCDC 服务不可用问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) + - 修复在一个 etcd 事务中提交太多数据导致 TiCDC 服务不可用问题 [#7131](https://github.com/pingcap/tiflow/issues/7131) @[asddongmen](https://github.com/asddongmen) - 修复 redo log 文件可能被错误删除的问题 [#6413](https://github.com/pingcap/tiflow/issues/6413) @[asddongmen](https://github.com/asddongmen) - 修复 Kafka Sink V2 协议在同步宽表时性能回退的问题 [#7344](https://github.com/pingcap/tiflow/issues/7344) @[hi-rustin](https://github.com/hi-rustin) - 修复 checkpoint ts 可能被提前推进的问题 [#7274](https://github.com/pingcap/tiflow/issues/7274) @[hi-rustin](https://github.com/hi-rustin) @@ -435,7 +450,7 @@ TiDB 版本:6.4.0-DMR + TiDB Lightning - - 修复当导入 Apache Parquet 格式的数据时,如果目标表存在 binary 编码格式的 String 类型列,导入性能下降的问题。[#38351](https://github.com/pingcap/tidb/issues/38351) @[dsdashun](https://github.com/dsdashun) + - 修复当导入 Apache Parquet 格式的数据时,如果目标表存在 binary 编码格式的字符串类型列,导入性能下降的问题 [#38351](https://github.com/pingcap/tidb/issues/38351) @[dsdashun](https://github.com/dsdashun) + TiDB Dumpling @@ -451,15 +466,15 @@ TiDB 版本:6.4.0-DMR - [AndrewDi](https://github.com/AndrewDi) - [erwadba](https://github.com/erwadba) - [fuzhe1989](https://github.com/fuzhe1989) -- [goldwind-ting](https://github.com/goldwind-ting) (首次贡献者) +- [goldwind-ting](https://github.com/goldwind-ting)(首次贡献者) - [h3n4l](https://github.com/h3n4l) -- [igxlin](https://github.com/igxlin) (首次贡献者) +- [igxlin](https://github.com/igxlin)(首次贡献者) - [ihcsim](https://github.com/ihcsim) - [JigaoLuo](https://github.com/JigaoLuo) - [morgo](https://github.com/morgo) - [Ranxy](https://github.com/Ranxy) -- [shenqidebaozi](https://github.com/shenqidebaozi) (首次贡献者) -- [taofengliu](https://github.com/taofengliu) (首次贡献者) +- [shenqidebaozi](https://github.com/shenqidebaozi)(首次贡献者) +- [taofengliu](https://github.com/taofengliu)(首次贡献者) - [TszKitLo40](https://github.com/TszKitLo40) -- [wxbty](https://github.com/wxbty) (首次贡献者) +- [wxbty](https://github.com/wxbty)(首次贡献者) - [zgcbj](https://github.com/zgcbj) From bfeaae70860fedfbda2af06ad51957956e77fd2b Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 16 Nov 2022 09:57:57 +0800 Subject: [PATCH 094/105] remove empty sections --- releases/release-6.4.0.md | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ca5d55b6128f..55156813b2cf 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -102,14 +102,6 @@ TiDB 版本:6.4.0-DMR 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从-v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 -### 事务 - -* 功能简短描述 - - 功能详细描述(功能是什么,对用户的价值是什么,怎么用) [#issue]() @[贡献者 GitHub ID]() - - [用户文档]() - ### 稳定性 * 磁盘故障、I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** @@ -195,8 +187,6 @@ TiDB 版本:6.4.0-DMR 在 TiDB v6.4.0 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 - 此外,TiDB v6.4.0 新增了 [`USER_ATTRIBUTES`](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 - ```sql CREATE USER 'newuser1'@'%' COMMENT 'This user is created only for test'; CREATE USER 'newuser2'@'%' ATTRIBUTE '{"email": "user@pingcap.com"}'; @@ -213,6 +203,8 @@ TiDB 版本:6.4.0-DMR 2 rows in set (0.00 sec) ``` + 此外,TiDB v6.4.0 新增了 [`USER_ATTRIBUTES`](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 + 这个特性提升了 TiDB 对 MySQL 的语法的兼容性,使得 TiDB 更容易融入 MySQL 生态的工具或平台。 ### 备份和恢复 @@ -322,8 +314,6 @@ TiDB 版本:6.4.0-DMR - 针对命名规则符合 Dumpling 表结构和数据格式但后缀名中包含非压缩格式的文件(例如,`test-schema-create.sql.origin` 和 `test.table-schema.sql.xxx`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 -## 废弃功能 - ## 改进提升 + TiDB From 9c823f80f57972e02a3fe42f0597aef0bfa031f6 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 16 Nov 2022 10:13:04 +0800 Subject: [PATCH 095/105] remove writer information --- releases/release-6.4.0.md | 58 ++++++++++++++++++------------------ releases/release-timeline.md | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 55156813b2cf..979a4cc7aefe 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -4,7 +4,7 @@ title: TiDB 6.4.0 Release Notes # TiDB v6.4.0 Release Notes -发版日期:2022 年 x 月 xx 日 +发版日期:2022 年 11 月 17 日 TiDB 版本:6.4.0-DMR @@ -30,7 +30,7 @@ TiDB 版本:6.4.0-DMR ### SQL -* 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) **tw@qiancai** +* 支持通过 SQL 语句立即对指定分区的 TiFlash 副本进行物理数据整理 (Compaction) [#5315](https://github.com/pingcap/tiflash/issues/5315) @[hehechen](https://github.com/hehechen) TiDB v6.2.0 发布了针对全表的 TiFlash 副本立即进行[物理数据整理 (Compaction)](/sql-statements/sql-statement-alter-table-compact.md#alter-table--compact) 的功能,支持用户自行选择合适的时机,手动执行 SQL 语句立即对 TiFlash 中的物理数据进行整理,从而减少存储空间占用,并提升查询性能。v6.4.0 细化了 TiFlash 副本数据整理的粒度,支持对表中指定分区的 TiFlash 副本立即进行数据整理。 @@ -38,7 +38,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-alter-table-compact.md#对分区表中指定分区的-tiflash-副本进行数据整理) -* 支持通过 `FLASHBACK CLUSTER TO TIMESTAMP` 命令将集群快速回退到特定的时间点(实验特性)[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) **tw@Oreoxmt** +* 支持通过 `FLASHBACK CLUSTER TO TIMESTAMP` 命令将集群快速回退到特定的时间点(实验特性)[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) `FLASHBACK CLUSTER TO TIMESTAMP` 支持在 Garbage Collection (GC) life time 内快速回退整个集群到指定的时间点。使用该特性可以快速撤消 DML 误操作。例如,在误执行了没有 `WHERE` 子句的 `DELETE` 后,使用 `FLASHBACK CLUSTER TO TIMESTAMP` 能够在几分钟内将集群数据恢复到指定的时间点。该特性不依赖于数据库备份,并支持在时间线上多次回退以确定特定数据更改发生的时间。需要注意的是,`FLASHBACK CLUSTER TO TIMESTAMP` 不能替代数据库备份。 @@ -46,7 +46,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) -* 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) **tw@ran-huang** +* 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) `FLASHBACK DATABASE` 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速地通过 SQL 语句进行数据和元信息的恢复。 @@ -54,7 +54,7 @@ TiDB 版本:6.4.0-DMR ### 安全 -* TiFlash 静态加密支持国密算法 SM4 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) **tw@ran-huang** +* TiFlash 静态加密支持国密算法 SM4 [#5953](https://github.com/pingcap/tiflash/issues/5953) @[lidezhu](https://github.com/lidezhu) TiFlash 的静态加密新增 SM4 算法,你可以将配置文件 `tiflash-learner.toml` 中的 `data-encryption-method` 参数的值设置为 `sm4-ctr`,以启用基于国密算法 SM4 的静态加密能力。 @@ -62,7 +62,7 @@ TiDB 版本:6.4.0-DMR ### 可观测性 -* 集群诊断功能 GA [#1438](https://github.com/pingcap/tidb-dashboard/issues/1438) @[Hawkson-jee](https://github.com/Hawkson-jee) **tw@shichun-0415** +* 集群诊断功能 GA [#1438](https://github.com/pingcap/tidb-dashboard/issues/1438) @[Hawkson-jee](https://github.com/Hawkson-jee) [集群诊断功能](/dashboard/dashboard-diagnostics-access.md)是在指定的时间范围内,对集群可能存在的问题进行诊断,并将诊断结果和一些集群相关的负载监控信息汇总成一个[诊断报告](/dashboard/dashboard-diagnostics-report.md)。诊断报告是网页形式,通过浏览器保存后可离线浏览和传阅。 @@ -70,11 +70,11 @@ TiDB 版本:6.4.0-DMR ### 性能 -* 引入 Coprocessor Task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) **tw@ran-huang** +* 引入 Coprocessor Task 并发度自适应机制 [#37724](https://github.com/pingcap/tidb/issues/37724) @[you06](https://github.com/you06) 随着 Coprocessor Task 任务数增加,TiDB 将结合 TiKV 处理速度自动增加任务并发度(调整 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency)),减少 Coprocessor Task 任务排队,降低延迟。 -* 新增动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) **tw@qiancai** +* 新增动态规划算法来决定表的连接顺序 [#18969](https://github.com/pingcap/tidb/issues/18969) @[winoros](https://github.com/winoros) 在之前的版本中,TiDB 采用贪心算法来决定表的连接顺序。在 v6.4.0 中,优化器引入了[动态规划算法](/join-reorder.md#join-reorder-动态规划算法实例)。相比贪心算法,动态规划算法会枚举更多可能的连接顺序,进而有机会发现更好的执行计划,提升部分场景下 SQL 执行效率。 @@ -82,33 +82,33 @@ TiDB 版本:6.4.0-DMR [用户文档](/join-reorder.md) -* 前缀索引支持对空值进行过滤 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** +* 前缀索引支持对空值进行过滤 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) 该特性是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 语句中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 语句的执行性能。 [用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) -* 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) **tw@Oreoxmt** +* 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) 在之前的版本中,TiDB 只在 `writechunk` 函数中复用 Chunk。TiDB v6.4.0 扩展 Chunk 复用机制到 Executor 的算子中,通过复用 Chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下的 SQL 查询执行效率。你可以通过系统变量 [`tidb_enable_reuse_chunk`](/system-variable.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) 来控制是否启用 Chunk 对象复用,默认为开启。 -* 引入新的优化器提示 `NO_DECORRELATE` 来控制关联优化的解除 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) **tw@TomShawn** +* 引入新的优化器提示 `NO_DECORRELATE` 来控制关联优化的解除 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) 默认情况下,TiDB 总是会尝试重写关联子查询以解除关联,这通常会提高执行效率。但是在一部分场景下,解除关联反而会降低执行效率。TiDB 在 v6.4.0 版本中引入了 hint `NO_DECORRELATE`,用来提示优化器不要对指定的查询块解除关联,以提升部分场景下的查询性能。 [用户文档](/optimizer-hints.md#no_decorrelate) -* 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) **tw@TomShawn** +* 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从-v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 稳定性 -* 磁盘故障、I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) **tw@qiancai** +* 磁盘故障、I/O 无响应等极端情况下的故障恢复加速 [#13648](https://github.com/tikv/tikv/issues/13648) @[LykxSassinator](https://github.com/LykxSassinator) 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障并恢复一直是数据库面临的挑战之一。TiDB v6.4.0 全面优化了 TiKV 节点的状态检测机制。即使在磁盘故障或 I/O 无响应等极端情况下,TiDB 依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起 Leader 选举,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 -* TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) **tw@TomShawn** +* TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) v6.4.0 引入了全局内存控制(实验特性),对 TiDB 实例的全局内存使用进行追踪。你可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 @@ -118,13 +118,13 @@ TiDB 版本:6.4.0-DMR [用户文档](/configure-memory-usage.md) -* 控制优化器在构造范围时的内存占用 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw@TomShawn** +* 控制优化器在构造范围时的内存占用 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 来限制优化器在构造范围时消耗的内存上限。当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。当 SQL 语句中的 `IN` 条件较多时,这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) -* 支持统计信息的同步加载(GA)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) **tw@ran-huang** +* 支持统计信息的同步加载(GA)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) TiDB v6.4.0 起,正式开启了统计信息同步加载的特性(默认开启),支持在执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高优化该 SQL 语句时统计信息的完整性。 @@ -132,7 +132,7 @@ TiDB 版本:6.4.0-DMR ### 易用性 -* TiKV API V2 成为正式功能 [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) **tw@Oreoxmt** +* TiKV API V2 成为正式功能 [#11745](https://github.com/tikv/tikv/issues/11745) @[pingyu](https://github.com/pingyu) 在 v6.1.0 之前,TiKV 的 RawKV 接口仅存储客户端传入的原始数据,因此只提供基本的 Key-Value 读写能力。此外,由于编码方式不同、数据范围没有隔离等,同一个 TiKV 集群中,TiDB、事务 KV、RawKV 无法同时使用,因此对于不同使用方式并存的场景,必须部署多个集群,增加了机器和部署成本。 @@ -146,7 +146,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) -* 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) **tw@qiancai** +* 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 @@ -156,7 +156,7 @@ TiDB 版本:6.4.0-DMR ### MySQL 兼容性 -* TiDB 分区表兼容 Linear Hash 分区 [#38450](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) **tw@qiancai** +* TiDB 分区表兼容 Linear Hash 分区 [#38450](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) TiDB 现有的分区方式支持 Hash、Range、List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容。 @@ -164,7 +164,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/partitioned-table.md#tidb-对-linear-hash-分区的处理) -* 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性(实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) **tw@Oreoxmt** +* 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性(实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) TiDB v6.4.0 引入了 `AUTO_INCREMENT` 的 MySQL 兼容模式,通过中心化分配自增 ID,实现了自增 ID 在所有 TiDB 实例上单调递增。使用该特性能够更容易地实现查询结果按自增 ID 排序。要使用 MySQL 兼容模式,你需要在建表时将 `AUTO_ID_CACHE` 设置为 `1`。 @@ -174,7 +174,7 @@ TiDB 版本:6.4.0-DMR [用户文档](/auto-increment.md#mysql-兼容模式) -* 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) **tw@qiancai** +* 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) 从 v6.4.0 起,TiDB 支持 [MySQL 兼容的范围选择语法](https://dev.mysql.com/doc/refman/8.0/en/json.html#json-paths)。 @@ -183,7 +183,7 @@ TiDB 版本:6.4.0-DMR 该特性简化了 SQL 的编写过程,进一步提升了 JSON 类型的兼容能力,降低了 MySQL 应用向 TiDB 迁移的难度。 -* 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) **tw@qiancai** +* 支持对数据库用户增加额外说明 [#38172](https://github.com/pingcap/tidb/issues/38172) @[CbcWestwolf](https://github.com/CbcWestwolf) 在 TiDB v6.4.0 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 @@ -209,7 +209,7 @@ TiDB 版本:6.4.0-DMR ### 备份和恢复 -* 基于 AWS EBS snapshot 的集群备份和恢复 [#33849](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) **tw@shichun-0415** +* 基于 AWS EBS snapshot 的集群备份和恢复 [#33849](https://github.com/pingcap/tidb/issues/33849) @[fengou1](https://github.com/fengou1) 如果你的 TiDB 集群部署在 EKS 上,使用了 AWS EBS 卷,并且对数据备份有以下要求,可考虑使用 TiDB Operator 将 TiDB 集群数据以卷快照以及元数据的方式备份至 Amazon S3: @@ -220,13 +220,13 @@ TiDB 版本:6.4.0-DMR ### 数据迁移 -* 支持将上游数据源信息以扩展列形式写入下游合表 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 支持将上游数据源信息以扩展列形式写入下游合表 [#37797](https://github.com/pingcap/tidb/issues/37797) @[lichunzhu](https://github.com/lichunzhu) 在上游分库分表合并到 TiDB 的场景,你可以在目标表中手动额外增加几个字段(扩展列),并在配置 DM 任务时,对这几个扩展列赋值。例如,当赋予上游分库分表的名称时,通过 DM 写入到下游的记录会包含上游分库分表的名称。在一些数据异常的场景,你可以通过该功能快速定位目标表的问题数据源信息,如该数据来自上游哪个分库,哪个分表。 更多信息,请参考[提取分库分表数据源信息写入合表](/dm/dm-key-features.md#提取分库分表数据源信息写入合表)。 -* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) **tw@shichun-0415** +* 优化 DM 的前置检查项,将部分必须通过项改为非必须通过项 [#7333](https://github.com/pingcap/tiflow/issues/7333) @[lichunzhu](https://github.com/lichunzhu) 为了使数据迁移任务顺利进行,DM 在启动迁移任务时会自动触发[任务前置检查](/dm/dm-precheck.md),并返回检查结果。只有当前置检查通过后,DM 才开始执行迁移任务。 @@ -236,13 +236,13 @@ TiDB 版本:6.4.0-DMR - 检查上游表中是否存在主键或唯一键约束 - 数据库主从配置,上游数据库必须设置数据库 ID `server_id` -* 增量迁移任务支持 binlog position 和 GTID 作为选配参数 [#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) **tw@shichun-0415** +* 增量迁移任务支持 binlog position 和 GTID 作为选配参数 [#7393](https://github.com/pingcap/tiflow/issues/7393) @[GMHDBJD](https://github.com/GMHDBJD) v6.4.0 之前,只配置增量迁移任务时,需要传入 binlog position 或者 GTID 才能启动任务,配置复杂,用户理解成本高。自 v6.4.0 起,如果只需要执行增量迁移任务,则可以不指定 binlog position 或者 GTID 的参数取值,DM 将默认按任务的启动时间从上游获取该时间之后的 binlog file,并将这些增量数据迁移到下游 ,降低了使用时的理解成本和配置复杂度。 更多信息,请参考 [DM 任务完整配置文件介绍](/dm/task-configuration-file-full.md)。 -* DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) **tw@shichun-0415** +* DM 任务增加一些状态信息的展示 [#7343](https://github.com/pingcap/tiflow/issues/7343) @[okJiang](https://github.com/okJiang) 在 v6.4.0,DM 数据迁移任务新增了一些性能指标和进度指标,方便用户更直观地了解迁移性能和进度,同时为问题排查提供参考信息: @@ -254,7 +254,7 @@ TiDB 版本:6.4.0-DMR ### 数据共享与订阅 -- TiCDC 支持同步数据到 `3.2.0` 版本的 Kafka [#7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) **tw@shichun-0415** +- TiCDC 支持同步数据到 `3.2.0` 版本的 Kafka [#7191](https://github.com/pingcap/tiflow/issues/7191) @[3AceShowHand](https://github.com/3AceShowHand) TiCDC 下游支持的 Kafka 最高版本从 `3.1.0` 变为 `3.2.0`。你可以通过 TiCDC 将数据同步到不高于 `3.2.0` 版本的 Kafka。 @@ -364,7 +364,7 @@ TiDB 版本:6.4.0-DMR + TiDB Data Migration (DM) - 移除 dmctl 中无用的 `operate-source update` 指令 [#7246](https://github.com/pingcap/tiflow/issues/7246) @[buchuitoudegou](https://github.com/buchuitoudegou) - - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题,当上游的建表 SQL TiDB 不兼容时,用户可以提前在 TiDB 手动创建好目标表,让全量迁移任务继续运行 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) **tw@shichun-0415** + - 解决了 TiDB 不兼容上游数据库的建表 SQL 导致 DM 全量迁移报错的问题,当上游的建表 SQL TiDB 不兼容时,用户可以提前在 TiDB 手动创建好目标表,让全量迁移任务继续运行 [#37984](https://github.com/pingcap/tidb/issues/37984) @[lance6716](https://github.com/lance6716) + TiDB Lightning diff --git a/releases/release-timeline.md b/releases/release-timeline.md index 73bff05b924b..a568533cab93 100644 --- a/releases/release-timeline.md +++ b/releases/release-timeline.md @@ -9,7 +9,7 @@ summary: 了解 TiDB 的版本发布时间线。 | 版本 | 发布日期 | | :--- | :--- | -| [6.4.0-DMR](/releases/release-6.4.0.md) | 2022-11-xx | +| [6.4.0-DMR](/releases/release-6.4.0.md) | 2022-11-17 | | [6.1.2](/releases/release-6.1.2.md) | 2022-10-24 | | [5.4.3](/releases/release-5.4.3.md) | 2022-10-13 | | [6.3.0-DMR](/releases/release-6.3.0.md) | 2022-09-30 | From c7632ffa79f3412f193a33e6e7d8eb32d58470c8 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 16 Nov 2022 16:22:03 +0800 Subject: [PATCH 096/105] Apply suggestions from code review Co-authored-by: Aolin Co-authored-by: xixirangrang --- releases/release-6.4.0.md | 50 ++++++++++++++++++++------------------- releases/release-notes.md | 2 +- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 979a4cc7aefe..4b5ef4c1ae9c 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -14,7 +14,7 @@ TiDB 版本:6.4.0-DMR - 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点 (实验特性)。 - 支持对 TiDB 实例的[全局内存使用进行追踪](/configure-memory-usage.md)(实验特性)。 -- TiDB 分区表[兼容 Linear Hash 分区](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 +- TiDB 分区表[兼容 LINEAR HASH 分区语法](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 - 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 - 支持对 [JSON 类型](/data-type-json.md)中的 Array 数据做范围选择。 - 实现磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 @@ -36,7 +36,7 @@ TiDB 版本:6.4.0-DMR 通过 SQL 语句 `ALTER TABLE table_name COMPACT [PARTITION PartitionNameList] [engine_type REPLICA]`,你可以立即对指定分区的 TiFlash 副本进行数据整理。 - [用户文档](/sql-statements/sql-statement-alter-table-compact.md#对分区表中指定分区的-tiflash-副本进行数据整理) + 更多信息,请参考[用户文档](/sql-statements/sql-statement-alter-table-compact.md#对分区表中指定分区的-tiflash-副本进行数据整理)。 * 支持通过 `FLASHBACK CLUSTER TO TIMESTAMP` 命令将集群快速回退到特定的时间点(实验特性)[#37197](https://github.com/pingcap/tidb/issues/37197) [#13303](https://github.com/tikv/tikv/issues/13303) @[Defined2014](https://github.com/Defined2014) @[bb7133](https://github.com/bb7133) @[JmPotato](https://github.com/JmPotato) @[Connor1996](https://github.com/Connor1996) @[HuSharp](https://github.com/HuSharp) @[CalvinNeo](https://github.com/CalvinNeo) @@ -44,13 +44,13 @@ TiDB 版本:6.4.0-DMR 在执行 `FLASHBACK CLUSTER TO TIMESTAMP` 之前,需要暂停 PITR 和 TiCDC 等工具上运行的同步任务,待 `FLASHBACK` 执行完成后再启动,否则会造成同步失败等问题。 - [用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md) + 更多信息,请参考[用户文档](/sql-statements/sql-statement-flashback-to-timestamp.md)。 * 支持通过 `FLASHBACK DATABASE` 命令来恢复被删除的数据库 [#20463](https://github.com/pingcap/tidb/issues/20463) @[erwadba](https://github.com/erwadba) `FLASHBACK DATABASE` 支持在 Garbage Collection (GC) life time 时间内恢复被 `DROP` 删除的数据库以及数据。该特性不依赖任何外部工具,可以轻松快速地通过 SQL 语句进行数据和元信息的恢复。 - [用户文档](/sql-statements/sql-statement-flashback-database.md) + 更多信息,请参考[用户文档](/sql-statements/sql-statement-flashback-database.md)。 ### 安全 @@ -58,7 +58,7 @@ TiDB 版本:6.4.0-DMR TiFlash 的静态加密新增 SM4 算法,你可以将配置文件 `tiflash-learner.toml` 中的 `data-encryption-method` 参数的值设置为 `sm4-ctr`,以启用基于国密算法 SM4 的静态加密能力。 - [用户文档](/encryption-at-rest.md#tiflash) + 更多信息,请参考[用户文档](/encryption-at-rest.md#tiflash)。 ### 可观测性 @@ -80,13 +80,13 @@ TiDB 版本:6.4.0-DMR 由于动态规划算法的枚举过程可能消耗更多的时间,目前 Join Reorder 算法由变量 [`tidb_opt_join_reorder_threshold`](/system-variables.md#tidb_opt_join_reorder_threshold) 控制,当参与 Join Reorder 的节点个数大于该阈值时选择贪心算法,反之选择动态规划算法。 - [用户文档](/join-reorder.md) + 更多信息,请参考[用户文档](/join-reorder.md)。 * 前缀索引支持对空值进行过滤 [#21145](https://github.com/pingcap/tidb/issues/21145) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) 该特性是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 语句中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 语句的执行性能。 - [用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) + 更多信息,请参考[用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入)。 * 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) @@ -96,7 +96,7 @@ TiDB 版本:6.4.0-DMR 默认情况下,TiDB 总是会尝试重写关联子查询以解除关联,这通常会提高执行效率。但是在一部分场景下,解除关联反而会降低执行效率。TiDB 在 v6.4.0 版本中引入了 hint `NO_DECORRELATE`,用来提示优化器不要对指定的查询块解除关联,以提升部分场景下的查询性能。 - [用户文档](/optimizer-hints.md#no_decorrelate) + 更多信息,请参考[用户文档](/optimizer-hints.md#no_decorrelate)。 * 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) @@ -108,27 +108,27 @@ TiDB 版本:6.4.0-DMR 数据库的可用性是企业用户最为关注的指标之一,但是在复杂的硬件环境下,如何快速检测故障并恢复一直是数据库面临的挑战之一。TiDB v6.4.0 全面优化了 TiKV 节点的状态检测机制。即使在磁盘故障或 I/O 无响应等极端情况下,TiDB 依然可以快速上报节点状态,同时搭配主动唤醒机制,提前发起 Leader 选举,加速集群自愈。通过这次优化,TiDB 在磁盘故障场景下,集群恢复时间可以缩短 50% 左右。 -* TiDB 全局内存控制 [#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) +* TiDB 全局内存控制(实验特性)[#37816](https://github.com/pingcap/tidb/issues/37816) @[wshwsh12](https://github.com/wshwsh12) - v6.4.0 引入了全局内存控制(实验特性),对 TiDB 实例的全局内存使用进行追踪。你可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 + v6.4.0 引入了全局内存控制,对 TiDB 实例的全局内存使用进行追踪。你可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。同时,TiDB 提供了系统表视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作,帮助用户清晰了解内存使用状况。 全局内存控制是 TiDB 内存管理的重要一步,对实例采用全局视角,引入系统性方法对内存用量进行管理,这可以极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 - [用户文档](/configure-memory-usage.md) + 更多信息,请参考[用户文档](/configure-memory-usage.md)。 * 控制优化器在构造范围时的内存占用 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 来限制优化器在构造范围时消耗的内存上限。当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。当 SQL 语句中的 `IN` 条件较多时,这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 - [用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) + 更多信息,请参考[用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入)。 * 支持统计信息的同步加载(GA)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) TiDB v6.4.0 起,正式开启了统计信息同步加载的特性(默认开启),支持在执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高优化该 SQL 语句时统计信息的完整性。 - [用户文档](/system-varaibles.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) + 更多信息,请参考[用户文档](/system-varaibles.md#tidb_stats_load_sync_wait-从-v540-版本开始引入)。 ### 易用性 @@ -144,7 +144,7 @@ TiDB 版本:6.4.0-DMR 你可以通过在 TiKV 的 `[storage]` 配置中设置 `api-version = 2` 来启用 TiKV API V2。 - [用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入) + 更多信息,请参考[用户文档](/tikv-configuration-file.md#api-version-从-v610-版本开始引入)。 * 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) @@ -152,17 +152,19 @@ TiDB 版本:6.4.0-DMR v6.4.0 版本改进了 TiFlash 副本数据同步进度更新机制。在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 - [用户文档](/information-schema/information-schema-tiflash-replica.md) + 更多信息,请参考[用户文档](/information-schema/information-schema-tiflash-replica.md)。 ### MySQL 兼容性 -* TiDB 分区表兼容 Linear Hash 分区 [#38450](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) +* TiDB 分区表兼容 Linear Hash 分区语法 [#38450](https://github.com/pingcap/tidb/issues/38450) @[mjonss](https://github.com/mjonss) - TiDB 现有的分区方式支持 Hash、Range、List 分区。TiDB v6.4.0 增加了对 [MySQL Linear Hash](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容。 + TiDB 现有的分区方式支持 Hash、Range、List 分区。TiDB v6.4.0 增加了对 [MySQL LINEAR HASH](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容。 - 在 TiDB 上,你可以直接执行原有的 MySQL Linear Hash 分区的 DDL 语句,TiDB 将创建一个相应的 Hash 分区表(注意 TiDB 内部实际不存在 Linear Hash 分区)。你也可以直接执行原有的 MySQL Linear Hash 分区的 DML 语句,TiDB 将正常返回对应的 TiDB Hash 分区的查询结果。此功能保证了 TiDB 对 MySQL Linear Hash 分区的语法兼容,方便基于 MySQL 的应用无缝迁移到 TiDB。 + 在 TiDB 上,你可以直接执行原有的 MySQL Linear Hash 分区的 DDL 语句,TiDB 将创建一个常规的非线性 Hash 分区表(注意 TiDB 内部实际不存在 LINEAR HASH 分区)。你也可以直接执行原有的 MySQL LINEAR HASH 分区的 DML 语句,TiDB 将正常返回对应的 TiDB Hash 分区的查询结果。此功能保证了 TiDB 对 MySQL LINEAR HASH 分区的语法兼容,方便基于 MySQL 的应用无缝迁移到 TiDB。 + + 需要注意的是,当分区数不是 2 的幂时,TiDB Hash 分区表中的行的分布与 MySQL Linear Hash 分区有所不同。详情请见 [#38450](https://github.com/pingcap/tidb/issues/38450)。 - [用户文档](/partitioned-table.md#tidb-对-linear-hash-分区的处理) + 更多信息,请参考[用户文档](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 * 支持高性能、全局单调递增的 `AUTO_INCREMENT` 列属性(实验特性)[#38442](https://github.com/pingcap/tidb/issues/38442) @[tiancaiamao](https://github.com/tiancaiamao) @@ -172,7 +174,7 @@ TiDB 版本:6.4.0-DMR CREATE TABLE t(a int AUTO_INCREMENT key) AUTO_ID_CACHE 1; ``` - [用户文档](/auto-increment.md#mysql-兼容模式) + 更多信息,请参考[用户文档](/auto-increment.md#mysql-兼容模式)。 * 支持对 JSON 类型中的 Array 数据做范围选择 [#13644](https://github.com/tikv/tikv/issues/13644) @[YangKeao](https://github.com/YangKeao) @@ -187,10 +189,12 @@ TiDB 版本:6.4.0-DMR 在 TiDB v6.4.0 中,你可以通过 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 或 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句为数据库用户添加额外的说明信息。TiDB 提供了两种说明格式,你可以通过 `COMMENT` 添加一段文本注释,也可以通过 `ATTRIBUTE` 添加一组 JSON 格式的结构化属性。 + 此外,TiDB v6.4.0 新增了 [`USER_ATTRIBUTES`](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 + ```sql CREATE USER 'newuser1'@'%' COMMENT 'This user is created only for test'; CREATE USER 'newuser2'@'%' ATTRIBUTE '{"email": "user@pingcap.com"}'; - SELECT * FROM information_schema.user_attributes; + SELECT * FROM INFORMATION_SCHAME.USER_ATTRIBUTES; ``` ```sql @@ -203,8 +207,6 @@ TiDB 版本:6.4.0-DMR 2 rows in set (0.00 sec) ``` - 此外,TiDB v6.4.0 新增了 [`USER_ATTRIBUTES`](/information-schema/information-schema-user-attributes.md) 表。你可以在该表中查看用户的注释和属性信息。 - 这个特性提升了 TiDB 对 MySQL 的语法的兼容性,使得 TiDB 更容易融入 MySQL 生态的工具或平台。 ### 备份和恢复 @@ -273,7 +275,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_opt_agg_push_down`](/system-variables.md#tidb_opt_agg_push_down) | 修改 | 该变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。v6.4.0 新增了 GLOBAL 的作用域。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 修改 | 该变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | -| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| | [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。默认值为 `OFF`。 | | [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。默认值为 `1`。 | | [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定的时间戳前的历史数据。默认值为 `OFF`。 | diff --git a/releases/release-notes.md b/releases/release-notes.md index f2ca53539984..53d0ee1ee155 100644 --- a/releases/release-notes.md +++ b/releases/release-notes.md @@ -9,7 +9,7 @@ TiDB 历史版本发布声明如下: ## 6.4 -- [6.4.0-DMR](/releases/release-6.4.0.md): 2022-11-xx +- [6.4.0-DMR](/releases/release-6.4.0.md): 2022-11-17 ## 6.3 From a46c78d6df5338f4306094afb892c30689db9ebe Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 16 Nov 2022 16:50:16 +0800 Subject: [PATCH 097/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 4b5ef4c1ae9c..ee2c4312787d 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -161,8 +161,8 @@ TiDB 版本:6.4.0-DMR TiDB 现有的分区方式支持 Hash、Range、List 分区。TiDB v6.4.0 增加了对 [MySQL LINEAR HASH](https://dev.mysql.com/doc/refman/5.7/en/partitioning-linear-hash.html) 分区语法的兼容。 在 TiDB 上,你可以直接执行原有的 MySQL Linear Hash 分区的 DDL 语句,TiDB 将创建一个常规的非线性 Hash 分区表(注意 TiDB 内部实际不存在 LINEAR HASH 分区)。你也可以直接执行原有的 MySQL LINEAR HASH 分区的 DML 语句,TiDB 将正常返回对应的 TiDB Hash 分区的查询结果。此功能保证了 TiDB 对 MySQL LINEAR HASH 分区的语法兼容,方便基于 MySQL 的应用无缝迁移到 TiDB。 - - 需要注意的是,当分区数不是 2 的幂时,TiDB Hash 分区表中的行的分布与 MySQL Linear Hash 分区有所不同。详情请见 [#38450](https://github.com/pingcap/tidb/issues/38450)。 + + 当分区数是 2 的幂时,TiDB Hash 分区表中行的分布情况与 MySQL Linear Hash 分区表相同,但当分区数不是 2 的幂时,TiDB Hash 分区表中行的分布情况与 MySQL Linear Hash 分区表会有所区别。 更多信息,请参考[用户文档](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 From 27998249169541cd75004f1071ea19303db7fb1a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 16 Nov 2022 18:23:35 +0800 Subject: [PATCH 098/105] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-6.4.0.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ee2c4312787d..20d62b52e101 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -148,9 +148,9 @@ TiDB 版本:6.4.0-DMR * 优化 TiFlash 数据同步进度的准确性 [#4902](https://github.com/pingcap/tiflash/issues/4902) @[hehechen](https://github.com/hehechen) - TiDB 的 `information_schema.tiflash_replica` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 + TiDB 的 `INFORMATION_SCHEMA.TIFLASH_REPLICA` 表中的 `PROGRESS` 字段表示 TiFlash 副本与 TiKV 中对应表数据的同步进度。在之前的版本中,`PROCESS` 字段只显示 TiFlash 副本创建过程中的数据同步进度。在 TiFlash 副本创建完后,当在 TiKV 相应的表中导入新的数据时,该值不会更新数据的同步进度。 - v6.4.0 版本改进了 TiFlash 副本数据同步进度更新机制。在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`information_schema.tiflash_replica`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 + v6.4.0 版本改进了 TiFlash 副本数据同步进度更新机制。在创建 TiFlash 副本后,进行数据导入等操作,TiFlash 副本需要和 TiKV 数据进行同步时,[`INFORMATION_SCHEMA.TIFLASH_REPLICA`](/information-schema/information-schema-tiflash-replica.md) 表中的 `PROGRESS` 值将会更新,显示实际的数据同步进度。通过此优化,你可以方便地查看 TiFlash 数据同步的实际进度。 更多信息,请参考[用户文档](/information-schema/information-schema-tiflash-replica.md)。 @@ -269,11 +269,11 @@ TiDB 版本:6.4.0-DMR | [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 该变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 该变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | | [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,表示表的主键默认使用聚簇索引。 | -| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值从 `OFF` 修改为 `ON`。 | +| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量默认值 `OFF` 修改为 `ON`,表示默认使用分页 (paging) 方式发送 Coprocessor 请求。 | | [`tidb_enable_prepared_plan_cache`](/system-variables.md#tidb_enable_prepared_plan_cache-从-v610-版本开始引入) | 修改 | 该变量用来控制是否开启 [Prepared Plan Cache](/sql-prepared-plan-cache.md)。v6.4.0 新增了 SESSION 作用域。 | | [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) | 修改 | 该变量用于设置触发 tidb-server 内存告警的内存使用比率,默认值从 `0.8` 修改为 `0.7`。 | | [`tidb_opt_agg_push_down`](/system-variables.md#tidb_opt_agg_push_down) | 修改 | 该变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。v6.4.0 新增了 GLOBAL 的作用域。 | -| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 修改 | 该变量用来控制单个 `SESSION` 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 修改 | 该变量用来控制单个 session 的 Prepared Plan Cache 最多能够缓存的计划数量。v6.4.0 新增了 SESSION 作用域。| | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 修改 | 该变量默认值从 `0` 修改为 `100`,代表 SQL 执行同步加载完整统计信息默认等待 100 毫秒后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 修改 | 该变量默认值从 `OFF` 修改为 `ON`,代表统计信息同步加载超时后,SQL 会退回使用 pseudo 的统计信息。| | [`last_sql_use_alloc`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。默认值为 `OFF`。 | @@ -297,7 +297,7 @@ TiDB 版本:6.4.0-DMR | -------- | -------- | -------- | -------- | | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置不再生效。| | TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| -| TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值。 | +| TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值,默认值为 `true`。| | TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 `64`。 | | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 `256`。 | | TiKV | [`cdc.raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 该配置不再生效。| @@ -312,8 +312,8 @@ TiDB 版本:6.4.0-DMR ### 其他 -- 从 v6.4.0 开始,`mysql.user` 表新增 2 个字段:`User_attributes`、`Token_issuer`。如果从 6.4.0 之前版本的备份数据[恢复 mysql schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表) 到 6.4.0 版本集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择[恢复 mysql schema 下的系统表](/br/br-snapshot-guide.md#恢复-mysql-数据库下的表),则不会报错。 -- 针对命名规则符合 Dumpling 表结构和数据格式但后缀名中包含非压缩格式的文件(例如,`test-schema-create.sql.origin` 和 `test.table-schema.sql.xxx`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 +- 从 v6.4.0 开始,`mysql.user` 表新增 `User_attributes` 和 `Token_issuer` 两个字段。如果从 v6.4.0 之前版本的备份数据[恢复 `mysql` schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表) 到 v6.4.0 集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择恢复 `mysql` schema 下的系统表,则不会报错。 +- 针对命名规则符合 Dumpling [输出文件格式](/dumpling-overview.md#输出文件格式)但后缀名并非 gzip 压缩格式的文件(例如 `test-schema-create.sql.origin` 和 `test.table-schema.sql.origin`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 ## 改进提升 @@ -377,7 +377,7 @@ TiDB 版本:6.4.0-DMR + TiDB - 修复新建索引之后有可能导致数据索引不一致的问题 [#38165](https://github.com/pingcap/tidb/issues/38165) @[tangenta](https://github.com/tangenta) - - 修复 `information_schema.TIKV_REGION_STATUS` 表的权限问题 [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) + - 修复 `INFORMATION_SCHEMA.TIKV_REGION_STATUS` 表的权限问题 [#38407](https://github.com/pingcap/tidb/issues/38407) @[CbcWestwolf](https://github.com/CbcWestwolf) - 修复 `mysql.tables_priv` 表中 `grantor` 字段缺失的问题 [#38293](https://github.com/pingcap/tidb/issues/38293) @[CbcWestwolf](https://github.com/CbcWestwolf) - 修复公共表表达式在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - 修复公共表表达式在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) From aff0cab83201a103c110812746a2062485a7fe98 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 16 Nov 2022 19:04:50 +0800 Subject: [PATCH 099/105] fix link errors --- releases/release-6.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 20d62b52e101..39456223f3b8 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -90,7 +90,7 @@ TiDB 版本:6.4.0-DMR * 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) - 在之前的版本中,TiDB 只在 `writechunk` 函数中复用 Chunk。TiDB v6.4.0 扩展 Chunk 复用机制到 Executor 的算子中,通过复用 Chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下的 SQL 查询执行效率。你可以通过系统变量 [`tidb_enable_reuse_chunk`](/system-variable.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) 来控制是否启用 Chunk 对象复用,默认为开启。 + 在之前的版本中,TiDB 只在 `writechunk` 函数中复用 Chunk。TiDB v6.4.0 扩展 Chunk 复用机制到 Executor 的算子中,通过复用 Chunk 减少 TiDB 申请释放内存频率,进而提升部分场景下的 SQL 查询执行效率。你可以通过系统变量 [`tidb_enable_reuse_chunk`](/system-variables.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) 来控制是否启用 Chunk 对象复用,默认为开启。 * 引入新的优化器提示 `NO_DECORRELATE` 来控制关联优化的解除 [#37789](https://github.com/pingcap/tidb/issues/37789) @[time-and-fate](https://github.com/time-and-fate) @@ -128,7 +128,7 @@ TiDB 版本:6.4.0-DMR TiDB v6.4.0 起,正式开启了统计信息同步加载的特性(默认开启),支持在执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高优化该 SQL 语句时统计信息的完整性。 - 更多信息,请参考[用户文档](/system-varaibles.md#tidb_stats_load_sync_wait-从-v540-版本开始引入)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入)。 ### 易用性 @@ -312,7 +312,7 @@ TiDB 版本:6.4.0-DMR ### 其他 -- 从 v6.4.0 开始,`mysql.user` 表新增 `User_attributes` 和 `Token_issuer` 两个字段。如果从 v6.4.0 之前版本的备份数据[恢复 `mysql` schema 下的系统表](/br/br-snapshot-guide#恢复-mysql-数据库下的表) 到 v6.4.0 集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择恢复 `mysql` schema 下的系统表,则不会报错。 +- 从 v6.4.0 开始,`mysql.user` 表新增 `User_attributes` 和 `Token_issuer` 两个字段。如果从 v6.4.0 之前版本的备份数据[恢复 `mysql` schema 下的系统表](/br/br-snapshot-guide.md#恢复-mysql-数据库下的表) 到 v6.4.0 集群,BR 将返回 `mysql.user` 表的 `column count mismatch` 错误。如果你未选择恢复 `mysql` schema 下的系统表,则不会报错。 - 针对命名规则符合 Dumpling [输出文件格式](/dumpling-overview.md#输出文件格式)但后缀名并非 gzip 压缩格式的文件(例如 `test-schema-create.sql.origin` 和 `test.table-schema.sql.origin`),Lightning 的处理方式发生了变化。在 v6.4.0 之前的版本中,如果待导入的文件中包含这类文件,Lightning 将跳过对这类文件的导入。从 v6.4.0 起,Lightning 将认为这些文件使用了不支持的压缩格式,导致导入失败。 - 从 v6.4.0 开始,TiCDC 使用 Syncpoint 功能需要同步任务拥有下游集群的 `SYSTEM_VARIABLES_ADMIN` 或者 `SUPER` 权限。 From 3b7e4fce9efc08d62222939d41378d9077e7b123 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 16 Nov 2022 22:22:22 +0800 Subject: [PATCH 100/105] fix broken links --- releases/release-6.4.0.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 39456223f3b8..91deb9b0875e 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -86,7 +86,7 @@ TiDB 版本:6.4.0-DMR 该特性是对前缀索引使用上的优化。当表中某列存在前缀索引,那么 SQL 语句中对该列的 `IS NULL` 或 `IS NOT NULL` 条件可以直接利用前缀进行过滤,避免了这种情况下的回表,提升了 SQL 语句的执行性能。 - 更多信息,请参考[用户文档](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_prefix_index_single_scan-从-v640-版本开始引入)。 * 增强 TiDB Chunk 复用机制 [#38606](https://github.com/pingcap/tidb/issues/38606) @[keeplearning20221](https://github.com/keeplearning20221) @@ -100,7 +100,7 @@ TiDB 版本:6.4.0-DMR * 提升了分区表统计信息收集的性能 [#37977](https://github.com/pingcap/tidb/issues/37977) @[Yisaer](https://github.com/Yisaer) - 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb-auto-analyze-partitoin-batch-size-从-v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 + 在 v6.4.0 版本中,TiDB 优化了分区表统计信息的收集策略。你可以通过系统变量 [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) 定义并发度,用并行的方式同时收集多个分区的统计信息,从而加快统计信息收集的速度,减少 analyze 所需的时间。 ### 稳定性 @@ -120,9 +120,9 @@ TiDB 版本:6.4.0-DMR * 控制优化器在构造范围时的内存占用 [#37176](https://github.com/pingcap/tidb/issues/37176) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) - v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) 来限制优化器在构造范围时消耗的内存上限。当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。当 SQL 语句中的 `IN` 条件较多时,这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 + v6.4.0 引入了系统变量 [`tidb_opt_range_max_size`](/system-variables.md#tidb_opt_range_max_size-从-v640-版本开始引入) 来限制优化器在构造范围时消耗的内存上限。当内存使用超出这个限制,则放弃构造精确的范围,转而构建更粗粒度的范围,以此降低内存消耗。当 SQL 语句中的 `IN` 条件较多时,这个优化可以显著降低编译时的内存使用量,保证系统的稳定性。 - 更多信息,请参考[用户文档](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_opt_range_max_size-从-v640-版本开始引入)。 * 支持统计信息的同步加载(GA)[#37434](https://github.com/pingcap/tidb/issues/37434) @[chrysan](https://github.com/chrysan) @@ -266,7 +266,7 @@ TiDB 版本:6.4.0-DMR | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 该变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) 控制它的默认值。 | +| [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) | 修改 | 该变量用于控制悲观事务中唯一约束检查的时间点。v6.4.0 去掉了它的 GLOBAL 作用域并支持通过配置项 [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic-从-v640-版本开始引入) 控制它的默认值。 | | [`tidb_ddl_flashback_concurrency`](/system-variables.md#tidb_ddl_flashback_concurrency-从-v630-版本开始引入) | 修改 | 该变量从 v6.4.0 开始生效,用来控制 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 的并发数。默认值为 `64`。 | | [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) | 修改 | 该变量默认值从 `INT_ONLY` 修改为 `ON`,表示表的主键默认使用聚簇索引。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 修改 | 该变量默认值 `OFF` 修改为 `ON`,表示默认使用分页 (paging) 方式发送 Coprocessor 请求。 | @@ -285,11 +285,11 @@ TiDB 版本:6.4.0-DMR | [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值为 `0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | | [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。默认值为 `0.6`。 | | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | -| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb-opt-prefix-index-single-scan-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。默认为 `ON`。 | -| [`tidb_opt_range_max_size`](/system-variables.md#tidb-opt-range-max-size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864`(即 64 MiB)。 | -| [`tidb_server_memory_limit`](/system-variables.md#tidb-server-memory-limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | -| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb-server-memory-limit-gc-trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值(实验特性)。默认值为 `70%`。| -| [`tidb_server_memory_limit_sess_min_size`](/system-variables.md#tidb-server-memory-limit-session-min-size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MiB)。 | +| [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb_opt_prefix_index_single_scan-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。默认为 `ON`。 | +| [`tidb_opt_range_max_size`](/system-variables.md#tidb_opt_range_max_size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864`(即 64 MiB)。 | +| [`tidb_server_memory_limit`](/system-variables.md##tidb_server_memory_limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | +| [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb_server_memory_limit_gc_trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值(实验特性)。默认值为 `70%`。| +| [`tidb_server_memory_limit_sess_min_size`](/system-variables.md#tidb_server_memory_limit_sess_min_size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MiB)。 | ### 配置文件参数 @@ -297,7 +297,7 @@ TiDB 版本:6.4.0-DMR | -------- | -------- | -------- | -------- | | TiDB | `tidb_memory_usage_alarm_ratio` | 废弃 | 该配置不再生效。| | TiDB | `memory-usage-alarm-ratio` | 废弃 | 该配置项被系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 所取代。如果在升级前设置过该配置项,升级后原配置将不再生效。| -| TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值,默认值为 `true`。| +| TiDB | [`pessimistic-txn.constraint-check-in-place-pessimistic`](/tidb-configuration-file.md#constraint-check-in-place-pessimistic-从-v640-版本开始引入) | 新增 | 用于控制系统变量 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 的默认值,默认值为 `true`。| | TiDB | [`tidb_max_reuse_chunk`](/tidb-configuration-file.md#tidb_max_reuse_chunk-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 Chunk 对象数,默认值为 `64`。 | | TiDB | [`tidb_max_reuse_column`](/tidb-configuration-file.md#tidb_max_reuse_column-从-v640-版本开始引入) | 新增 | 用于控制每个连接最多缓存的 column 对象数,默认值为 `256`。 | | TiKV | [`cdc.raw-min-ts-outlier-threshold`](/tikv-configuration-file.md#raw-min-ts-outlier-threshold-从-v620-版本开始引入) | 废弃 | 该配置不再生效。| From 74a4d787be5175ba8ccf9d2cfefd9061dec7dde2 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 16 Nov 2022 22:38:34 +0800 Subject: [PATCH 101/105] fix link errors --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index 91deb9b0875e..ad2e02d15b75 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -287,7 +287,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_memory_usage_alarm_keep_record_num`](/system-variables.md#tidb_memory_usage_alarm_keep_record_num-从-v640-版本开始引入) | 新增 | 当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。通过该变量可以调整该次数。 | | [`tidb_opt_prefix_index_single_scan`](/system-variables.md#tidb_opt_prefix_index_single_scan-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。默认为 `ON`。 | | [`tidb_opt_range_max_size`](/system-variables.md#tidb_opt_range_max_size-从-v640-版本开始引入) | 新增 | 该变量用于指定优化器构造扫描范围的内存用量上限。默认值为 `67108864`(即 64 MiB)。 | -| [`tidb_server_memory_limit`](/system-variables.md##tidb_server_memory_limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | +| [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) | 新增 | 该变量用于指定 TiDB 实例的内存限制(实验特性)。默认值为 `0`,表示不设内存限制。 | | [`tidb_server_memory_limit_gc_trigger`](/system-variables.md#tidb_server_memory_limit_gc_trigger-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 尝试触发 GC 的阈值(实验特性)。默认值为 `70%`。| | [`tidb_server_memory_limit_sess_min_size`](/system-variables.md#tidb_server_memory_limit_sess_min_size-从-v640-版本开始引入) | 新增 | 开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量(实验特性),默认值为 `134217728`(即 128 MiB)。 | From cfd4998bdc10d89c9f631c43988d767b15b34295 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 16 Nov 2022 23:38:28 +0800 Subject: [PATCH 102/105] fix typo --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index ad2e02d15b75..b77b8301b739 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -112,7 +112,7 @@ TiDB 版本:6.4.0-DMR v6.4.0 引入了全局内存控制,对 TiDB 实例的全局内存使用进行追踪。你可以通过系统变量 [`tidb_server_memory_limit`](/system-variables.md#tidb_server_memory_limit-从-v640-版本开始引入) 设置全局内存的使用上限。当内存使用量接近预设的上限时,TiDB 会尝试对内存进行回收,释放更多的可用内存;当内存使用量超出预设的上限时,TiDB 会识别出当前内存使用量最大的 SQL 操作,并取消这个操作,避免因为内存使用过度而产生的系统性问题。 - 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。同时,TiDB 提供了系统表视图 [`information_schame.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`information_schame.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作,帮助用户清晰了解内存使用状况。 + 当 TiDB 实例的内存消耗存在潜在风险时,TiDB 会预先收集诊断信息并写入指定目录,方便对问题的诊断。同时,TiDB 提供了系统表视图 [`INFORMATION_SCHEMA.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) 和 [`INFORMATION_SCHEMA.MEMORY_USAGE_OPS_HISTORY`](/information-schema/information-schema-memory-usage-ops-history.md) 用来展示内存使用情况及历史操作,帮助用户清晰了解内存使用状况。 全局内存控制是 TiDB 内存管理的重要一步,对实例采用全局视角,引入系统性方法对内存用量进行管理,这可以极大提升数据库的稳定性,提高服务的可用性,支持 TiDB 在更多重要场景平稳运行。 From b7aa5fd684539a785d543805d9d9e71e4866947f Mon Sep 17 00:00:00 2001 From: qiancai Date: Thu, 17 Nov 2022 00:05:37 +0800 Subject: [PATCH 103/105] Update release-6.4.0.md --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index b77b8301b739..f4c7da666314 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -280,7 +280,7 @@ TiDB 版本:6.4.0-DMR | [`tidb_auto_analyze_partition_batch_size`](/system-variables.md#tidb_auto_analyze_partition_batch_size-从-v640-版本开始引入) | 新增 | 该变量用于设置 TiDB [自动 analyze](/statistics.md#自动更新) 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。默认值为 `1`。 | | [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否会读取 [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) 指定的时间戳前的历史数据。默认值为 `OFF`。 | | [`tidb_enable_gogc_tuner`](/system-variables.md#tidb_enable_gogc_tuner-从-v640-版本开始引入) | 新增 | 该变量来用控制是否开启 GOGC Tuner,默认为 `ON`。 | -| [`tidb_enable_reuse_chunk`](/system-variables.md#last_sql_use_alloc-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | +| [`tidb_enable_reuse_chunk`](/system-variables.md#tidb_enable_reuse_chunk-从-v640-版本开始引入) | 新增 | 该变量用于控制 TiDB 是否启用 Chunk 对象缓存,默认为 `ON`,代表 TiDB 优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 `OFF`,则直接从系统内存中申请 Chunk 对象。 | | [`tidb_enable_prepared_plan_cache_memory_monitor`](/system-variables.md#tidb_enable_prepared_plan_cache_memory_monitor-从-v640-版本开始引入) | 新增 | 该变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存,默认为 `ON`。| | [`tidb_external_ts`](/system-variables.md#tidb_external_ts-从-v640-版本开始引入) | 新增 | 默认值为 `0`。当 [`tidb_enable_external_ts_read`](/system-variables.md#tidb_enable_external_ts_read-从-v640-版本开始引入) 设置为 `ON` 时,TiDB 会依据该变量指定的时间戳读取历史数据。 | | [`tidb_gogc_tuner_threshold`](/system-variables.md#tidb_gogc_tuner_threshold-从-v640-版本开始引入) | 新增 | 该变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。默认值为 `0.6`。 | From f743c62144b91928a20c25b393cce8d11b278f81 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 17 Nov 2022 11:39:31 +0800 Subject: [PATCH 104/105] Update releases/release-6.4.0.md --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index f4c7da666314..e7a2f0f11632 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -382,7 +382,7 @@ TiDB 版本:6.4.0-DMR - 修复公共表表达式在 join 时可能得到错误结果的问题 [#38170](https://github.com/pingcap/tidb/issues/38170) @[wjhuang2016](https://github.com/wjhuang2016) - 修复公共表表达式在 union 时可能得到错误结果的问题 [#37928](https://github.com/pingcap/tidb/issues/37928) @[YangKeao](https://github.com/YangKeao) - 修复监控面板 **transaction region num** 信息不准确的问题 [#38139](https://github.com/pingcap/tidb/issues/38139) @[jackysp](https://github.com/jackysp) - - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 SESSION [#38766](https://github.com/pingcap/tidb/issues/38766) + - 修复 [`tidb_constraint_check_in_place_pessimistic`](/system-variables.md#tidb_constraint_check_in_place_pessimistic-从-v630-版本开始引入) 可能影响内部事务问题,修改该变量作用域为 SESSION [#38766](https://github.com/pingcap/tidb/issues/38766) @[ekexium](https://github.com/ekexium) - 修复条件在某些场景下被错误下推至 projection 的问题 [#35623](https://github.com/pingcap/tidb/issues/35623) @[Reminiscent](https://github.com/Reminiscent) - 修复 `AND` 和 `OR` 条件的 `isNullRejected` 检查错误导致查询结果错误的问题 [#38304]( https://github.com/pingcap/tidb/issues/38304) @[Yisaer](https://github.com/Yisaer) - 修复外连接消除时没有考虑 `GROUP_CONCAT` 内部的 `ORDER BY` 导致查询出错的问题 [#18216](https://github.com/pingcap/tidb/issues/18216) @[winoros](https://github.com/winoros) From 066534eb949981b7b77738142f99d4db47ad9aea Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 17 Nov 2022 13:46:41 +0800 Subject: [PATCH 105/105] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-6.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-6.4.0.md b/releases/release-6.4.0.md index e7a2f0f11632..14f3560dd6f8 100644 --- a/releases/release-6.4.0.md +++ b/releases/release-6.4.0.md @@ -15,7 +15,7 @@ TiDB 版本:6.4.0-DMR - 支持通过 [`FLASHBACK CLUSTER TO TIMESTAMP`](/sql-statements/sql-statement-flashback-to-timestamp.md) 命令将集群快速回退到特定的时间点 (实验特性)。 - 支持对 TiDB 实例的[全局内存使用进行追踪](/configure-memory-usage.md)(实验特性)。 - TiDB 分区表[兼容 LINEAR HASH 分区语法](/partitioned-table.md#tidb-对-linear-hash-分区的处理)。 -- 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性。 +- 支持高性能、全局单调递增的 [`AUTO_INCREMENT`](/auto-increment.md#mysql-兼容模式) 列属性(实验特性)。 - 支持对 [JSON 类型](/data-type-json.md)中的 Array 数据做范围选择。 - 实现磁盘故障、I/O 无响应等极端情况下的故障恢复加速。 - 新增[动态规划算法](/join-reorder.md#join-reorder-动态规划算法实例)来决定表的连接顺序。