From ee0210031525d16d58f6b0543c7847684b09f441 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 27 Dec 2021 13:14:53 +0800 Subject: [PATCH 01/98] releases: add TiDB 5.4.0 release notes --- TOC.md | 2 + releases/release-5.4.0.md | 207 +++++++++++++++++++++++++++++++++++ releases/release-notes.md | 4 + releases/release-timeline.md | 1 + 4 files changed, 214 insertions(+) create mode 100644 releases/release-5.4.0.md diff --git a/TOC.md b/TOC.md index 9210b82324d9..173c628679bc 100644 --- a/TOC.md +++ b/TOC.md @@ -661,6 +661,8 @@ - 版本发布历史 - [发布版本汇总](/releases/release-notes.md) - [版本发布时间线](/releases/release-timeline.md) + - v5.4 + - [5.4.0](/releases/release-5.4.0.md) - v5.3 - [5.3.0](/releases/release-5.3.0.md) - v5.2 diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md new file mode 100644 index 000000000000..d09c6538db19 --- /dev/null +++ b/releases/release-5.4.0.md @@ -0,0 +1,207 @@ +--- +TiDB 5.4 Release Notes +--- + +# TiDB 5.4 Release Notes + +发版日期:2022 年 x 月 x 日 + +TiDB 版本:5.4.0 + +在 v5.4.0 版本中,你可以获得以下关键特性: + ++ ++ ++ + + +## 兼容性变化 + +> **注意:** +> +> 当从一个早期的 TiDB 版本升级到 TiDB v5.4.0 时,如需了解所有中间版本对应的兼容性更改说明,请查看对应版本的 [Release Notes](/releases/release-notes.md)。 + +### 系统变量 + +| 变量名 | 修改类型 | 描述 | +| :---------- | :----------- | :----------- | +| | | | +| | | | +| | | | + +### 配置文件参数 + +| 配置文件 | 配置项 | 修改类型 | 描述 | +| :---------- | :----------- | :----------- | :----------- | +| | | | +| | | | +| | | | + +### 其他 + +- +- +- +- + +## 新功能 + +### SQL + +- **功能 1** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +- **功能 2** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### 事务 + +- **功能 3** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +- **功能 4** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### 安全 + +- **功能 5** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### 性能 + +- **功能 6** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### 稳定性 + +- **功能 7** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +## 高可用和容灾 + +- **功能 8** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### 数据迁移 + +- **功能 9** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### 问题诊断效率 + +- **功能 10** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +### TiDB 数据共享订阅 + +- **功能 11** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + + +### 部署及运维 + +- **功能 12** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +## 遥测 + +- **功能 13** + + <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> + + <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + + <如果功能限制或此功能特定的兼容性问题,需要提及> + + [用户文档](/) + +## 提升改进 + + +## Bug 修复 + + diff --git a/releases/release-notes.md b/releases/release-notes.md index 700b34fe8b88..ed71dba9afaf 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 历史版本发布声明如下: +## 5.4 + +- [5.4.0](/releases/release-5.4.0.md) + ## 5.3 - [5.3.0](/releases/release-5.3.0.md) diff --git a/releases/release-timeline.md b/releases/release-timeline.md index 2298fd9d30f4..0235c9393ebf 100644 --- a/releases/release-timeline.md +++ b/releases/release-timeline.md @@ -9,6 +9,7 @@ summary: 了解 TiDB 的版本发布时间线。 | 版本 | 发布日期 | | :--- | :--- | +| [5.4.0](/releases/release-5.4.0.md) | 2022-x-x | | [4.0.16](/releases/release-4.0.16.md) | 2021-12-17 | | [5.1.3](/releases/release-5.1.3.md) | 2021-12-03 | | [5.0.5](/releases/release-5.0.5.md) | 2021-12-03 | From c791431864aa6a4f88bc9fbfe775350b4d06b29d Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 4 Jan 2022 15:49:06 +0800 Subject: [PATCH 02/98] add compatibility and features --- releases/release-5.4.0.md | 76 ++++++++++++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 8 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index d09c6538db19..75649a44ff8d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -25,7 +25,7 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | -| | | | +| `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | | | | | | | | | @@ -33,16 +33,22 @@ TiDB 版本:5.4.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | :----------- | -| | | | -| | | | -| | | | +| TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。 在默认配置下,备份速度可能下降。 | +| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size`、`log-rotation-timespan` | 删除 | 废弃 TiKV log 参数,改为使用 TiDB 的 log 参数。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 参数,使用 TiDB log 参数。 | +| PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | +| PD | `log.disable-timestamp` | 删除 | v5.4.0 前该参数默认值为 `false`。自 v5.4.0 起废弃该参数。如果集群在升级至 v5.4.0 前该参数值不为 `false`,要保持兼容。 | ### 其他 -- -- -- -- +- TiDB Dashboard 默认不再使用 `root` + 空密码登录。 + + 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 + +- TiFlash 不支持 GBK 字符 +- 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 +- `character_set_client` 在处理 `prepare` 语句时可能出现兼容性问题。 +- TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 +- 从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,`tidb_enable_index_merge` 变量默认关闭。 ## 新功能 @@ -114,6 +120,12 @@ TiDB 版本:5.4.0 [用户文档](/) +- **Raft Engine(实验特性)** + + 支持使用 Raft Engine 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。 + + 由于 Raft Engine 涉及数据格式改动,目前仍属于实验特性,并默认关闭。同时请注意最新的 Raft Engine 不与 v5.4.0 版本前的 Raft Engine 兼容。因此在进行跨越 v5.4.0 版本的升级和降级之前,需要确保已有 TiKV 节点上的 Raft Engine 已被关闭。 + ### 稳定性 - **功能 7** @@ -138,6 +150,21 @@ TiDB 版本:5.4.0 [用户文档](/) +- **优化备份对集群的影响** + + Backup & Restore (BR) 增加了备份线程自动调节功能。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 + + 该功能默认开启,但是如果你在离线环境中进行备份,可以关闭该功能来获得更高的备份速度。 + + 详细文档请阅读 [BR 自动调节](/br/br-features.md#自动调节-从-v54-版本开始引入)。 + +- **支持 Azure Blob Storage 作为备份目标存储(实验特性)** + + BR 支持 Azure Blob Storage 作为备份的远端目标存储。在 Azure Cloud 环境部署 TiDB 的用户,可以支持使用该功能将集群数据备份到 Azure Blob Storage 服务中。 + + 该功能目前是实验特性,详细情况参考 [BR 支持 Azure Blob Storage 远端存储](/br/backup-and-restore-azblob.md)。 + + ### 数据迁移 - **功能 9** @@ -150,6 +177,29 @@ TiDB 版本:5.4.0 [用户文档](/) +- **为 TiDB Lightning 增加已存在数据表是否允许导入的开关** + + 为 TiDB Lightning 增加 `incremental-import` 开关。默认值为 `false`,表明目标表已存在数据时将不会执行导入。将默认值改为 `true` 则继续导入。注意,当使用并行导入特性时,需要将该配置项设为 `true`。 + +- **在 TiDB Lightning 中添加重复数据的检测** + + 在 `backend=local` 模式下,数据导入完成之前 TiDB Lightning 会输出冲突数据,然后从数据库中删除这些冲突数据。用户可以在导入完成后解析冲突数据,并根据业务规则选择适合的数据进行插入。建议根据冲突数据清洗上游数据源,避免在后续增量数据迁移阶段遇到冲突数据而造成数据不一致。 + +- **在 TiDB Data Migration (DM) 中 优化 relay log 的使用方式** + + - 恢复 `source` 配置中 `enable-relay` 开关 + - 增加 `start-relay` 或 `stop-relay` 命令中动态开启或关闭 relay log 的功能 + - relay log 的开启状态与 `source` 绑定,source 迁移到任意 DM-worker 均保持原有开启或关闭状态 + - relay log 的存放路径移至 DM-worker 配置文件 + +- **在 DM 中优化排序规则的处理方式** + + 增加 `collation_compatible` 开关,支持 `strict` 和 `loose`(默认)两种模式。如果对排序规则要求不严格,允许排序规则不一致,使用默认的 `loose` 模式可使同步正常进行;如果对排序规则要求严格,排序规则不一致导致报错,则可以使用 `strict` 模式。 + +- **在 DM 中新增 `transfer source` 支持平滑执行同步任务** + + 当 DM-worker 所在各节点负载不均衡时,`transfer source` 命令可用于手动将某 `source` 配置迁移到其他节点。优化后的 `transfer source` 简化了用户操作步骤,不再要求先暂停所有关联 task 而是直接执行平滑迁移,DM 将在内部完成所需操作。 + ### 问题诊断效率 - **功能 10** @@ -187,6 +237,16 @@ TiDB 版本:5.4.0 [用户文档](/) +- **持续性能分析(实验特性)** + + - 支持更多组件:支持 TiFlash 组件查看 CPU Profiling + - 支持更方便的查看形式:支持以火焰图形式查看 CPU Profiling 和 Goroutine 结果。 + - 支持更多部署环境:支持在 TiDB Operator 部署环境下启用持续性能分析功能。 + + 该功能默认关闭,需进入 TiDB Dashboard 持续性能分析页面开启,开启方法见[用户文档](/dashboard/continuous-profiling.md)。 + + 要使用持续性能分析功能,集群须由 TiUP v1.9.0 及以上版本或 TiDB Operator vx.x.x(TBD)及以上版本升级或安装。 + ## 遥测 - **功能 13** From 86807a1e50ddaf7274e12fca110f35bb854c7a23 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 4 Jan 2022 15:52:42 +0800 Subject: [PATCH 03/98] Update _index.md --- _index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_index.md b/_index.md index 0a903c937bd7..9d988ac0d25c 100644 --- a/_index.md +++ b/_index.md @@ -16,7 +16,7 @@ aliases: ['/docs-cn/dev/'] - [TiDB 简介](/overview.md) - [基本功能](/basic-features.md) -- [TiDB 5.3 Release Notes](/releases/release-5.3.0.md) +- [TiDB 5.4 Release Notes](/releases/release-5.4.0.md) - [TiDB 版本发布时间线](/releases/release-timeline.md) - [与 MySQL 的兼容性](/mysql-compatibility.md) - [使用限制](/tidb-limitations.md) From 47d5007e084597c469d1654a4e2e4bfa90d0a425 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 4 Jan 2022 17:30:20 +0800 Subject: [PATCH 04/98] add content from LiSong2014 and youjiali1995 --- releases/release-5.4.0.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 75649a44ff8d..cbebc7320f59 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -26,7 +26,7 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | | `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | -| | | | +| `tidb_enable_paging` | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用 paging 方式发送 coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能出现延迟高、TiKV 的 unified read pool CPU 使用高的情况。在这种情况下,由于 `Limit` 算子限制只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,降低延迟,减少资源消耗。 | | | | | ### 配置文件参数 @@ -36,7 +36,6 @@ TiDB 版本:5.4.0 | TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。 在默认配置下,备份速度可能下降。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size`、`log-rotation-timespan` | 删除 | 废弃 TiKV log 参数,改为使用 TiDB 的 log 参数。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 参数,使用 TiDB log 参数。 | | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | -| PD | `log.disable-timestamp` | 删除 | v5.4.0 前该参数默认值为 `false`。自 v5.4.0 起废弃该参数。如果集群在升级至 v5.4.0 前该参数值不为 `false`,要保持兼容。 | ### 其他 @@ -120,12 +119,20 @@ TiDB 版本:5.4.0 [用户文档](/) -- **Raft Engine(实验特性)** +- **新增 Raft Engine(实验特性)** 支持使用 Raft Engine 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。 由于 Raft Engine 涉及数据格式改动,目前仍属于实验特性,并默认关闭。同时请注意最新的 Raft Engine 不与 v5.4.0 版本前的 Raft Engine 兼容。因此在进行跨越 v5.4.0 版本的升级和降级之前,需要确保已有 TiKV 节点上的 Raft Engine 已被关闭。 +- TiFlash + + - 支持将更多函数下推至 MPP 引擎 + - 字符串函数:`LPAD()`、`RPAD()`、`STRCMP()` + - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` + - 引入动态线程池,提升资源利用率 + - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 + ### 稳定性 - **功能 7** @@ -261,6 +268,10 @@ TiDB 版本:5.4.0 ## 提升改进 ++ TiDB + + - 新增系统变量 `tidb_enable_paging`,开启该功能可显著降低使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 数据较小且无法下推到 `IndexScan` 上的读请求的延迟 [#30578](https://github.com/pingcap/tidb/issues/30578) + ## Bug 修复 From ae11ed9a82fe2255da5966746cdb1c9e61ddef0c Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 4 Jan 2022 19:52:30 +0800 Subject: [PATCH 05/98] Update releases/release-5.4.0.md Co-authored-by: Xinye Tao --- releases/release-5.4.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index cbebc7320f59..aed73c3bbe61 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -121,10 +121,12 @@ TiDB 版本:5.4.0 - **新增 Raft Engine(实验特性)** - 支持使用 Raft Engine 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。 + 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。 由于 Raft Engine 涉及数据格式改动,目前仍属于实验特性,并默认关闭。同时请注意最新的 Raft Engine 不与 v5.4.0 版本前的 Raft Engine 兼容。因此在进行跨越 v5.4.0 版本的升级和降级之前,需要确保已有 TiKV 节点上的 Raft Engine 已被关闭。 + [用户文档](/tikv-configuration-file.md#raft-engine) + - TiFlash - 支持将更多函数下推至 MPP 引擎 From fc82523bb0794206743a521b8b2187d978e90e75 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:11:49 +0800 Subject: [PATCH 06/98] add compatibility changes and some features --- releases/release-5.4.0.md | 105 +++++++++++++++++++++++++++++++++++--- 1 file changed, 98 insertions(+), 7 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index aed73c3bbe61..4bb76184f9e0 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -26,29 +26,83 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | | `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | +| `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,该变量值默认保持 `OFF`。 | | `tidb_enable_paging` | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用 paging 方式发送 coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能出现延迟高、TiKV 的 unified read pool CPU 使用高的情况。在这种情况下,由于 `Limit` 算子限制只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,降低延迟,减少资源消耗。 | -| | | | +| `tidb_read_staleness` | 新增 | | +| `tidb_stats_load_sync_wait` | 新增 | | +| `tidb_stats_load_pseudo_timeout` | 新增 | | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | :----------- | -| TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。 在默认配置下,备份速度可能下降。 | -| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size`、`log-rotation-timespan` | 删除 | 废弃 TiKV log 参数,改为使用 TiDB 的 log 参数。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 参数,使用 TiDB log 参数。 | +| TiDB | `stats-load-concurrency` | 新增 | | +| TiDB | `stats-load-queue-size` | 新增 | | +| TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源以求减少对集群的影响。在默认配置下,备份速度可能下降。 | +| TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | +| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size`、`log-rotation-timespan` | 删除 | 废弃 TiKV log 参数,改为使用与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | +| TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。 | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | +| PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | +| PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认为 7 天。 +| TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| +| TiDB Data Migration (DM) | `collation_compatible` | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | +| TiFlash | `storage.format_version` | 新增可选值 | 表示 DTFile 储存文件格式,默认值为 `2`。| +| TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | +| TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | -### 其他 +#### 统一各组件的日志格式和日志归档轮转规则 -- TiDB Dashboard 默认不再使用 `root` + 空密码登录。 +TiDB 提供了多个用户可见的组件,为了保证使用体验的一致性,从 v5.4.0 版本开始 TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。具体日志设置如下: - 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 +``` +level = "info" +设置日志输出等级,默认为 info,支持 debug, info, warn, error, fatal 五个等级。 + +format = "text" +设置日志输出格式,默认为 text,支持 text 和 json 两种格式。 + +enable-timestamp = true +设置时间戳输出开关,默认为 true。 + +filename = "" +设置日志文件名前缀,默认为无前缀。 + +max-size = 300 +设置日志分割大小,默认为 300 MB,最大支持 4096 MB。 + +max-days = 0 +设置日志最大保留天数,默认全保留不清理。 + +max-backups = 0 +设置日志备份的最大保留文件数,默认全保留不清理。 +``` + +### 字符集与排序规则 -- TiFlash 不支持 GBK 字符 +TiDB 从 v5.4.0 起支持 GBK 字符集。 + +在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则。 + +在使用 GBK 字符集时,请注意以下兼容性限制: + +- TiFlash 暂不支持 GBK 字符。 +- TiCDC 暂不支持 GBK 字符。 - 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 - `character_set_client` 在处理 `prepare` 语句时可能出现兼容性问题。 - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 +- TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 + +### 其他 + +- TiDB Dashboard 默认不再使用 `root` + 空密码登录。 + + 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 + + - 从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,`tidb_enable_index_merge` 变量默认关闭。 + ## 新功能 ### SQL @@ -135,6 +189,24 @@ TiDB 版本:5.4.0 - 引入动态线程池,提升资源利用率 - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 +- **通过 session 变量实现有界限过期数据读取** + + TiDB 是基于 Raft 协议的多副本分布式数据库。面对高并发,高吞吐业务场景,可以通过follower 节点实现读性能扩展,构建读写分离架构。 + + 针对不同的业务场景,follower 提供强一致读和弱一致过期读两种读模式。强一致读满足数据实时性要求严格的业务场景,但是因为 leader 和 follower 的数据同步延迟、吞吐较低、延迟较高,特别是在跨机房架构下延迟问题被进一步放大。 + + 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过显示只读事务或 SQL 语句的方式实现过期读。两种方式均支持指定时间的精确过期读和指定时间边界的过期读两种模式,详细用法请参考[过期读文档](/read-historical-data.md)。 + + 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,具体设置如下: + + ```sql + set @@tidb_replica_read=leader_and_follower + set @@tidb_read_staleness="-5" + ``` + + 通过该设置,可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟前的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 + + ### 稳定性 - **功能 7** @@ -147,6 +219,21 @@ TiDB 版本:5.4.0 [用户文档](/) +- **支持统计信息采集配置持久化** + + 统计信息是优化器生成执行计划时所参考的基础信息之一,统计信息的准确性直接影响生成的执行计划是否合理。为了保证统计信息的准确性,有时候需要针对不同的表、分区、索引设置不同的采集配置项。 + + TiDB 从 v5.4.0 版本开始支持通过 `analyze` 命令采集统计信息并持久化指定的配置项,方便后续的统计信息采集沿用已有配置项。具体配置项信息请参考 [`Analyze` 文档](/sql-statements/sql-statement-analyze-table.md#analyze)的 `AnalyzeOption` 章节。 + + - 开启采集配置项持久化 + + 设置 `tidb_analyze_version = 2` 且 `tidb_persist_analyze_options = true` 会开启配置项持久化。开启后,手动 analyze 指定的所有配置项会被持久化并覆盖已有选项。后续的手动或自动 analyze 任务会沿用已有配置项进行统计信息采集,直到持久化功能关闭或用户手动指定新的采集配置项。 + + - 关闭采集配置项持久化 + + 设置 `tidb_analyze_version = 1` 或 `tidb_persist_analyze_options = false` 会关闭采集配置项持久化功能。持久化关闭后,已有配置项不会被删除,但不记录新增配置项。新采集任务不会沿用已有的持久化配置项,再次开启采集配置项持久化将会直接使用已有的配置项进行统计信息采集。如果需要更新已有的配置项,请手动执行 `analyze` 命令并指定新的采集配置项。 + + ## 高可用和容灾 - **功能 8** @@ -209,6 +296,10 @@ TiDB 版本:5.4.0 当 DM-worker 所在各节点负载不均衡时,`transfer source` 命令可用于手动将某 `source` 配置迁移到其他节点。优化后的 `transfer source` 简化了用户操作步骤,不再要求先暂停所有关联 task 而是直接执行平滑迁移,DM 将在内部完成所需操作。 +- **优化 TiCDC 对集群的影响** + + 大幅降低了 TiCDC 启用后,对 TiDB 集群的性能影响。在实验室环境中,TiCDC 对 TiDB 的性能影响可以降低到 5% 以下。 + ### 问题诊断效率 - **功能 10** From af799d9cb9ecac0a96efd7a488e4c2659ce3f690 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:35:54 +0800 Subject: [PATCH 07/98] add one feature --- releases/release-5.4.0.md | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 4bb76184f9e0..904f699c3b69 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -78,28 +78,12 @@ max-backups = 0 设置日志备份的最大保留文件数,默认全保留不清理。 ``` -### 字符集与排序规则 - -TiDB 从 v5.4.0 起支持 GBK 字符集。 - -在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则。 - -在使用 GBK 字符集时,请注意以下兼容性限制: - -- TiFlash 暂不支持 GBK 字符。 -- TiCDC 暂不支持 GBK 字符。 -- 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 -- `character_set_client` 在处理 `prepare` 语句时可能出现兼容性问题。 -- TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 -- TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 - ### 其他 - TiDB Dashboard 默认不再使用 `root` + 空密码登录。 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 - - 从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,`tidb_enable_index_merge` 变量默认关闭。 @@ -117,15 +101,18 @@ TiDB 从 v5.4.0 起支持 GBK 字符集。 [用户文档](/) -- **功能 2** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> +- **TiDB 从 v5.4.0 起支持 GBK 字符集** - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> + 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则。 - <如果功能限制或此功能特定的兼容性问题,需要提及> + 在使用 GBK 字符集时,请注意以下兼容性限制: - [用户文档](/) + - TiFlash 暂不支持 GBK 字符。 + - TiCDC 暂不支持 GBK 字符。 + - 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 + - `character_set_client` 在处理 `prepare` 语句时可能出现兼容性问题。 + - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 + - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 ### 事务 @@ -161,6 +148,12 @@ TiDB 从 v5.4.0 起支持 GBK 字符集。 [用户文档](/) +- **TiSpark 支持用户认证与鉴权** + + TiSpark 提供数据库和表级别的读写授权验证以及数据库用户认证验证。开启该功能后,能避免业务侧未经授权运行抽数等批量任务获取数据,提高线上集群的稳定性和数据安全性。从 TiSpark v2.5.0 后开始支持。 + + 该功能默认关闭。开启后,如果用户没有对应的权限,通过 TiSpark 操作会抛出对应的异常。 + ### 性能 - **功能 6** From 38a19859ddeec893a7c360eb965c03b3e31ce743 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 6 Jan 2022 09:53:47 +0800 Subject: [PATCH 08/98] add top sql and address comments --- releases/release-5.4.0.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 904f699c3b69..efed758332ef 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -150,7 +150,7 @@ max-backups = 0 - **TiSpark 支持用户认证与鉴权** - TiSpark 提供数据库和表级别的读写授权验证以及数据库用户认证验证。开启该功能后,能避免业务侧未经授权运行抽数等批量任务获取数据,提高线上集群的稳定性和数据安全性。从 TiSpark v2.5.0 后开始支持。 + TiSpark 提供数据库和表级别的读写授权验证以及数据库用户认证验证。开启该功能后,能避免业务侧未经授权运行抽数等批量任务获取数据,提高线上集群的稳定性和数据安全性。从 TiSpark v2.5.0 起开始支持。 该功能默认关闭。开启后,如果用户没有对应的权限,通过 TiSpark 操作会抛出对应的异常。 @@ -249,7 +249,7 @@ max-backups = 0 - **支持 Azure Blob Storage 作为备份目标存储(实验特性)** - BR 支持 Azure Blob Storage 作为备份的远端目标存储。在 Azure Cloud 环境部署 TiDB 的用户,可以支持使用该功能将集群数据备份到 Azure Blob Storage 服务中。 + Backup & Restore (BR) 支持 Azure Blob Storage 作为备份的远端目标存储。在 Azure Cloud 环境部署 TiDB 的用户,可以支持使用该功能将集群数据备份到 Azure Blob Storage 服务中。 该功能目前是实验特性,详细情况参考 [BR 支持 Azure Blob Storage 远端存储](/br/backup-and-restore-azblob.md)。 @@ -285,10 +285,15 @@ max-backups = 0 增加 `collation_compatible` 开关,支持 `strict` 和 `loose`(默认)两种模式。如果对排序规则要求不严格,允许排序规则不一致,使用默认的 `loose` 模式可使同步正常进行;如果对排序规则要求严格,排序规则不一致导致报错,则可以使用 `strict` 模式。 -- **在 DM 中新增 `transfer source` 支持平滑执行同步任务** +- **在 DM 中 优化 `transfer source`,支持平滑执行同步任务** 当 DM-worker 所在各节点负载不均衡时,`transfer source` 命令可用于手动将某 `source` 配置迁移到其他节点。优化后的 `transfer source` 简化了用户操作步骤,不再要求先暂停所有关联 task 而是直接执行平滑迁移,DM 将在内部完成所需操作。 +- **DM OpenAPI 特性 GA** + + DM 支持通过 API 的方式进行日常管理,包括增加数据源、管理任务等。本次更新 OpenAPI 从实验特性转为正式特性。 + + - **优化 TiCDC 对集群的影响** 大幅降低了 TiCDC 启用后,对 TiDB 集群的性能影响。在实验室环境中,TiCDC 对 TiDB 的性能影响可以降低到 5% 以下。 @@ -305,6 +310,12 @@ max-backups = 0 [用户文档](/) +- **Top SQL(实验特性)** + + 新推出实验性特性 Top SQL(默认关闭),帮助用户轻松找到节点中负载贡献较大的查询。 + + [用户文档](/dashboard/top-sql.md) + ### TiDB 数据共享订阅 - **功能 11** From fc711033f235fc5ec6500c0c2d281f3664bf7df2 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 6 Jan 2022 09:54:39 +0800 Subject: [PATCH 09/98] Update release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index efed758332ef..3809b39a80d1 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -1,5 +1,5 @@ --- -TiDB 5.4 Release Notes +title: TiDB 5.4 Release Notes --- # TiDB 5.4 Release Notes From ab3a07c352b70ad4b71208e7dfe61d2735891afd Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 6 Jan 2022 11:21:42 +0800 Subject: [PATCH 10/98] update compatibility --- releases/release-5.4.0.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 3809b39a80d1..480962046c4d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -44,12 +44,15 @@ TiDB 版本:5.4.0 | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。 | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | -| PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认为 7 天。 +| PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认值为 `7`。 | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiDB Data Migration (DM) | `collation_compatible` | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiFlash | `storage.format_version` | 新增可选值 | 表示 DTFile 储存文件格式,默认值为 `2`。| | TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | | TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | +| TiCDC | `enable-tidb-extension` | 新增 | 开启该配置项后,TiCDC 在 Canal-JSON 协议格式中附加 TiDB 扩展字段。 | +| TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `10M` | +| TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | #### 统一各组件的日志格式和日志归档轮转规则 @@ -84,7 +87,7 @@ max-backups = 0 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 -- 从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,`tidb_enable_index_merge` 变量默认关闭。 +- 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 ## 新功能 From b4bf160b7254abfbdd3423a86fe4668cf6f0b6d3 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 6 Jan 2022 14:49:55 +0800 Subject: [PATCH 11/98] remove unnecessary templates --- releases/release-5.4.0.md | 130 +------------------------------------- 1 file changed, 2 insertions(+), 128 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 480962046c4d..18a6f635d15a 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -94,16 +94,6 @@ max-backups = 0 ### SQL -- **功能 1** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **TiDB 从 v5.4.0 起支持 GBK 字符集** 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则。 @@ -117,40 +107,8 @@ max-backups = 0 - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 -### 事务 - -- **功能 3** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - -- **功能 4** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - ### 安全 -- **功能 5** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **TiSpark 支持用户认证与鉴权** TiSpark 提供数据库和表级别的读写授权验证以及数据库用户认证验证。开启该功能后,能避免业务侧未经授权运行抽数等批量任务获取数据,提高线上集群的稳定性和数据安全性。从 TiSpark v2.5.0 起开始支持。 @@ -159,16 +117,6 @@ max-backups = 0 ### 性能 -- **功能 6** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **新增 Raft Engine(实验特性)** 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。 @@ -205,16 +153,6 @@ max-backups = 0 ### 稳定性 -- **功能 7** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **支持统计信息采集配置持久化** 统计信息是优化器生成执行计划时所参考的基础信息之一,统计信息的准确性直接影响生成的执行计划是否合理。为了保证统计信息的准确性,有时候需要针对不同的表、分区、索引设置不同的采集配置项。 @@ -232,16 +170,6 @@ max-backups = 0 ## 高可用和容灾 -- **功能 8** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **优化备份对集群的影响** Backup & Restore (BR) 增加了备份线程自动调节功能。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 @@ -259,16 +187,6 @@ max-backups = 0 ### 数据迁移 -- **功能 9** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **为 TiDB Lightning 增加已存在数据表是否允许导入的开关** 为 TiDB Lightning 增加 `incremental-import` 开关。默认值为 `false`,表明目标表已存在数据时将不会执行导入。将默认值改为 `true` 则继续导入。注意,当使用并行导入特性时,需要将该配置项设为 `true`。 @@ -296,23 +214,8 @@ max-backups = 0 DM 支持通过 API 的方式进行日常管理,包括增加数据源、管理任务等。本次更新 OpenAPI 从实验特性转为正式特性。 - -- **优化 TiCDC 对集群的影响** - - 大幅降低了 TiCDC 启用后,对 TiDB 集群的性能影响。在实验室环境中,TiCDC 对 TiDB 的性能影响可以降低到 5% 以下。 - ### 问题诊断效率 -- **功能 10** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **Top SQL(实验特性)** 新推出实验性特性 Top SQL(默认关闭),帮助用户轻松找到节点中负载贡献较大的查询。 @@ -321,29 +224,12 @@ max-backups = 0 ### TiDB 数据共享订阅 -- **功能 11** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) +- **优化 TiCDC 对集群的影响** + 大幅降低了 TiCDC 启用后,对 TiDB 集群的性能影响。在实验室环境中,TiCDC 对 TiDB 的性能影响可以降低到 5% 以下。 ### 部署及运维 -- **功能 12** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - - **持续性能分析(实验特性)** - 支持更多组件:支持 TiFlash 组件查看 CPU Profiling @@ -354,18 +240,6 @@ max-backups = 0 要使用持续性能分析功能,集群须由 TiUP v1.9.0 及以上版本或 TiDB Operator vx.x.x(TBD)及以上版本升级或安装。 -## 遥测 - -- **功能 13** - - <功能描述 (功能是什么 + 能给用户带来什么好处 + 需要用户注意什么)> - - <功能支持情况,告诉用户 TiDB 默认开始还是关闭此功能,如果默认关闭,如何开启> - - <如果功能限制或此功能特定的兼容性问题,需要提及> - - [用户文档](/) - ## 提升改进 + TiDB From a705a361d2e638e6f125548d25aa45d5bbfcfac6 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 6 Jan 2022 15:20:42 +0800 Subject: [PATCH 12/98] Update release-5.4.0.md --- releases/release-5.4.0.md | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 18a6f635d15a..7be9af450b09 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -246,7 +246,48 @@ max-backups = 0 - 新增系统变量 `tidb_enable_paging`,开启该功能可显著降低使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 数据较小且无法下推到 `IndexScan` 上的读请求的延迟 [#30578](https://github.com/pingcap/tidb/issues/30578) ++ TiKV + ++ PD + ++ TiFlash + ++ Tools + + + Backup & Restore (BR) + + + TiCDC + + + TiDB Data Migration (DM) + + + TiDB Lightning + + + Dumpling + + + TiDB Binlog ## Bug 修复 ++ TiDB + ++ TiKV + ++ PD + ++ TiFlash + ++ Tools + + + Backup & Restore (BR) + + + TiCDC + + + TiDB Data Migration (DM) + + + TiDB Lightning + + + Dumpling + + + TiDB Binlog + From d0228587d7a5edfc07ed1ff3f199090c5c631450 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 6 Jan 2022 20:24:00 +0800 Subject: [PATCH 13/98] add a few configs --- releases/release-5.4.0.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 7be9af450b09..ea25b9d08a0d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -40,7 +40,8 @@ TiDB 版本:5.4.0 | TiDB | `stats-load-queue-size` | 新增 | | | TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源以求减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | -| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size`、`log-rotation-timespan` | 删除 | 废弃 TiKV log 参数,改为使用与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | +| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | +| TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。 | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | @@ -50,6 +51,8 @@ TiDB 版本:5.4.0 | TiFlash | `storage.format_version` | 新增可选值 | 表示 DTFile 储存文件格式,默认值为 `2`。| | TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | | TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | +| TiFlash | `raftstore.apply-pool-size` | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | +| TiFlash | `raftstore.store-pool-size` | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | | TiCDC | `enable-tidb-extension` | 新增 | 开启该配置项后,TiCDC 在 Canal-JSON 协议格式中附加 TiDB 扩展字段。 | | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `10M` | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | From f02dc892fcc9878ed5ca4b603060fc1b4ad2dca9 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 7 Jan 2022 13:05:46 +0800 Subject: [PATCH 14/98] Update release-5.4.0.md --- releases/release-5.4.0.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index ea25b9d08a0d..0f1d83a9f603 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -14,7 +14,6 @@ TiDB 版本:5.4.0 + + - ## 兼容性变化 > **注意:** @@ -128,13 +127,15 @@ max-backups = 0 [用户文档](/tikv-configuration-file.md#raft-engine) -- TiFlash +- **提升 TiFlash 性能和稳定性** - - 支持将更多函数下推至 MPP 引擎 - - 字符串函数:`LPAD()`、`RPAD()`、`STRCMP()` - - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` - - 引入动态线程池,提升资源利用率 - - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 + - 支持将更多函数下推至 MPP 引擎 + - 字符串函数:`LPAD()`、`RPAD()`、`STRCMP()` + - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` + - 引入动态线程池,提升资源利用率 + - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 + - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率, 此环节的 CPU 使用率最多可降低 90% + - TiFlash 调整了文件系统中 Delta Tree 相关的默认参数,使之更适合一般的生产环境 - **通过 session 变量实现有界限过期数据读取** From 267c2d8cc15188304d39cb1813f85b0ecef3ca67 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 7 Jan 2022 13:49:37 +0800 Subject: [PATCH 15/98] Update release-5.4.0.md --- releases/release-5.4.0.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 0f1d83a9f603..28edf097e285 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -109,6 +109,10 @@ max-backups = 0 - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 +- **TiFlash IndexMerge GA** + + + ### 安全 - **TiSpark 支持用户认证与鉴权** @@ -132,9 +136,9 @@ max-backups = 0 - 支持将更多函数下推至 MPP 引擎 - 字符串函数:`LPAD()`、`RPAD()`、`STRCMP()` - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` - - 引入动态线程池,提升资源利用率 + - 引入动态线程池,提升资源利用率(实验特性) - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 - - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率, 此环节的 CPU 使用率最多可降低 90% + - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,此环节的 CPU 使用率最多可降低 90% - TiFlash 调整了文件系统中 Delta Tree 相关的默认参数,使之更适合一般的生产环境 - **通过 session 变量实现有界限过期数据读取** From 2a8345df0e3c4dd27903096a8e6f81d08ff14f6f Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 7 Jan 2022 14:37:22 +0800 Subject: [PATCH 16/98] add tikv improvement and bug fix notes --- releases/release-5.4.0.md | 45 +++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 28edf097e285..c2de2dfc92b7 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -10,9 +10,16 @@ TiDB 版本:5.4.0 在 v5.4.0 版本中,你可以获得以下关键特性: -+ -+ -+ ++ 支持 GBK 字符集 ++ 支持通过 session 变量实现有界限过期数据读取 ++ 支持统计信息采集配置持久化 ++ 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 ++ 优化备份对集群的影响 ++ 支持 Azure Blob Storage 作为备份目标存储(实验特性) ++ 提升 TiFlash 性能和稳定性 ++ 为 TiDB Lightning 增加已存在数据表是否允许导入的开关 ++ 优化持续性能分析实验特性 ++ TiSpark 支持用户认证与鉴权 ## 兼容性变化 @@ -27,21 +34,25 @@ TiDB 版本:5.4.0 | `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | | `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,该变量值默认保持 `OFF`。 | | `tidb_enable_paging` | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用 paging 方式发送 coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能出现延迟高、TiKV 的 unified read pool CPU 使用高的情况。在这种情况下,由于 `Limit` 算子限制只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,降低延迟,减少资源消耗。 | -| `tidb_read_staleness` | 新增 | | -| `tidb_stats_load_sync_wait` | 新增 | | -| `tidb_stats_load_pseudo_timeout` | 新增 | | +| `tidb_read_staleness` | 新增 | 用于设置当前会话期待读取的历史数据的所处时刻,默认值为 `0` | +| `tidb_stats_load_sync_wait` | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | +| `tidb_stats_load_pseudo_timeout` | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | +| `tidb_persist_analyze_options` | 新增 | 这个变量用于控制是否持久化执行 `ANALYZE` 语句时指定的配置项 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | :----------- | -| TiDB | `stats-load-concurrency` | 新增 | | -| TiDB | `stats-load-queue-size` | 新增 | | +| TiDB | `stats-load-concurrency` | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以并发处理多少列,默认值为 `5` | +| TiDB | `stats-load-queue-size` | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | | TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源以求减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | -| TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。 +| TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| +| TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | +| TiKV | `raftstore.raft-log-gc-tick-interval` | 修改 | 默认值修改为 `3s` | +| TiKV | `raftstore.raft-log-compact-sync-interval` | 新增 | 控制 CompactLog 命令的间隔,默认值为 `2s` | | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | | PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认值为 `7`。 @@ -256,6 +267,17 @@ max-backups = 0 + TiKV + - Coprocessor 支持分页 API 进行流式处理 [#11448](https://github.com/tikv/tikv/issues/11448) + - 支持 `read-through-lock`,使读操作不需要等待清理 secondary lock [#11402](https://github.com/tikv/tikv/issues/11402) + - 增加了磁盘保护机制,尽量避免磁盘空间耗尽导致 panic [#10960](https://github.com/tikv/tikv/issues/10960) [#10959](https://github.com/tikv/tikv/issues/10959) [#10926](https://github.com/tikv/tikv/issues/10926) [#10925](https://github.com/tikv/tikv/issues/10925) [#10895](https://github.com/tikv/tikv/issues/10895) [#10894](https://github.com/tikv/tikv/issues/10894) [#10868](https://github.com/tikv/tikv/issues/10868) [#10840](https://github.com/tikv/tikv/issues/10840) [#10839](https://github.com/tikv/tikv/issues/10839) [#10819](https://github.com/tikv/tikv/issues/10819) [#10801](https://github.com/tikv/tikv/issues/10801) + - 日志支持存档和轮替 [#11651](https://github.com/tikv/tikv/issues/11651) + - 减少 Raft 客户端的系统调用并提高 CPU 效率 [#11309](https://github.com/tikv/tikv/issues/11309) + - Coprocessor 支持下推 substring 到 TiKV [#11495](https://github.com/tikv/tikv/issues/11495) + - 通过跳过读锁提高在 RC 隔离级别中扫描的性能 [#11485](https://github.com/tikv/tikv/issues/11485) + - 减少备份使用的默认线程池大小,并在压力大时限制其使用 [#11000](https://github.com/tikv/tikv/issues/11000) + - 支持动态调整 Apply 和 Store 线程池大小 [#11159](https://github.com/tikv/tikv/issues/11159) + - 支持配置 `snap-generator` 线程池大小 [#11247](https://github.com/tikv/tikv/issues/11247) + + PD + TiFlash @@ -280,6 +302,11 @@ max-backups = 0 + TiKV + + 修复 MVCC 删除记录可能不会被 GC 删除的问题 [#11217](https://github.com/tikv/tikv/issues/11217) + + 修复悲观事务中 prewrite 请求重试在极少数情况下影响数据一致性的风险 [#11187](https://github.com/tikv/tikv/issues/11187) + + 修复 GC 扫描导致的内存溢出 [#11410](https://github.com/tikv/tikv/issues/11410) + + 修复当达到磁盘容量满时 RocksDB flush 或 compaction 导致的 panic [#11224](https://github.com/tikv/tikv/issues/11224) + + PD + TiFlash From d84f92815efae2ab21f769e1bd0d4fa673f32ec0 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 10 Jan 2022 10:29:06 +0800 Subject: [PATCH 17/98] =?UTF-8?q?remove=20=E7=BB=9F=E4=B8=80=E5=90=84?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9A=84=E6=97=A5=E5=BF=97=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=92=8C=E6=97=A5=E5=BF=97=E5=BD=92=E6=A1=A3=E8=BD=AE=E8=BD=AC?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- releases/release-5.4.0.md | 33 ++++----------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index c2de2dfc92b7..555f36129707 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -11,6 +11,7 @@ TiDB 版本:5.4.0 在 v5.4.0 版本中,你可以获得以下关键特性: + 支持 GBK 字符集 ++ 支持索引合并 (Index Merge) 数据访问方法,能够合并多个列上索引的条件过滤结果 + 支持通过 session 变量实现有界限过期数据读取 + 支持统计信息采集配置持久化 + 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 @@ -46,8 +47,8 @@ TiDB 版本:5.4.0 | TiDB | `stats-load-concurrency` | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以并发处理多少列,默认值为 `5` | | TiDB | `stats-load-queue-size` | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | | TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源以求减少对集群的影响。在默认配置下,备份速度可能下降。 | -| TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | -| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见[统一各组件的日志格式和日志归档轮转规则](#统一各组件的日志格式和日志归档轮转规则)。 | +| TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | +| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | @@ -67,33 +68,6 @@ TiDB 版本:5.4.0 | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `10M` | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | -#### 统一各组件的日志格式和日志归档轮转规则 - -TiDB 提供了多个用户可见的组件,为了保证使用体验的一致性,从 v5.4.0 版本开始 TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。具体日志设置如下: - -``` -level = "info" -设置日志输出等级,默认为 info,支持 debug, info, warn, error, fatal 五个等级。 - -format = "text" -设置日志输出格式,默认为 text,支持 text 和 json 两种格式。 - -enable-timestamp = true -设置时间戳输出开关,默认为 true。 - -filename = "" -设置日志文件名前缀,默认为无前缀。 - -max-size = 300 -设置日志分割大小,默认为 300 MB,最大支持 4096 MB。 - -max-days = 0 -设置日志最大保留天数,默认全保留不清理。 - -max-backups = 0 -设置日志备份的最大保留文件数,默认全保留不清理。 -``` - ### 其他 - TiDB Dashboard 默认不再使用 `root` + 空密码登录。 @@ -101,6 +75,7 @@ max-backups = 0 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 - 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 +- TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 ## 新功能 From 4fb91f514ba207563d1f388c65de6cc362dcb6d6 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 10 Jan 2022 10:40:06 +0800 Subject: [PATCH 18/98] add index merge --- releases/release-5.4.0.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 555f36129707..bb86dad4a19c 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -77,7 +77,6 @@ TiDB 版本:5.4.0 - 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 - TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 - ## 新功能 ### SQL @@ -95,10 +94,6 @@ TiDB 版本:5.4.0 - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 -- **TiFlash IndexMerge GA** - - - ### 安全 - **TiSpark 支持用户认证与鉴权** @@ -144,6 +139,21 @@ TiDB 版本:5.4.0 通过该设置,可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟前的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 +- **TiDB 正式发布索引合并 (Index Merge) 功能** + + [索引合并](/explain-index-merge.md) 是在 TiDB v4.0 版本中作为实验特性引入的一种查询执行方式的优化,可以大幅提高查询在扫描多列数据时条件过滤的效率。例如对以下的查询,若 `WHERE` 子句中两个 `OR` 连接的过滤条件在各自包含的 _key1_ 与 _key2_ 两个列上都存在索引,则 _索引合并_ 可以同时利用 _key1_ 与 _key2_ 上的索引分别进行过滤,然后合并出最终的结果。 + + ```sql + SELECT * FROM table WHERE key1 <= 100 OR key2 = 200; + ``` + + 以往 TiDB 在一个表上的查询只能使用一个索引,无法同时使用多个索引进行条件过滤。相较以往,_索引合并_ 避免了此情况下可能不必要的大量数据扫描,也可以使得需要灵活查询不特定多列数据组合的用户利用单列上的索引达到高效稳定的查询,无需大量构建多列复合索引。 + + 本版本正式发布了 _索引合并 (Index Merge)_ 特性,但仍存在以下的使用条件和限制(详情请参见[用户文档](/explain-index-merge.md)): + + 目前 TiDB 的 _索引合并_ 优化只限于 _析取范式_ (X1 ⋁ X2 ⋁ …Xn),即 `WHERE` 子句中过滤条件连接词为 `OR`。 + + 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果是从 v5.4.0 以前的版本升级到 v5.4.0 或以上的,默认保持升级前此特性的开闭状态(v4.0 之前无此项特性的版本也视同关闭),需要由用户自己决定是否开启。 ### 稳定性 From 8e746fc27bd5db0915931b777a46e64999795c89 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 10 Jan 2022 10:42:53 +0800 Subject: [PATCH 19/98] address comments from moyun --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index bb86dad4a19c..e26639769dc4 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -17,7 +17,7 @@ TiDB 版本:5.4.0 + 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 + 优化备份对集群的影响 + 支持 Azure Blob Storage 作为备份目标存储(实验特性) -+ 提升 TiFlash 性能和稳定性 ++ 持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能 + 为 TiDB Lightning 增加已存在数据表是否允许导入的开关 + 优化持续性能分析实验特性 + TiSpark 支持用户认证与鉴权 @@ -112,7 +112,7 @@ TiDB 版本:5.4.0 [用户文档](/tikv-configuration-file.md#raft-engine) -- **提升 TiFlash 性能和稳定性** +- **持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能** - 支持将更多函数下推至 MPP 引擎 - 字符串函数:`LPAD()`、`RPAD()`、`STRCMP()` From 1d7071ace24b4f8aac2b16f2f801b7088718ffb0 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 10 Jan 2022 10:45:49 +0800 Subject: [PATCH 20/98] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-5.4.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index e26639769dc4..f1ab157526e4 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -36,16 +36,16 @@ TiDB 版本:5.4.0 | `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,该变量值默认保持 `OFF`。 | | `tidb_enable_paging` | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用 paging 方式发送 coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能出现延迟高、TiKV 的 unified read pool CPU 使用高的情况。在这种情况下,由于 `Limit` 算子限制只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,降低延迟,减少资源消耗。 | | `tidb_read_staleness` | 新增 | 用于设置当前会话期待读取的历史数据的所处时刻,默认值为 `0` | -| `tidb_stats_load_sync_wait` | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | -| `tidb_stats_load_pseudo_timeout` | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | -| `tidb_persist_analyze_options` | 新增 | 这个变量用于控制是否持久化执行 `ANALYZE` 语句时指定的配置项 | +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | +| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否持久化执行 `ANALYZE` 语句时指定的配置项 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | :----------- | -| TiDB | `stats-load-concurrency` | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以并发处理多少列,默认值为 `5` | -| TiDB | `stats-load-queue-size` | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | +| TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | +| TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | | TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源以求减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | From e25c77a38ad31e59863d4412dceaa0dbba585c6b Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 10 Jan 2022 11:12:09 +0800 Subject: [PATCH 21/98] Update releases/release-5.4.0.md Co-authored-by: Grace Cai --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index f1ab157526e4..8438a7ee5877 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -38,7 +38,7 @@ TiDB 版本:5.4.0 | `tidb_read_staleness` | 新增 | 用于设置当前会话期待读取的历史数据的所处时刻,默认值为 `0` | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | -| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否持久化执行 `ANALYZE` 语句时指定的配置项 | +| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启[ ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性 | ### 配置文件参数 From e647d352570314d170c09128ec00111600423809 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 10 Jan 2022 11:20:30 +0800 Subject: [PATCH 22/98] =?UTF-8?q?add=20=E7=BB=9F=E8=AE=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E5=90=8C=E6=AD=A5=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- releases/release-5.4.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 8438a7ee5877..df0a3d7776a9 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -155,6 +155,10 @@ TiDB 版本:5.4.0 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果是从 v5.4.0 以前的版本升级到 v5.4.0 或以上的,默认保持升级前此特性的开闭状态(v4.0 之前无此项特性的版本也视同关闭),需要由用户自己决定是否开启。 +- **支持统计信息的同步加载(实验特性)** + + 从 v5.4.0 开始,TiDB 引入了统计信息同步加载的特性,支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性。 + ### 稳定性 - **支持统计信息采集配置持久化** From c32a1e7a4dd3a936b6fa3e9ba281989e64c16d7a Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 10:03:50 +0800 Subject: [PATCH 23/98] Apply suggestions from code review Co-authored-by: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Co-authored-by: Ran Co-authored-by: Lynn Co-authored-by: lance6716 --- releases/release-5.4.0.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index df0a3d7776a9..830f9328b5af 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -33,8 +33,8 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | | `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | -| `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从 TiDB v4.0(不包含 v4.0.0)升级到 v5.4.0 及更新的集群,该变量值默认保持 `OFF`。 | -| `tidb_enable_paging` | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用 paging 方式发送 coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能出现延迟高、TiKV 的 unified read pool CPU 使用高的情况。在这种情况下,由于 `Limit` 算子限制只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,降低延迟,减少资源消耗。 | +| `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | +| [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | | `tidb_read_staleness` | 新增 | 用于设置当前会话期待读取的历史数据的所处时刻,默认值为 `0` | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | @@ -46,7 +46,7 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | -| TiKV | `backup.enable-auto-tune` | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源以求减少对集群的影响。在默认配置下,备份速度可能下降。 | +| TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | @@ -58,7 +58,7 @@ TiDB 版本:5.4.0 | PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | | PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认值为 `7`。 | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| -| TiDB Data Migration (DM) | `collation_compatible` | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | +| TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiFlash | `storage.format_version` | 新增可选值 | 表示 DTFile 储存文件格式,默认值为 `2`。| | TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | | TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | @@ -90,7 +90,6 @@ TiDB 版本:5.4.0 - TiFlash 暂不支持 GBK 字符。 - TiCDC 暂不支持 GBK 字符。 - 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 - - `character_set_client` 在处理 `prepare` 语句时可能出现兼容性问题。 - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 @@ -119,7 +118,7 @@ TiDB 版本:5.4.0 - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` - 引入动态线程池,提升资源利用率(实验特性) - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 - - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,此环节的 CPU 使用率最多可降低 90% + - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,使 CPU 使用率降低达 90% - TiFlash 调整了文件系统中 Delta Tree 相关的默认参数,使之更适合一般的生产环境 - **通过 session 变量实现有界限过期数据读取** @@ -153,7 +152,7 @@ TiDB 版本:5.4.0 目前 TiDB 的 _索引合并_ 优化只限于 _析取范式_ (X1 ⋁ X2 ⋁ …Xn),即 `WHERE` 子句中过滤条件连接词为 `OR`。 - 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果是从 v5.4.0 以前的版本升级到 v5.4.0 或以上的,默认保持升级前此特性的开闭状态(v4.0 之前无此项特性的版本也视同关闭),需要由用户自己决定是否开启。 + 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果从 v5.4.0 以前的版本升级到 v5.4.0 或以上,默认保持升级前此特性的开关状态(v4.0.0 之前无此项特性的版本默认关闭),由用户决定是否开启。 - **支持统计信息的同步加载(实验特性)** @@ -214,7 +213,7 @@ TiDB 版本:5.4.0 增加 `collation_compatible` 开关,支持 `strict` 和 `loose`(默认)两种模式。如果对排序规则要求不严格,允许排序规则不一致,使用默认的 `loose` 模式可使同步正常进行;如果对排序规则要求严格,排序规则不一致导致报错,则可以使用 `strict` 模式。 -- **在 DM 中 优化 `transfer source`,支持平滑执行同步任务** +- **在 DM 中优化 `transfer source`,支持平滑执行同步任务** 当 DM-worker 所在各节点负载不均衡时,`transfer source` 命令可用于手动将某 `source` 配置迁移到其他节点。优化后的 `transfer source` 简化了用户操作步骤,不再要求先暂停所有关联 task 而是直接执行平滑迁移,DM 将在内部完成所需操作。 @@ -240,13 +239,13 @@ TiDB 版本:5.4.0 - **持续性能分析(实验特性)** - - 支持更多组件:支持 TiFlash 组件查看 CPU Profiling + - 支持更多组件:除了 TiDB、PD 和 TiKV 外,v5.4.0 版本中还支持查看 TiFlash CPU Profiling - 支持更方便的查看形式:支持以火焰图形式查看 CPU Profiling 和 Goroutine 结果。 - 支持更多部署环境:支持在 TiDB Operator 部署环境下启用持续性能分析功能。 该功能默认关闭,需进入 TiDB Dashboard 持续性能分析页面开启,开启方法见[用户文档](/dashboard/continuous-profiling.md)。 - 要使用持续性能分析功能,集群须由 TiUP v1.9.0 及以上版本或 TiDB Operator vx.x.x(TBD)及以上版本升级或安装。 + 持续性能分析仅支持由 v1.9.0 及以上版本 TiUP 或 vx.x.x(TBD)及以上版本 TiDB Operator 升级或安装的集群。 ## 提升改进 From d48f150047e77e185b15606ffb88fa5105a91de7 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 10:33:58 +0800 Subject: [PATCH 24/98] address comments --- releases/release-5.4.0.md | 36 +++++++++++++++++++++++++++++++----- system-variables.md | 2 +- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 830f9328b5af..74ca45329dfa 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -39,6 +39,7 @@ TiDB 版本:5.4.0 | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启[ ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性 | +| `tidb_store_limit` | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | ### 配置文件参数 @@ -67,6 +68,8 @@ TiDB 版本:5.4.0 | TiCDC | `enable-tidb-extension` | 新增 | 开启该配置项后,TiCDC 在 Canal-JSON 协议格式中附加 TiDB 扩展字段。 | | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `10M` | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | +| TiDB Lightning | `meta-schema-name` | 新增 | 在并行导入模式下,在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名字,默认值为 "lightning_metadata" | +| TiDB Lightning | `incremental-import` | 新增 | 是否允许向已存在数据的表导入数据。默认值为 false | ### 其他 @@ -83,7 +86,7 @@ TiDB 版本:5.4.0 - **TiDB 从 v5.4.0 起支持 GBK 字符集** - 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则。 + 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则(在使用这两种排序规则前需要开启 TiDB 配置项 `new_collations_enabled_on_first_bootstrap`)。 在使用 GBK 字符集时,请注意以下兼容性限制: @@ -158,6 +161,10 @@ TiDB 版本:5.4.0 从 v5.4.0 开始,TiDB 引入了统计信息同步加载的特性,支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性。 +- **优化 RocksDB 在大数据量下的锁争用问题** + + RocksDB 依赖全局锁来维护多版本的文件信息,并当销毁读快照时对过期文件进行清理。在文件数较多且读写频繁的场景下,这一操作显著影响前台延迟。本版本针对这一问题进行优化,详见 [rocksdb#250](https://github.com/tikv/rocksdb/pull/250)。 + ### 稳定性 - **支持统计信息采集配置持久化** @@ -252,6 +259,7 @@ TiDB 版本:5.4.0 + TiDB - 新增系统变量 `tidb_enable_paging`,开启该功能可显著降低使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 数据较小且无法下推到 `IndexScan` 上的读请求的延迟 [#30578](https://github.com/pingcap/tidb/issues/30578) + - 支持 `ADMIN {SESSION | INSTANCE | GLOBAL} PLAN_CACHE` 语法,用于清空缓存的查询计划 [#30370](https://github.com/pingcap/tidb/pull/30370) + TiKV @@ -288,12 +296,28 @@ TiDB 版本:5.4.0 + TiDB + - 修复当从 v4.x 版本升级到 v5.x 版本后 `tidb_analyze_version` 的值变化的问题 [#25422](https://github.com/pingcap/tidb/issues/25422) + - 修复在子查询中使用不同的 collation 导致查询结果错误的问题 [#30748](https://github.com/pingcap/tidb/issues/30748) + - 修复 `concat(ifnull(time(3))` 的结果与 MySQL 不一致的问题 [#29498](https://github.com/pingcap/tidb/issues/29498) + - 修复乐观事务下数据索引可能不一致的问题 [#30410](https://github.com/pingcap/tidb/issues/30410) + - 修复当表达式不能下推给 TiKV 时 IndexMerge 查询计划错误的问题 [#30200](https://github.com/pingcap/tidb/issues/30200) + - 修复并发的列类型变更导致 schema 与数据不一致的问题 [#31048](https://github.com/pingcap/tidb/issues/31048) + - 修复当有子查询时 IndexMerge 的查询结果错误的问题 [#30913](https://github.com/pingcap/tidb/issues/30913) + - 修复当客户端设置过大的 FetchSize 后 TiDB 执行会 panic 的问题 [#30896](https://github.com/pingcap/tidb/issues/30896) + + - 修复 LEFT JOIN 有时会被错误地转换成 INNER JOIN 的问题 [#20510](https://github.com/pingcap/tidb/issues/20510) + - 修复当 `CASE-WHEN` 表达式与 collation 同时使用时可能 panic 的问题 [#30245](https://github.com/pingcap/tidb/issues/30245) + - 修复当 `IN` 的值中带有二进制常量时查询结果错误的问题 [#31261](https://github.com/pingcap/tidb/issues/31261) + - 修复当 CTE 中带有子查询时查询结果错误的问题 [#31255](https://github.com/pingcap/tidb/issues/31255) + - 修复 `INSERT ... SELECT ... ON DUPLICATE KEY UPDATE` 语句 panic 的问题 [#28078](https://github.com/pingcap/tidb/issues/28078) + - 修复 INDEX HASH JOIN 报 `send on closed channel` 的问题 [#31129](https://github.com/pingcap/tidb/issues/31129) + + TiKV - + 修复 MVCC 删除记录可能不会被 GC 删除的问题 [#11217](https://github.com/tikv/tikv/issues/11217) - + 修复悲观事务中 prewrite 请求重试在极少数情况下影响数据一致性的风险 [#11187](https://github.com/tikv/tikv/issues/11187) - + 修复 GC 扫描导致的内存溢出 [#11410](https://github.com/tikv/tikv/issues/11410) - + 修复当达到磁盘容量满时 RocksDB flush 或 compaction 导致的 panic [#11224](https://github.com/tikv/tikv/issues/11224) + - 修复 MVCC 删除记录可能不会被 GC 删除的问题 [#11217](https://github.com/tikv/tikv/issues/11217) + - 修复悲观事务中 prewrite 请求重试在极少数情况下影响数据一致性的风险 [#11187](https://github.com/tikv/tikv/issues/11187) + - 修复 GC 扫描导致的内存溢出 [#11410](https://github.com/tikv/tikv/issues/11410) + - 修复当达到磁盘容量满时 RocksDB flush 或 compaction 导致的 panic [#11224](https://github.com/tikv/tikv/issues/11224) + PD @@ -309,6 +333,8 @@ TiDB 版本:5.4.0 + TiDB Lightning + - 修复当 TiDB Lightning 没有权限访问 `mysql.tidb` 表时,导入的结果不正确的问题 [#31088](https://github.com/pingcap/tidb/issues/31088) + + Dumpling + TiDB Binlog diff --git a/system-variables.md b/system-variables.md index d0615a5f7e2a..460336adc1b1 100644 --- a/system-variables.md +++ b/system-variables.md @@ -1398,7 +1398,7 @@ set tidb_slow_log_threshold = 200; ### `tidb_store_limit` 从 v3.0.4 和 v4.0 版本开始引入 -- 作用域:INSTANCE | GLOBAL +- 作用域:GLOBAL - 默认值:`0` - 范围:`[0, 9223372036854775807]` - 这个变量用于限制 TiDB 同时向 TiKV 发送的请求的最大数量,0 表示没有限制。 From 3e7bfb48ee6727381f18ff39f83c667b0215bd43 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 10:42:09 +0800 Subject: [PATCH 25/98] Update releases/release-5.4.0.md Co-authored-by: xixirangrang --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 74ca45329dfa..c0fef8ceb9eb 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -205,7 +205,7 @@ TiDB 版本:5.4.0 为 TiDB Lightning 增加 `incremental-import` 开关。默认值为 `false`,表明目标表已存在数据时将不会执行导入。将默认值改为 `true` 则继续导入。注意,当使用并行导入特性时,需要将该配置项设为 `true`。 -- **在 TiDB Lightning 中添加重复数据的检测** +- **在 TiDB Lightning 中添加重复数据的检测(实验特性)** 在 `backend=local` 模式下,数据导入完成之前 TiDB Lightning 会输出冲突数据,然后从数据库中删除这些冲突数据。用户可以在导入完成后解析冲突数据,并根据业务规则选择适合的数据进行插入。建议根据冲突数据清洗上游数据源,避免在后续增量数据迁移阶段遇到冲突数据而造成数据不一致。 From de2285a40b7022d350f0ee148ed8aa67379603fb Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 11:08:14 +0800 Subject: [PATCH 26/98] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-5.4.0.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index c0fef8ceb9eb..f27d6d78a4a7 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -33,6 +33,7 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | | `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | +| [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | | `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | | `tidb_read_staleness` | 新增 | 用于设置当前会话期待读取的历史数据的所处时刻,默认值为 `0` | @@ -157,9 +158,19 @@ TiDB 版本:5.4.0 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果从 v5.4.0 以前的版本升级到 v5.4.0 或以上,默认保持升级前此特性的开关状态(v4.0.0 之前无此项特性的版本默认关闭),由用户决定是否开启。 +- **支持收集部分列的统计信息(实验特性)** + + 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中用到的列)的统计信息。这些被优化器用到的列称为 `PREDICATE COLUMNS`。 + + 从 v5.4.0 开始,TiDB 引入了收集部分列的统计信息的特性(默认关闭),支持只收集指定列或者 `PREDICATE COLUMNS` 的统计信息,极大地降低了收集统计信息的开销。 + + [用户文档](/statistics.md#收集部分列的统计信息) + - **支持统计信息的同步加载(实验特性)** - 从 v5.4.0 开始,TiDB 引入了统计信息同步加载的特性,支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性。 + 从 v5.4.0 开始,TiDB 引入了统计信息同步加载的特性(默认关闭),支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性。 + + [用户文档](/statistics.md#统计信息的加载) - **优化 RocksDB 在大数据量下的锁争用问题** @@ -171,15 +182,11 @@ TiDB 版本:5.4.0 统计信息是优化器生成执行计划时所参考的基础信息之一,统计信息的准确性直接影响生成的执行计划是否合理。为了保证统计信息的准确性,有时候需要针对不同的表、分区、索引设置不同的采集配置项。 - TiDB 从 v5.4.0 版本开始支持通过 `analyze` 命令采集统计信息并持久化指定的配置项,方便后续的统计信息采集沿用已有配置项。具体配置项信息请参考 [`Analyze` 文档](/sql-statements/sql-statement-analyze-table.md#analyze)的 `AnalyzeOption` 章节。 - - - 开启采集配置项持久化 - - 设置 `tidb_analyze_version = 2` 且 `tidb_persist_analyze_options = true` 会开启配置项持久化。开启后,手动 analyze 指定的所有配置项会被持久化并覆盖已有选项。后续的手动或自动 analyze 任务会沿用已有配置项进行统计信息采集,直到持久化功能关闭或用户手动指定新的采集配置项。 - - - 关闭采集配置项持久化 - - 设置 `tidb_analyze_version = 1` 或 `tidb_persist_analyze_options = false` 会关闭采集配置项持久化功能。持久化关闭后,已有配置项不会被删除,但不记录新增配置项。新采集任务不会沿用已有的持久化配置项,再次开启采集配置项持久化将会直接使用已有的配置项进行统计信息采集。如果需要更新已有的配置项,请手动执行 `analyze` 命令并指定新的采集配置项。 + TiDB 从 v5.4.0 版本开始支持 `ANALYZE` 配置持久化功能,方便后续收集统计信息时沿用已有配置项。 + + `ANALYZE` 配置持久化功能默认开启(系统变量 `tidb_analyze_version = 2` 且 `tidb_persist_analyze_options = true`),用于记录手动执行 `ANALYZE` 语句时指定的持久化配置项。记录后,当 TiDB 下一次自动更新统计信息或者你手动收集统计信息但未指定配置项时,TiDB 会按照记录的配置项收集统计信息。 + + [用户文档](/statistics.md#analyze-配置持久化) ## 高可用和容灾 From 89d915a4426c8a7681256c0cf3894575a1b0ab75 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 11:09:50 +0800 Subject: [PATCH 27/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index f27d6d78a4a7..2e2990a8949d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -311,7 +311,6 @@ TiDB 版本:5.4.0 - 修复并发的列类型变更导致 schema 与数据不一致的问题 [#31048](https://github.com/pingcap/tidb/issues/31048) - 修复当有子查询时 IndexMerge 的查询结果错误的问题 [#30913](https://github.com/pingcap/tidb/issues/30913) - 修复当客户端设置过大的 FetchSize 后 TiDB 执行会 panic 的问题 [#30896](https://github.com/pingcap/tidb/issues/30896) - - 修复 LEFT JOIN 有时会被错误地转换成 INNER JOIN 的问题 [#20510](https://github.com/pingcap/tidb/issues/20510) - 修复当 `CASE-WHEN` 表达式与 collation 同时使用时可能 panic 的问题 [#30245](https://github.com/pingcap/tidb/issues/30245) - 修复当 `IN` 的值中带有二进制常量时查询结果错误的问题 [#31261](https://github.com/pingcap/tidb/issues/31261) From f295e58c69dd35eeb486f99294ca0e97de77c970 Mon Sep 17 00:00:00 2001 From: sunzy Date: Tue, 11 Jan 2022 11:46:56 +0800 Subject: [PATCH 28/98] Update releases/release-5.4.0.md Co-authored-by: lance6716 --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 2e2990a8949d..743ab71e4e4f 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -225,7 +225,7 @@ TiDB 版本:5.4.0 - **在 DM 中优化排序规则的处理方式** - 增加 `collation_compatible` 开关,支持 `strict` 和 `loose`(默认)两种模式。如果对排序规则要求不严格,允许排序规则不一致,使用默认的 `loose` 模式可使同步正常进行;如果对排序规则要求严格,排序规则不一致导致报错,则可以使用 `strict` 模式。 + 增加 `collation_compatible` 开关,支持 `strict` 和 `loose`(默认)两种模式。如果对排序规则要求不严格,允许排序规则在上下游不一致,使用默认的 `loose` 模式可使同步正常进行;如果对排序规则要求严格,排序规则在上下游不一致会导致业务报错,则可以使用 `strict` 模式。 - **在 DM 中优化 `transfer source`,支持平滑执行同步任务** From 58441c8cd77b81ddf6b68d2fc041e7604ca5021f Mon Sep 17 00:00:00 2001 From: sunzy Date: Tue, 11 Jan 2022 11:48:44 +0800 Subject: [PATCH 29/98] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-5.4.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 743ab71e4e4f..928bc7d7c549 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -212,6 +212,10 @@ TiDB 版本:5.4.0 为 TiDB Lightning 增加 `incremental-import` 开关。默认值为 `false`,表明目标表已存在数据时将不会执行导入。将默认值改为 `true` 则继续导入。注意,当使用并行导入特性时,需要将该配置项设为 `true`。 +- **为 TiDB Lightning 增加新参数,用于在并行导入模式下保存各个 TiDB Lightning 实例元信息的 schema 名字 ** + + 为 TiDB Lightning 增加 `meta-schema-name` 参数。在并行导入模式下,该参数用于在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名字,默认值为 "lightning_metadata"。对于参与同一批并行导入的每个 TiDB Lightning 实例,必须将此配置项设置为相同的值,否则将无法确保导入数据的正确性。 + - **在 TiDB Lightning 中添加重复数据的检测(实验特性)** 在 `backend=local` 模式下,数据导入完成之前 TiDB Lightning 会输出冲突数据,然后从数据库中删除这些冲突数据。用户可以在导入完成后解析冲突数据,并根据业务规则选择适合的数据进行插入。建议根据冲突数据清洗上游数据源,避免在后续增量数据迁移阶段遇到冲突数据而造成数据不一致。 From 6752c9975cd61a8f5fb43f7b7783787d975bd0ec Mon Sep 17 00:00:00 2001 From: Ran Date: Tue, 11 Jan 2022 12:01:23 +0800 Subject: [PATCH 30/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 928bc7d7c549..538efa5124b2 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -61,7 +61,7 @@ TiDB 版本:5.4.0 | PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认值为 `7`。 | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | -| TiFlash | `storage.format_version` | 新增可选值 | 表示 DTFile 储存文件格式,默认值为 `2`。| +| TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示 DTFile 储存文件格式,默认值为 `2`,该格式在数据文件中内嵌哈希值。也可以设置为 `3`,该格式包含元数据,标记数据校验,支持多种哈希算法。| | TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | | TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | | TiFlash | `raftstore.apply-pool-size` | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | From 5fa5e842da97b6f907241b6a1cb4c04cd1b6f978 Mon Sep 17 00:00:00 2001 From: ThomasYYYY <89184652+ThomasYYYY@users.noreply.github.com> Date: Tue, 11 Jan 2022 12:43:35 +0800 Subject: [PATCH 31/98] Update release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 538efa5124b2..358096f10ef1 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -36,7 +36,7 @@ TiDB 版本:5.4.0 | [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | | `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | -| `tidb_read_staleness` | 新增 | 用于设置当前会话期待读取的历史数据的所处时刻,默认值为 `0` | +| `tidb_read_staleness` | 新增 | 用于设置当前会话允许读取的历史数据时间范围,默认值为 `0` | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启[ ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性 | From 2cae4b7b3464286475e2875ca160fc42275fb7e1 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 13:37:31 +0800 Subject: [PATCH 32/98] Update releases/release-5.4.0.md Co-authored-by: Lynn --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 358096f10ef1..fe1bcc5aeafa 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -95,7 +95,7 @@ TiDB 版本:5.4.0 - TiCDC 暂不支持 GBK 字符。 - 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 - - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.3.0 之前不支持恢复 `charset=GBK` 的表。 + - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.4.0 之前不支持恢复 `charset=GBK` 的表。 ### 安全 From 27f0d4cd585760e0a4f25ab6a624d00a73d6c2a4 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 13:41:00 +0800 Subject: [PATCH 33/98] Update releases/release-5.4.0.md Co-authored-by: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index fe1bcc5aeafa..68759689a480 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -263,7 +263,7 @@ TiDB 版本:5.4.0 该功能默认关闭,需进入 TiDB Dashboard 持续性能分析页面开启,开启方法见[用户文档](/dashboard/continuous-profiling.md)。 - 持续性能分析仅支持由 v1.9.0 及以上版本 TiUP 或 vx.x.x(TBD)及以上版本 TiDB Operator 升级或安装的集群。 + 持续性能分析仅支持由 v1.9.0 及以上版本 TiUP 或 v1.3.0 及以上版本 TiDB Operator 升级或安装的集群。 ## 提升改进 From 40034542c89f1b83202a79e321c2cf6fa2f7d264 Mon Sep 17 00:00:00 2001 From: Enwei Date: Tue, 11 Jan 2022 14:02:27 +0800 Subject: [PATCH 34/98] update TiKV configurations --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 68759689a480..3d4d2d7f7d80 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -49,8 +49,8 @@ TiDB 版本:5.4.0 | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | -| TiKV | `log.level`、`log.format`、`log.enable-timestamp`、`log.file.filename`、`log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | -| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 变更 | 将 TiKV log 参数名改为与 TiDB log 参数一致的命名方式,即 `log.level`、`log.format`、`log.enable-timestamp`。如果 TiKV log 参数为非默认值则保持兼容;如果同时配置 TiKV log 参数和 TiDB log 命名方式的参数,使用 TiDB log 命名方式的参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | +| TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | +| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | From 85ee49ac46c8ee98955348ca43e99d0349112fad Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 14:11:46 +0800 Subject: [PATCH 35/98] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-5.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 3d4d2d7f7d80..58a50b393063 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -37,9 +37,9 @@ TiDB 版本:5.4.0 | `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | | `tidb_read_staleness` | 新增 | 用于设置当前会话允许读取的历史数据时间范围,默认值为 `0` | -| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | -| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败(`false`) 还是退回使用 pseudo 的统计信息 (`true`) | -| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启[ ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性 | +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | +| [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | +| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | `tidb_store_limit` | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | ### 配置文件参数 From 03c4f188fd23208109ce908cecf6a69ba8540e5d Mon Sep 17 00:00:00 2001 From: Enwei Date: Tue, 11 Jan 2022 14:19:31 +0800 Subject: [PATCH 36/98] revise orders of TiKV and PD configs --- releases/release-5.4.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 58a50b393063..80bbed075b6c 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -48,17 +48,17 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | -| TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | +| TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | -| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | -| TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| -| TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | -| TiKV | `raftstore.raft-log-gc-tick-interval` | 修改 | 默认值修改为 `3s` | | TiKV | `raftstore.raft-log-compact-sync-interval` | 新增 | 控制 CompactLog 命令的间隔,默认值为 `2s` | -| PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | +| TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | +| TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | +| TiKV | `raftstore.raft-log-gc-tick-interval` | 修改 | 默认值修改为 `3s` | +| TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | | PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认值为 `7`。 +| PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示 DTFile 储存文件格式,默认值为 `2`,该格式在数据文件中内嵌哈希值。也可以设置为 `3`,该格式包含元数据,标记数据校验,支持多种哈希算法。| From cae2c5a2065f5b514ad19b5674f56916cf71f9fa Mon Sep 17 00:00:00 2001 From: Enwei Date: Tue, 11 Jan 2022 14:46:24 +0800 Subject: [PATCH 37/98] remove some PD configs --- releases/release-5.4.0.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 80bbed075b6c..6a2b4cc5d0a0 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -56,8 +56,6 @@ TiDB 版本:5.4.0 | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `raftstore.raft-log-gc-tick-interval` | 修改 | 默认值修改为 `3s` | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | -| PD | `hot-regions-write-interval` | 新增 | 设置 PD 存储 Hot Region 信息的时间间隔。默认值为 `10m`。 | -| PD | `hot-regions-reserved-days` | 新增 | 设置 PD 保留的 Hot Region 信息的最长时间。默认值为 `7`。 | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | From abf5b5ead571066d939aaa09b347dbc598b01e0f Mon Sep 17 00:00:00 2001 From: Enwei Date: Tue, 11 Jan 2022 15:06:49 +0800 Subject: [PATCH 38/98] update `tidb_read_staleness` description --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 6a2b4cc5d0a0..dbd818c61aa4 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -36,7 +36,7 @@ TiDB 版本:5.4.0 | [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | | `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | -| `tidb_read_staleness` | 新增 | 用于设置当前会话允许读取的历史数据时间范围,默认值为 `0` | +| `tidb_read_staleness` | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | From 64c2f0bbea927fa55a4ddac16aa8dddf837122d9 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:42:57 +0800 Subject: [PATCH 39/98] Apply suggestions from code review Co-authored-by: Enwei Co-authored-by: xixirangrang Co-authored-by: Xinye Tao --- releases/release-5.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index dbd818c61aa4..b54b198c5bbb 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -191,9 +191,8 @@ TiDB 版本:5.4.0 - **优化备份对集群的影响** - Backup & Restore (BR) 增加了备份线程自动调节功能。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 + Backup & Restore (BR) 增加了备份线程自动调节功能(默认开启)。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 - 该功能默认开启,但是如果你在离线环境中进行备份,可以关闭该功能来获得更高的备份速度。 详细文档请阅读 [BR 自动调节](/br/br-features.md#自动调节-从-v54-版本开始引入)。 @@ -214,7 +213,7 @@ TiDB 版本:5.4.0 为 TiDB Lightning 增加 `meta-schema-name` 参数。在并行导入模式下,该参数用于在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名字,默认值为 "lightning_metadata"。对于参与同一批并行导入的每个 TiDB Lightning 实例,必须将此配置项设置为相同的值,否则将无法确保导入数据的正确性。 -- **在 TiDB Lightning 中添加重复数据的检测(实验特性)** +- **在 TiDB Lightning 中添加重复数据的检测** 在 `backend=local` 模式下,数据导入完成之前 TiDB Lightning 会输出冲突数据,然后从数据库中删除这些冲突数据。用户可以在导入完成后解析冲突数据,并根据业务规则选择适合的数据进行插入。建议根据冲突数据清洗上游数据源,避免在后续增量数据迁移阶段遇到冲突数据而造成数据不一致。 @@ -282,6 +281,7 @@ TiDB 版本:5.4.0 - 减少备份使用的默认线程池大小,并在压力大时限制其使用 [#11000](https://github.com/tikv/tikv/issues/11000) - 支持动态调整 Apply 和 Store 线程池大小 [#11159](https://github.com/tikv/tikv/issues/11159) - 支持配置 `snap-generator` 线程池大小 [#11247](https://github.com/tikv/tikv/issues/11247) +- 优化在文件数较多且读写频繁的场景下 RocksDB 的全局锁争用问题 [rocksdb#250](https://github.com/tikv/rocksdb/pull/250) + PD From 1199ba1f6c6c7b2d7819d192f1eef046d3fcb064 Mon Sep 17 00:00:00 2001 From: Enwei Date: Tue, 11 Jan 2022 15:46:58 +0800 Subject: [PATCH 40/98] format --- releases/release-5.4.0.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index b54b198c5bbb..5367be3ea7a0 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -192,8 +192,6 @@ TiDB 版本:5.4.0 - **优化备份对集群的影响** Backup & Restore (BR) 增加了备份线程自动调节功能(默认开启)。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 - - 详细文档请阅读 [BR 自动调节](/br/br-features.md#自动调节-从-v54-版本开始引入)。 - **支持 Azure Blob Storage 作为备份目标存储(实验特性)** From aeb1028f57e84669e04842b77334777aca3ef4a7 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:50:05 +0800 Subject: [PATCH 41/98] Apply suggestions from code review --- releases/release-5.4.0.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 5367be3ea7a0..9d04a6923602 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -87,13 +87,7 @@ TiDB 版本:5.4.0 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则(在使用这两种排序规则前需要开启 TiDB 配置项 `new_collations_enabled_on_first_bootstrap`)。 - 在使用 GBK 字符集时,请注意以下兼容性限制: - - - TiFlash 暂不支持 GBK 字符。 - - TiCDC 暂不支持 GBK 字符。 - - 如果 `character_set_client` 和 `character_set_connection` 都是 `gbk` 时,处理非法 GBK 字符与 MySQL 存在兼容性问题。 - - TiDB 不支持 `_gbk"xxx"` 的用法,但是支持 `_utf8mb4"xxx"` 的用法。而 MySQL 对于 `_charset"xxx"` 的用法都支持。 - - TiDB Lightning 在 v5.4.0 之前不支持导入 `charset=GBK` 的表。BR 在 v5.4.0 之前不支持恢复 `charset=GBK` 的表。 +在使用 GBK 字符集时,需要注意兼容性限制,详情参考[字符集和排序 - GBK](/character-set-gbk.md)。 ### 安全 @@ -170,10 +164,6 @@ TiDB 版本:5.4.0 [用户文档](/statistics.md#统计信息的加载) -- **优化 RocksDB 在大数据量下的锁争用问题** - - RocksDB 依赖全局锁来维护多版本的文件信息,并当销毁读快照时对过期文件进行清理。在文件数较多且读写频繁的场景下,这一操作显著影响前台延迟。本版本针对这一问题进行优化,详见 [rocksdb#250](https://github.com/tikv/rocksdb/pull/250)。 - ### 稳定性 - **支持统计信息采集配置持久化** From 24cd81e8397f4ecf79e08a4f7615201e87b9dcd1 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:51:01 +0800 Subject: [PATCH 42/98] Update releases/release-5.4.0.md Co-authored-by: Xinye Tao --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 9d04a6923602..11315985884c 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -261,7 +261,7 @@ TiDB 版本:5.4.0 - Coprocessor 支持分页 API 进行流式处理 [#11448](https://github.com/tikv/tikv/issues/11448) - 支持 `read-through-lock`,使读操作不需要等待清理 secondary lock [#11402](https://github.com/tikv/tikv/issues/11402) - - 增加了磁盘保护机制,尽量避免磁盘空间耗尽导致 panic [#10960](https://github.com/tikv/tikv/issues/10960) [#10959](https://github.com/tikv/tikv/issues/10959) [#10926](https://github.com/tikv/tikv/issues/10926) [#10925](https://github.com/tikv/tikv/issues/10925) [#10895](https://github.com/tikv/tikv/issues/10895) [#10894](https://github.com/tikv/tikv/issues/10894) [#10868](https://github.com/tikv/tikv/issues/10868) [#10840](https://github.com/tikv/tikv/issues/10840) [#10839](https://github.com/tikv/tikv/issues/10839) [#10819](https://github.com/tikv/tikv/issues/10819) [#10801](https://github.com/tikv/tikv/issues/10801) + - 增加了磁盘保护机制,尽量避免磁盘空间耗尽导致 panic [#10537](https://github.com/tikv/tikv/issues/10537) - 日志支持存档和轮替 [#11651](https://github.com/tikv/tikv/issues/11651) - 减少 Raft 客户端的系统调用并提高 CPU 效率 [#11309](https://github.com/tikv/tikv/issues/11309) - Coprocessor 支持下推 substring 到 TiKV [#11495](https://github.com/tikv/tikv/issues/11495) From 9cfa124130b1dc12ea00d1c22724d815efc3c9cd Mon Sep 17 00:00:00 2001 From: Ran Date: Tue, 11 Jan 2022 15:58:59 +0800 Subject: [PATCH 43/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 11315985884c..f3ffb3d3e762 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -212,9 +212,12 @@ TiDB 版本:5.4.0 - relay log 的开启状态与 `source` 绑定,source 迁移到任意 DM-worker 均保持原有开启或关闭状态 - relay log 的存放路径移至 DM-worker 配置文件 -- **在 DM 中优化排序规则的处理方式** +- **在 DM 中优化[排序规则](/character-set-and-collation.md)的处理方式** - 增加 `collation_compatible` 开关,支持 `strict` 和 `loose`(默认)两种模式。如果对排序规则要求不严格,允许排序规则在上下游不一致,使用默认的 `loose` 模式可使同步正常进行;如果对排序规则要求严格,排序规则在上下游不一致会导致业务报错,则可以使用 `strict` 模式。 + 增加 collation_compatible 开关,支持 strict 和 loose(默认)两种模式: + + - 如果对排序规则要求不严格,允许上下游查询结果排序规则不一致,使用默认的 loose 模式可以避免报错。 + - 如果对排序规则要求严格,业务要求排序规则必须一致,则应当使用 strict 模式。但如果下游不支持上游缺省的 collation,同步可能会报错。 - **在 DM 中优化 `transfer source`,支持平滑执行同步任务** From fa8c3a7dc1723b703856bcae09d58e1fa815588e Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Tue, 11 Jan 2022 16:16:31 +0800 Subject: [PATCH 44/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index f3ffb3d3e762..fc2409abe88b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -58,12 +58,12 @@ TiDB 版本:5.4.0 | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| -| TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示 DTFile 储存文件格式,默认值为 `2`,该格式在数据文件中内嵌哈希值。也可以设置为 `3`,该格式包含元数据,标记数据校验,支持多种哈希算法。| | TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | | TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | | TiFlash | `raftstore.apply-pool-size` | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | | TiFlash | `raftstore.store-pool-size` | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | +| TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiCDC | `enable-tidb-extension` | 新增 | 开启该配置项后,TiCDC 在 Canal-JSON 协议格式中附加 TiDB 扩展字段。 | | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `10M` | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | From 1565ad6a1288c2a036df4af1042c527524bada0c Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 16:51:39 +0800 Subject: [PATCH 45/98] change a sysvar value of tidb_backoff_lock_fast --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index 460336adc1b1..6c40e7e8c624 100644 --- a/system-variables.md +++ b/system-variables.md @@ -332,7 +332,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 ### `tidb_backoff_lock_fast` - 作用域:SESSION | GLOBAL -- 默认值:`100` +- 默认值:`10` - 范围:`[1, 2147483647]` - 这个变量用来设置读请求遇到锁的 backoff 时间。 From 16ad17de87cc02a3e19e588e53f89bab0b92f9e3 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 17:45:02 +0800 Subject: [PATCH 46/98] Apply suggestions from code review Co-authored-by: xixirangrang Co-authored-by: glorv --- releases/release-5.4.0.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index fc2409abe88b..d26d5a1b49c1 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -65,9 +65,10 @@ TiDB 版本:5.4.0 | TiFlash | `raftstore.store-pool-size` | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | | TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiCDC | `enable-tidb-extension` | 新增 | 开启该配置项后,TiCDC 在 Canal-JSON 协议格式中附加 TiDB 扩展字段。 | -| TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `10M` | +| TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `104857601`(10MB) | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | -| TiDB Lightning | `meta-schema-name` | 新增 | 在并行导入模式下,在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名字,默认值为 "lightning_metadata" | +| TiDB Lightning | `meta-schema-name` | 修改 | 此配置项控制 TiDB Lightning 在目标 TiDB 中保存 metadata 对应的 schema name。从 v5.4.0 开始,只在开启了并行导入功能时(对应配置为 `tikv-importer.incremental-import = true` ),才会在目标 TiDB 中创建此库。 | +| TiDB Lightning | `task-info-schema-name` | 新增 | 用于配置当 Lightning 检测到冲突数据时,对应冲突数据存储的库名,默认值为 "lightning_task_info"。如果没有开启冲突检测功能,则无需配置此参数。 | | TiDB Lightning | `incremental-import` | 新增 | 是否允许向已存在数据的表导入数据。默认值为 false | ### 其他 From fa83990065071baff4a3f52be79e4cac9af043f8 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 11 Jan 2022 21:04:55 +0800 Subject: [PATCH 47/98] Update releases/release-5.4.0.md Co-authored-by: Xinye Tao --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index d26d5a1b49c1..cae1f9cc159b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -273,7 +273,7 @@ TiDB 版本:5.4.0 - 减少备份使用的默认线程池大小,并在压力大时限制其使用 [#11000](https://github.com/tikv/tikv/issues/11000) - 支持动态调整 Apply 和 Store 线程池大小 [#11159](https://github.com/tikv/tikv/issues/11159) - 支持配置 `snap-generator` 线程池大小 [#11247](https://github.com/tikv/tikv/issues/11247) -- 优化在文件数较多且读写频繁的场景下 RocksDB 的全局锁争用问题 [rocksdb#250](https://github.com/tikv/rocksdb/pull/250) + - 优化在文件数较多且读写频繁的场景下 RocksDB 的全局锁争用问题 [rocksdb#250](https://github.com/tikv/rocksdb/pull/250) + PD From 82126b1cee823dab927bd4bea58e76c5f59e6dca Mon Sep 17 00:00:00 2001 From: Enwei Date: Wed, 12 Jan 2022 13:20:22 +0800 Subject: [PATCH 48/98] Apply suggestions from code review --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index cae1f9cc159b..fb4a62d24863 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -126,14 +126,14 @@ TiDB 版本:5.4.0 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过显示只读事务或 SQL 语句的方式实现过期读。两种方式均支持指定时间的精确过期读和指定时间边界的过期读两种模式,详细用法请参考[过期读文档](/read-historical-data.md)。 - 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,具体设置如下: + 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,具体设置示例如下: ```sql set @@tidb_replica_read=leader_and_follower set @@tidb_read_staleness="-5" ``` - 通过该设置,可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟前的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 + 通过该设置,TiDB 可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟前的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 - **TiDB 正式发布索引合并 (Index Merge) 功能** From e5178823ad68caebd93be668ec3f35577eed304d Mon Sep 17 00:00:00 2001 From: Enwei Date: Wed, 12 Jan 2022 13:44:56 +0800 Subject: [PATCH 49/98] Apply suggestions from code review --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index fb4a62d24863..6ac1a5429b4e 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -133,7 +133,7 @@ TiDB 版本:5.4.0 set @@tidb_read_staleness="-5" ``` - 通过该设置,TiDB 可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟前的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 + 通过该设置,TiDB 可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟内的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 - **TiDB 正式发布索引合并 (Index Merge) 功能** From 59668672c79a9bc79de0614bb358cfde29f7c883 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 12 Jan 2022 14:32:20 +0800 Subject: [PATCH 50/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 6ac1a5429b4e..f64470708aca 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -64,7 +64,6 @@ TiDB 版本:5.4.0 | TiFlash | `raftstore.apply-pool-size` | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | | TiFlash | `raftstore.store-pool-size` | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | | TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | -| TiCDC | `enable-tidb-extension` | 新增 | 开启该配置项后,TiCDC 在 Canal-JSON 协议格式中附加 TiDB 扩展字段。 | | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `104857601`(10MB) | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | | TiDB Lightning | `meta-schema-name` | 修改 | 此配置项控制 TiDB Lightning 在目标 TiDB 中保存 metadata 对应的 schema name。从 v5.4.0 开始,只在开启了并行导入功能时(对应配置为 `tikv-importer.incremental-import = true` ),才会在目标 TiDB 中创建此库。 | From da61ca97f66c30bdfb106d7f5dd21a2a82ea8bf8 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 12 Jan 2022 15:03:05 +0800 Subject: [PATCH 51/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index f64470708aca..bf1b1da59991 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -150,11 +150,13 @@ TiDB 版本:5.4.0 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果从 v5.4.0 以前的版本升级到 v5.4.0 或以上,默认保持升级前此特性的开关状态(v4.0.0 之前无此项特性的版本默认关闭),由用户决定是否开启。 -- **支持收集部分列的统计信息(实验特性)** +- **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** + + 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 - 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中用到的列)的统计信息。这些被优化器用到的列称为 `PREDICATE COLUMNS`。 + 从 v5.4.0 开始,你可以设置系统变量 [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) 的值为 `ON` 开启 TiDB 对 `PREDICATE COLUMNS` 的收集。 - 从 v5.4.0 开始,TiDB 引入了收集部分列的统计信息的特性(默认关闭),支持只收集指定列或者 `PREDICATE COLUMNS` 的统计信息,极大地降低了收集统计信息的开销。 + 开启后,TiDB 将每隔 100 * [`stats-lease`](/tidb-configuration-file.md#stats-lease) 时间将 `PREDICATE COLUMNS` 信息写入系统表 `mysql.column_stats_usage`。等到业务的查询模式稳定以后,使用 `ANALYZE TABLE TableName PREDICATE COLUMNS` 语法收集 `PREDICATE COLUMNS` 列的统计信息,可以极大地降低收集统计信息的开销。 [用户文档](/statistics.md#收集部分列的统计信息) From b0b7f9594511ead804e5d549b2946129446fbdc9 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 12 Jan 2022 15:48:07 +0800 Subject: [PATCH 52/98] Apply suggestions from code review --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index bf1b1da59991..2901383dc323 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -174,7 +174,7 @@ TiDB 版本:5.4.0 TiDB 从 v5.4.0 版本开始支持 `ANALYZE` 配置持久化功能,方便后续收集统计信息时沿用已有配置项。 - `ANALYZE` 配置持久化功能默认开启(系统变量 `tidb_analyze_version = 2` 且 `tidb_persist_analyze_options = true`),用于记录手动执行 `ANALYZE` 语句时指定的持久化配置项。记录后,当 TiDB 下一次自动更新统计信息或者你手动收集统计信息但未指定配置项时,TiDB 会按照记录的配置项收集统计信息。 + `ANALYZE` 配置持久化功能默认开启(系统变量 `tidb_analyze_version` 为默认值 `2`,`tidb_persist_analyze_options` 为默认值 `ON`),用于记录手动执行 `ANALYZE` 语句时指定的持久化配置项。记录后,当 TiDB 下一次自动更新统计信息或者你手动收集统计信息但未指定配置项时,TiDB 会按照记录的配置项收集统计信息。 [用户文档](/statistics.md#analyze-配置持久化) @@ -233,7 +233,7 @@ TiDB 版本:5.4.0 - **Top SQL(实验特性)** - 新推出实验性特性 Top SQL(默认关闭),帮助用户轻松找到节点中负载贡献较大的查询。 + 新推出实验性特性 Top SQL(默认关闭),帮助用户轻松找到节点中消耗负载较大的查询。 [用户文档](/dashboard/top-sql.md) From d8715bbae384eeb29feabde54df298b536d11cd9 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 12 Jan 2022 22:39:56 +0800 Subject: [PATCH 53/98] Update releases/release-5.4.0.md Co-authored-by: Xinye Tao --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 2901383dc323..5b4af8547508 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -101,9 +101,9 @@ TiDB 版本:5.4.0 - **新增 Raft Engine(实验特性)** - 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。 + 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 - 由于 Raft Engine 涉及数据格式改动,目前仍属于实验特性,并默认关闭。同时请注意最新的 Raft Engine 不与 v5.4.0 版本前的 Raft Engine 兼容。因此在进行跨越 v5.4.0 版本的升级和降级之前,需要确保已有 TiKV 节点上的 Raft Engine 已被关闭。 + Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 [用户文档](/tikv-configuration-file.md#raft-engine) From 0a2d17442ae19c00fb0f2b65011dc60a961e5e6d Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 12 Jan 2022 22:41:00 +0800 Subject: [PATCH 54/98] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: xixirangrang Co-authored-by: sunzy --- releases/release-5.4.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 5b4af8547508..5b8d8c50637e 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -85,7 +85,9 @@ TiDB 版本:5.4.0 - **TiDB 从 v5.4.0 起支持 GBK 字符集** - 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。为了更好的支持中文用户,TiDB 从 v5.4.0 版本开始支持 GBK 字符集,同时支持 `gbk_bin` 和 `gbk_chinese_ci` 两种排序规则(在使用这两种排序规则前需要开启 TiDB 配置项 `new_collations_enabled_on_first_bootstrap`)。 + 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。 + + 为了更好的支持中文用户,TiDB 从 v5.4.0 起支持 GBK 字符集。在初次初始化 TiDB 集群时开启 TiDB 配置项 [`new_collations_enabled_on_first_bootstrap`](/tidb-configuration-file.md#new_collations_enabled_on_first_bootstrap) 后,TiDB GBK 字符集同时支持 `gbk_bin` 和 `gbk_chinese_ci` 这两种排序规则。 在使用 GBK 字符集时,需要注意兼容性限制,详情参考[字符集和排序 - GBK](/character-set-gbk.md)。 @@ -199,9 +201,9 @@ TiDB 版本:5.4.0 为 TiDB Lightning 增加 `incremental-import` 开关。默认值为 `false`,表明目标表已存在数据时将不会执行导入。将默认值改为 `true` 则继续导入。注意,当使用并行导入特性时,需要将该配置项设为 `true`。 -- **为 TiDB Lightning 增加新参数,用于在并行导入模式下保存各个 TiDB Lightning 实例元信息的 schema 名字 ** +- **增加新配置允许自定义用于保存 TiDB Lightning 并行导入特性的元信息的 schema 名称** - 为 TiDB Lightning 增加 `meta-schema-name` 参数。在并行导入模式下,该参数用于在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名字,默认值为 "lightning_metadata"。对于参与同一批并行导入的每个 TiDB Lightning 实例,必须将此配置项设置为相同的值,否则将无法确保导入数据的正确性。 + 为 TiDB Lightning 增加 `meta-schema-name` 配置。在并行导入模式下,该参数用于在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名称,默认值为 "lightning_metadata"。对于参与同一批并行导入的每个 TiDB Lightning 实例,必须将此配置项设置为相同的值,否则将无法确保导入数据的正确性。 - **在 TiDB Lightning 中添加重复数据的检测** From 29b96f3f9b89e082eb21abda9f43a5dad97eebd7 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 10:23:02 +0800 Subject: [PATCH 55/98] add two config changes --- releases/release-5.4.0.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 5b8d8c50637e..652cf42d1f8c 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -48,6 +48,7 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | +| TiDB | `txn-total-size-limit` | 修改 | 配置 TiDB 单个事务大小的限制。该配置项的最大值由 `10737418240`(表示 10GB)调整至 `1099511627776`(表示 1TB)。| | TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| @@ -56,6 +57,8 @@ TiDB 版本:5.4.0 | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `raftstore.raft-log-gc-tick-interval` | 修改 | 默认值修改为 `3s` | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | +| TiKV | `allow-remove-leader` | 删除 | 决定是否允许删除主开关 | +| TiKV | `raft-msg-flush-interval` | 删除 | Raft 消息攒批发出的间隔时间。每隔该配置项指定的间隔,Raft 消息会攒批发出。 | | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示 DTFile 储存文件格式,默认值为 `2`,该格式在数据文件中内嵌哈希值。也可以设置为 `3`,该格式包含元数据,标记数据校验,支持多种哈希算法。| From b2c5b24984fcf972dd78f40457e51d869fbe2fe0 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 11:28:04 +0800 Subject: [PATCH 56/98] Apply suggestions from code review Co-authored-by: Flowyi --- releases/release-5.4.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 652cf42d1f8c..2e576938c94d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -119,8 +119,7 @@ TiDB 版本:5.4.0 - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` - 引入动态线程池,提升资源利用率(实验特性) - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 - - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,使 CPU 使用率降低达 90% - - TiFlash 调整了文件系统中 Delta Tree 相关的默认参数,使之更适合一般的生产环境 + - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,数据同步性能提升 50% - **通过 session 变量实现有界限过期数据读取** From cae6129d83b19e6c5970bcb11e6c6e946326f1bd Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 14:32:51 +0800 Subject: [PATCH 57/98] Apply suggestions from code review Co-authored-by: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> --- releases/release-5.4.0.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 2e576938c94d..ddaf94deae3b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -32,15 +32,15 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | -| `tidb_backoff_lock_fast` | 修改 | 默认值由 `100` 修改为 `10` | +| [`tidb_backoff_lock_fast`](/system-variables.md#tidb_backoff_lock_fast) | 修改 | 默认值由 `100` 修改为 `10` | | [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | -| `tidb_enable_index_merge` | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | +| [`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-从-v40-版本开始引入) | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | -| `tidb_read_staleness` | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | +| [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | -| `tidb_store_limit` | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | +| [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | ### 配置文件参数 @@ -60,12 +60,12 @@ TiDB 版本:5.4.0 | TiKV | `allow-remove-leader` | 删除 | 决定是否允许删除主开关 | | TiKV | `raft-msg-flush-interval` | 删除 | Raft 消息攒批发出的间隔时间。每隔该配置项指定的间隔,Raft 消息会攒批发出。 | | PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | -| TiFlash | `profile.default.enable_elastic_threadpool` | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| +| TiFlash | [`profile.default.enable_elastic_threadpool`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示 DTFile 储存文件格式,默认值为 `2`,该格式在数据文件中内嵌哈希值。也可以设置为 `3`,该格式包含元数据,标记数据校验,支持多种哈希算法。| -| TiFlash | `logger.count` | 修改 | 默认值修改为 `10` | -| TiFlash | `status.metrics_port` | 修改 | 默认值修改为 `8234` | -| TiFlash | `raftstore.apply-pool-size` | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | -| TiFlash | `raftstore.store-pool-size` | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | +| TiFlash | [`logger.count`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 默认值修改为 `10` | +| TiFlash | [`status.metrics_port`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 默认值修改为 `8234` | +| TiFlash | [`raftstore.apply-pool-size`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | +| TiFlash | [`raftstore.store-pool-size`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | | TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `104857601`(10MB) | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | From b93b6f04f1d2f4d17b0b67dbb9f7c3374d0ba094 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 14:56:34 +0800 Subject: [PATCH 58/98] add ticdc notes --- releases/release-5.4.0.md | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index ddaf94deae3b..8b5eaf69724b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -89,7 +89,7 @@ TiDB 版本:5.4.0 - **TiDB 从 v5.4.0 起支持 GBK 字符集** 在 v5.4.0 前,TiDB 支持 `ascii`、`binary`、`latin1`、`utf8` 和 `utf8mb4` 字符集。 - + 为了更好的支持中文用户,TiDB 从 v5.4.0 起支持 GBK 字符集。在初次初始化 TiDB 集群时开启 TiDB 配置项 [`new_collations_enabled_on_first_bootstrap`](/tidb-configuration-file.md#new_collations_enabled_on_first_bootstrap) 后,TiDB GBK 字符集同时支持 `gbk_bin` 和 `gbk_chinese_ci` 这两种排序规则。 在使用 GBK 字符集时,需要注意兼容性限制,详情参考[字符集和排序 - GBK](/character-set-gbk.md)。 @@ -157,17 +157,17 @@ TiDB 版本:5.4.0 - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 - + 从 v5.4.0 开始,你可以设置系统变量 [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) 的值为 `ON` 开启 TiDB 对 `PREDICATE COLUMNS` 的收集。 - + 开启后,TiDB 将每隔 100 * [`stats-lease`](/tidb-configuration-file.md#stats-lease) 时间将 `PREDICATE COLUMNS` 信息写入系统表 `mysql.column_stats_usage`。等到业务的查询模式稳定以后,使用 `ANALYZE TABLE TableName PREDICATE COLUMNS` 语法收集 `PREDICATE COLUMNS` 列的统计信息,可以极大地降低收集统计信息的开销。 - + [用户文档](/statistics.md#收集部分列的统计信息) - + - **支持统计信息的同步加载(实验特性)** 从 v5.4.0 开始,TiDB 引入了统计信息同步加载的特性(默认关闭),支持执行当前 SQL 语句时将直方图、TopN、CMSketch 等占用空间较大的统计信息同步加载到内存,提高该 SQL 语句优化时统计信息的完整性。 - + [用户文档](/statistics.md#统计信息的加载) ### 稳定性 @@ -177,9 +177,9 @@ TiDB 版本:5.4.0 统计信息是优化器生成执行计划时所参考的基础信息之一,统计信息的准确性直接影响生成的执行计划是否合理。为了保证统计信息的准确性,有时候需要针对不同的表、分区、索引设置不同的采集配置项。 TiDB 从 v5.4.0 版本开始支持 `ANALYZE` 配置持久化功能,方便后续收集统计信息时沿用已有配置项。 - + `ANALYZE` 配置持久化功能默认开启(系统变量 `tidb_analyze_version` 为默认值 `2`,`tidb_persist_analyze_options` 为默认值 `ON`),用于记录手动执行 `ANALYZE` 语句时指定的持久化配置项。记录后,当 TiDB 下一次自动更新统计信息或者你手动收集统计信息但未指定配置项时,TiDB 会按照记录的配置项收集统计信息。 - + [用户文档](/statistics.md#analyze-配置持久化) @@ -290,6 +290,10 @@ TiDB 版本:5.4.0 + TiCDC + - 减少 "EventFeed retry rate limited" 日志的数量 [#4006](https://github.com/pingcap/tiflow/issues/4006) + - 降低在同步大量表时的同步延时 [#3900](https://github.com/pingcap/tiflow/issues/3900) + - 减少 TiKV 节点宕机后 kv client 恢复的时间 [#3191](https://github.com/pingcap/tiflow/issues/3191) + + TiDB Data Migration (DM) + TiDB Lightning @@ -334,6 +338,21 @@ TiDB 版本:5.4.0 + TiCDC + - 修复当 `min.insync.replicas` 小于 `replication-factor` 时不能同步的问题 [#3994](https://github.com/pingcap/tiflow/issues/3994) + - 修复 `cached region` 监控指标为负数的问题 [#4300](https://github.com/pingcap/tiflow/issues/4300) + - 修复 `mq sink write row` 没有监控数据的问题 [#3431](https://github.com/pingcap/tiflow/issues/3431) + - 修复 `sql mode` 兼容性问题 [#3810](https://github.com/pingcap/tiflow/issues/3810) + - 修复在移除同步任务后潜在的 panic 问题 [#3128](https://github.com/pingcap/tiflow/issues/3128) + - 修复输出默认列值时的 panic 问题和数据不一致的问题 [#3929](https://github.com/pingcap/tiflow/issues/3929) + - 修复不支持同步默认值的问题 [#3793](https://github.com/pingcap/tiflow/issues/3793) + - 修复潜在的同步流控死锁问题 [#4055](https://github.com/pingcap/tiflow/issues/4055) + - 修复在磁盘写满时无日志输出的问题 [#3362](https://github.com/pingcap/tiflow/issues/3362) + - 修复 DDL 特殊注释导致的同步停止的问题 [#3755](https://github.com/pingcap/tiflow/issues/3755) + - 修复在某些 RHEL 发行版上因时区问题导致服务无法启动的问题 [#3584](https://github.com/pingcap/tiflow/issues/3584) + - 修复因 checkpoint 不准确导致的潜在的数据丢失问题 [#3545](https://github.com/pingcap/tiflow/issues/3545) + - 修复在容器环境中 OOM 的问题 [#1798](https://github.com/pingcap/tiflow/issues/1798) + - 修复 `config.Metadata.Timeout` 没有正确配置而导致的同步停止问题 [#3352](https://github.com/pingcap/tiflow/issues/3352) + + TiDB Data Migration (DM) + TiDB Lightning From 5e5ab87ea9d2b27aeb6222dbe1bb5db4b8f52d7d Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:40:14 +0800 Subject: [PATCH 59/98] add a compatibility note --- releases/release-5.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 8b5eaf69724b..f5dc3d064b48 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -81,6 +81,7 @@ TiDB 版本:5.4.0 - 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 - TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 +- 自 v5.4.0 起,对于通过 Plan Cache 已经缓存的执行计划,如果为其创建绑定 (Binding),会使得对应查询已经缓存的计划失效。v5.4.0 前已经缓存的计划不受新 Binding 的影响。 ## 新功能 From 69588008399cc3e2971bef324a7e75ee9e23ed72 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:50:02 +0800 Subject: [PATCH 60/98] add links --- releases/release-5.4.0.md | 10 +++++----- tikv-configuration-file.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index f5dc3d064b48..8d2cb0f8a042 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -48,18 +48,18 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | -| TiDB | `txn-total-size-limit` | 修改 | 配置 TiDB 单个事务大小的限制。该配置项的最大值由 `10737418240`(表示 10GB)调整至 `1099511627776`(表示 1TB)。| -| TiKV | `snap-generator-pool-size` | 新增 | `snap-generator` 线程池大小,默认值为 `2` | +| TiDB | [`txn-total-size-limit`](/tidb-configuration-file.md#txn-total-size-limit) | 修改 | 配置 TiDB 单个事务大小的限制。该配置项的最大值由 `10737418240`(表示 10GB)调整至 `1099511627776`(表示 1TB)。| +| TiKV | [`snap-generator-pool-size`](/tidb-configuration-file.md#snap-generator-pool-size) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| -| TiKV | `raftstore.raft-log-compact-sync-interval` | 新增 | 控制 CompactLog 命令的间隔,默认值为 `2s` | +| TiKV | [`raftstore.raft-log-compact-sync-interval`](/tikv-configuration-file.md#raft-log-compact-sync-interval) | 新增 | 控制 CompactLog 命令的间隔,默认值为 `2s` | | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | -| TiKV | `raftstore.raft-log-gc-tick-interval` | 修改 | 默认值修改为 `3s` | +| TiKV | [`raftstore.raft-log-gc-tick-interval`](/tikv-configuration-file.md#raft-log-gc-tick-interval) | 修改 | 默认值修改为 `3s` | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | TiKV | `allow-remove-leader` | 删除 | 决定是否允许删除主开关 | | TiKV | `raft-msg-flush-interval` | 删除 | Raft 消息攒批发出的间隔时间。每隔该配置项指定的间隔,Raft 消息会攒批发出。 | -| PD | `log.level` | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | +| PD | [`log.level`](/pd-configuration-file.md#level) | 修改 | 默认值由 "INFO" 改为 "info",保证大小写不敏感 | | TiFlash | [`profile.default.enable_elastic_threadpool`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示是否启用可自动扩展的线程池。打开该配置项可以显著提高 TiFlash 在高并发场景的 CPU 利用率。默认值为 `false`。| | TiFlash | [`storage.format_version`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 新增 | 表示 DTFile 储存文件格式,默认值为 `2`,该格式在数据文件中内嵌哈希值。也可以设置为 `3`,该格式包含元数据,标记数据校验,支持多种哈希算法。| | TiFlash | [`logger.count`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 默认值修改为 `10` | diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 205213970a49..f2fc059a9317 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -504,7 +504,7 @@ raftstore 相关的配置项。 ### `raft-log-gc-tick-interval` + 删除 Raft 日志的轮询任务调度间隔时间,0 表示不启用。 -+ 默认值:10s ++ 默认值:3s + 最小值:0 ### `raft-log-gc-threshold` From ab4f5f38c97ba3f6d7635640a4cfa97c755f89fa Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:52:27 +0800 Subject: [PATCH 61/98] add one more variable --- releases/release-5.4.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 8d2cb0f8a042..593ccadec5df 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -37,10 +37,11 @@ TiDB 版本:5.4.0 | [`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-从-v40-版本开始引入) | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | -| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时。 | +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | +| [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | ### 配置文件参数 From 2057c61e2de9d7ed6bc69a90ca3f8a65dfcdb3ed Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:56:43 +0800 Subject: [PATCH 62/98] adjust not order --- releases/release-5.4.0.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 593ccadec5df..85f1d13a161a 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -36,12 +36,12 @@ TiDB 版本:5.4.0 | [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | | [`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-从-v40-版本开始引入) | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | +| [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | +| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | -| [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | -| [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | ### 配置文件参数 @@ -364,5 +364,3 @@ TiDB 版本:5.4.0 + Dumpling + TiDB Binlog - - From 14df288ad880c6232b545ab0babb69cb30d4db43 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Thu, 13 Jan 2022 16:42:30 +0800 Subject: [PATCH 63/98] Add user doc links to TiFlash, autopilot, and DP features --- releases/release-5.4.0.md | 44 +++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 85f1d13a161a..4288499aa2ee 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -123,6 +123,8 @@ TiDB 版本:5.4.0 - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,数据同步性能提升 50% + 用户文档:[TiFlash 支持的计算下推](/tiflash/use-tiflash.md#tiflash-支持的计算下推),[TiFlash 配置文件](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) + - **通过 session 变量实现有界限过期数据读取** TiDB 是基于 Raft 协议的多副本分布式数据库。面对高并发,高吞吐业务场景,可以通过follower 节点实现读性能扩展,构建读写分离架构。 @@ -142,7 +144,7 @@ TiDB 版本:5.4.0 - **TiDB 正式发布索引合并 (Index Merge) 功能** - [索引合并](/explain-index-merge.md) 是在 TiDB v4.0 版本中作为实验特性引入的一种查询执行方式的优化,可以大幅提高查询在扫描多列数据时条件过滤的效率。例如对以下的查询,若 `WHERE` 子句中两个 `OR` 连接的过滤条件在各自包含的 _key1_ 与 _key2_ 两个列上都存在索引,则 _索引合并_ 可以同时利用 _key1_ 与 _key2_ 上的索引分别进行过滤,然后合并出最终的结果。 + _索引合并_ 是在 TiDB v4.0 版本中作为实验特性引入的一种查询执行方式的优化,可以大幅提高查询在扫描多列数据时条件过滤的效率。例如对以下的查询,若 `WHERE` 子句中两个 `OR` 连接的过滤条件在各自包含的 _key1_ 与 _key2_ 两个列上都存在索引,则 _索引合并_ 可以同时利用 _key1_ 与 _key2_ 上的索引分别进行过滤,然后合并出最终的结果。 ```sql SELECT * FROM table WHERE key1 <= 100 OR key2 = 200; @@ -150,11 +152,13 @@ TiDB 版本:5.4.0 以往 TiDB 在一个表上的查询只能使用一个索引,无法同时使用多个索引进行条件过滤。相较以往,_索引合并_ 避免了此情况下可能不必要的大量数据扫描,也可以使得需要灵活查询不特定多列数据组合的用户利用单列上的索引达到高效稳定的查询,无需大量构建多列复合索引。 - 本版本正式发布了 _索引合并 (Index Merge)_ 特性,但仍存在以下的使用条件和限制(详情请参见[用户文档](/explain-index-merge.md)): + 本版本正式发布了 _索引合并 (Index Merge)_ 特性,但仍存在以下的使用条件和限制: - 目前 TiDB 的 _索引合并_ 优化只限于 _析取范式_ (X1 ⋁ X2 ⋁ …Xn),即 `WHERE` 子句中过滤条件连接词为 `OR`。 + - 目前 TiDB 的 _索引合并_ 优化只限于 _析取范式_ (X1 ⋁ X2 ⋁ …Xn),即 `WHERE` 子句中过滤条件连接词为 `OR`。 - 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果从 v5.4.0 以前的版本升级到 v5.4.0 或以上,默认保持升级前此特性的开关状态(v4.0.0 之前无此项特性的版本默认关闭),由用户决定是否开启。 + - 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果从 v5.4.0 以前的版本升级到 v5.4.0 或以上,默认保持升级前此特性的开关状态(v4.0.0 之前无此项特性的版本默认关闭),由用户决定是否开启。 + + [用户文档](/explain-index-merge.md) - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** @@ -190,14 +194,14 @@ TiDB 版本:5.4.0 - **优化备份对集群的影响** Backup & Restore (BR) 增加了备份线程自动调节功能(默认开启)。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 - 详细文档请阅读 [BR 自动调节](/br/br-features.md#自动调节-从-v54-版本开始引入)。 + + [用户文档](/br/br-features.md#自动调节-从-v54-版本开始引入) - **支持 Azure Blob Storage 作为备份目标存储(实验特性)** Backup & Restore (BR) 支持 Azure Blob Storage 作为备份的远端目标存储。在 Azure Cloud 环境部署 TiDB 的用户,可以支持使用该功能将集群数据备份到 Azure Blob Storage 服务中。 - 该功能目前是实验特性,详细情况参考 [BR 支持 Azure Blob Storage 远端存储](/br/backup-and-restore-azblob.md)。 - + [用户文档](/br/backup-and-restore-azblob.md) ### 数据迁移 @@ -205,20 +209,28 @@ TiDB 版本:5.4.0 为 TiDB Lightning 增加 `incremental-import` 开关。默认值为 `false`,表明目标表已存在数据时将不会执行导入。将默认值改为 `true` 则继续导入。注意,当使用并行导入特性时,需要将该配置项设为 `true`。 + [用户文档](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) + - **增加新配置允许自定义用于保存 TiDB Lightning 并行导入特性的元信息的 schema 名称** 为 TiDB Lightning 增加 `meta-schema-name` 配置。在并行导入模式下,该参数用于在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名称,默认值为 "lightning_metadata"。对于参与同一批并行导入的每个 TiDB Lightning 实例,必须将此配置项设置为相同的值,否则将无法确保导入数据的正确性。 + [用户文档](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) + - **在 TiDB Lightning 中添加重复数据的检测** 在 `backend=local` 模式下,数据导入完成之前 TiDB Lightning 会输出冲突数据,然后从数据库中删除这些冲突数据。用户可以在导入完成后解析冲突数据,并根据业务规则选择适合的数据进行插入。建议根据冲突数据清洗上游数据源,避免在后续增量数据迁移阶段遇到冲突数据而造成数据不一致。 + [用户文档](tidb-lightning/tidb-lightning-error-resolution.md) + - **在 TiDB Data Migration (DM) 中 优化 relay log 的使用方式** - - 恢复 `source` 配置中 `enable-relay` 开关 - - 增加 `start-relay` 或 `stop-relay` 命令中动态开启或关闭 relay log 的功能 - - relay log 的开启状态与 `source` 绑定,source 迁移到任意 DM-worker 均保持原有开启或关闭状态 - - relay log 的存放路径移至 DM-worker 配置文件 + - 恢复 `source` 配置中 `enable-relay` 开关。 + - 增加 `start-relay` 或 `stop-relay` 命令中动态开启或关闭 relay log 的功能。 + - relay log 的开启状态与 `source` 绑定,source 迁移到任意 DM-worker 均保持原有开启或关闭状态。 + - relay log 的存放路径移至 DM-worker 配置文件。 + + [用户文档](/dm/relay-log.md) - **在 DM 中优化[排序规则](/character-set-and-collation.md)的处理方式** @@ -227,6 +239,8 @@ TiDB 版本:5.4.0 - 如果对排序规则要求不严格,允许上下游查询结果排序规则不一致,使用默认的 loose 模式可以避免报错。 - 如果对排序规则要求严格,业务要求排序规则必须一致,则应当使用 strict 模式。但如果下游不支持上游缺省的 collation,同步可能会报错。 + [用户文档](/dm/task-configuration-file-full.md#完整配置文件示例) + - **在 DM 中优化 `transfer source`,支持平滑执行同步任务** 当 DM-worker 所在各节点负载不均衡时,`transfer source` 命令可用于手动将某 `source` 配置迁移到其他节点。优化后的 `transfer source` 简化了用户操作步骤,不再要求先暂停所有关联 task 而是直接执行平滑迁移,DM 将在内部完成所需操作。 @@ -235,6 +249,8 @@ TiDB 版本:5.4.0 DM 支持通过 API 的方式进行日常管理,包括增加数据源、管理任务等。本次更新 OpenAPI 从实验特性转为正式特性。 + [用户文档](/dm/dm-open-api.md) + ### 问题诊断效率 - **Top SQL(实验特性)** @@ -253,14 +269,16 @@ TiDB 版本:5.4.0 - **持续性能分析(实验特性)** - - 支持更多组件:除了 TiDB、PD 和 TiKV 外,v5.4.0 版本中还支持查看 TiFlash CPU Profiling + - 支持更多组件:除了 TiDB、PD 和 TiKV 外,v5.4.0 版本中还支持查看 TiFlash CPU Profiling。 - 支持更方便的查看形式:支持以火焰图形式查看 CPU Profiling 和 Goroutine 结果。 - 支持更多部署环境:支持在 TiDB Operator 部署环境下启用持续性能分析功能。 - 该功能默认关闭,需进入 TiDB Dashboard 持续性能分析页面开启,开启方法见[用户文档](/dashboard/continuous-profiling.md)。 + 该功能默认关闭,需进入 TiDB Dashboard 持续性能分析页面开启。 持续性能分析仅支持由 v1.9.0 及以上版本 TiUP 或 v1.3.0 及以上版本 TiDB Operator 升级或安装的集群。 + [用户文档](/dashboard/continuous-profiling.md) + ## 提升改进 + TiDB From 0e1340cf4e85bb4c478b9e61b84350491375ade7 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 13 Jan 2022 17:45:02 +0800 Subject: [PATCH 64/98] remove experimental for blob azure --- releases/release-5.4.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 4288499aa2ee..c7676f0a72c0 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -16,7 +16,7 @@ TiDB 版本:5.4.0 + 支持统计信息采集配置持久化 + 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 + 优化备份对集群的影响 -+ 支持 Azure Blob Storage 作为备份目标存储(实验特性) ++ 支持 Azure Blob Storage 作为备份目标存储 + 持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能 + 为 TiDB Lightning 增加已存在数据表是否允许导入的开关 + 优化持续性能分析实验特性 @@ -124,7 +124,7 @@ TiDB 版本:5.4.0 - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,数据同步性能提升 50% 用户文档:[TiFlash 支持的计算下推](/tiflash/use-tiflash.md#tiflash-支持的计算下推),[TiFlash 配置文件](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) - + - **通过 session 变量实现有界限过期数据读取** TiDB 是基于 Raft 协议的多副本分布式数据库。面对高并发,高吞吐业务场景,可以通过follower 节点实现读性能扩展,构建读写分离架构。 @@ -157,7 +157,7 @@ TiDB 版本:5.4.0 - 目前 TiDB 的 _索引合并_ 优化只限于 _析取范式_ (X1 ⋁ X2 ⋁ …Xn),即 `WHERE` 子句中过滤条件连接词为 `OR`。 - 如果全新部署的集群版本为 v5.4.0 或以上,此特性默认开启。如果从 v5.4.0 以前的版本升级到 v5.4.0 或以上,默认保持升级前此特性的开关状态(v4.0.0 之前无此项特性的版本默认关闭),由用户决定是否开启。 - + [用户文档](/explain-index-merge.md) - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** @@ -194,10 +194,10 @@ TiDB 版本:5.4.0 - **优化备份对集群的影响** Backup & Restore (BR) 增加了备份线程自动调节功能(默认开启)。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 - + [用户文档](/br/br-features.md#自动调节-从-v54-版本开始引入) -- **支持 Azure Blob Storage 作为备份目标存储(实验特性)** +- **支持 Azure Blob Storage 作为备份目标存储** Backup & Restore (BR) 支持 Azure Blob Storage 作为备份的远端目标存储。在 Azure Cloud 环境部署 TiDB 的用户,可以支持使用该功能将集群数据备份到 Azure Blob Storage 服务中。 @@ -229,7 +229,7 @@ TiDB 版本:5.4.0 - 增加 `start-relay` 或 `stop-relay` 命令中动态开启或关闭 relay log 的功能。 - relay log 的开启状态与 `source` 绑定,source 迁移到任意 DM-worker 均保持原有开启或关闭状态。 - relay log 的存放路径移至 DM-worker 配置文件。 - + [用户文档](/dm/relay-log.md) - **在 DM 中优化[排序规则](/character-set-and-collation.md)的处理方式** @@ -240,7 +240,7 @@ TiDB 版本:5.4.0 - 如果对排序规则要求严格,业务要求排序规则必须一致,则应当使用 strict 模式。但如果下游不支持上游缺省的 collation,同步可能会报错。 [用户文档](/dm/task-configuration-file-full.md#完整配置文件示例) - + - **在 DM 中优化 `transfer source`,支持平滑执行同步任务** 当 DM-worker 所在各节点负载不均衡时,`transfer source` 命令可用于手动将某 `source` 配置迁移到其他节点。优化后的 `transfer source` 简化了用户操作步骤,不再要求先暂停所有关联 task 而是直接执行平滑迁移,DM 将在内部完成所需操作。 From d69c8bc58d2072890b87aa7ec53f5a592af16b2d Mon Sep 17 00:00:00 2001 From: Enwei Date: Fri, 14 Jan 2022 09:51:24 +0800 Subject: [PATCH 65/98] remove a non-5.4 TiKV config --- releases/release-5.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index c7676f0a72c0..c43d9cd4fa93 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -53,7 +53,6 @@ TiDB 版本:5.4.0 | TiKV | [`snap-generator-pool-size`](/tidb-configuration-file.md#snap-generator-pool-size) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| -| TiKV | [`raftstore.raft-log-compact-sync-interval`](/tikv-configuration-file.md#raft-log-compact-sync-interval) | 新增 | 控制 CompactLog 命令的间隔,默认值为 `2s` | | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | [`raftstore.raft-log-gc-tick-interval`](/tikv-configuration-file.md#raft-log-gc-tick-interval) | 修改 | 默认值修改为 `3s` | From cf3302b802a04a105c1349c23a8afaaf52605cae Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 14 Jan 2022 11:08:26 +0800 Subject: [PATCH 66/98] add tiflash notes --- releases/release-5.4.0.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index c43d9cd4fa93..16f01c8a1a6d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -303,6 +303,9 @@ TiDB 版本:5.4.0 + TiFlash + - 优化本地算子通讯 + - 调高 grpc 非临时线程数,避免频繁创建/销毁线程 + + Tools + Backup & Restore (BR) @@ -351,6 +354,22 @@ TiDB 版本:5.4.0 + TiFlash + - 修复查询报错 `Tree struct based executor must have executor id` + - 修复查询报错 `Illegal column type UInt32 for the second argument of function tidbRoundWithFrac` + - 修复查询报错 `Unexpected type of column: Nullable(Nothing)` + - 修复查询报错 `source region at right may be considered at left when merging` + - 修复 `collation` 对 `nullable` 类型失效的问题 + - 修复 `coalesce` 错误地从结果列中删除 `nullable` 标志的问题 + - 修复当 MPP 查询被终止时,TiFlash 偶发的崩溃问题 + - 修复 `where ` 查询结果出错的问题 + - 修复整数类型主键的列类型设置为较大范围后数据可能不一致的问题 + - 修复输入早于 1970-01-01 00:00:01 UTC 时,`unix_timestamp` 行为与 TiDB/MySQL 不一致的问题 + - 修复 TiFlash 重启时偶发的 `EstablishMPPConnection` 错误 + - 修复在 TiFlash 与 TiDB/TiKV 之间 `CastStringAsDecimal` 行为不一致的问题 + - 修复查询报错 `DB::Exception: Encode type of coprocessor response is not CHBlock` + - 修复在 TiFlash 与 TiDB/TiKV 之间 `castStringAsReal ` 行为不一致的问题。 + - 修复 TiFlash 的 `date_add_string_xxx` 函数返回值与 mysql 不一致的问题 + + Tools + Backup & Restore (BR) From 5d5680f3be6c58f51a2b41874eee92e31c264f22 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 14 Jan 2022 11:16:31 +0800 Subject: [PATCH 67/98] add 2 user docs --- releases/release-5.4.0.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 16f01c8a1a6d..60af5913b3fe 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -66,7 +66,7 @@ TiDB 版本:5.4.0 | TiFlash | [`status.metrics_port`](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) | 修改 | 默认值修改为 `8234` | | TiFlash | [`raftstore.apply-pool-size`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 新增 | 处理 Raft 数据落盘的线程池中线程的数量,默认值为 `4`。 | | TiFlash | [`raftstore.store-pool-size`](/tiflash/tiflash-configuration.md#配置文件-tiflash-learnertoml) | 新增 | 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小,默认值为 `4`。 | -| TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | +| TiDB Data Migration (DM) | [`collation_compatible`](/dm/task-configuration-file-full.md#完整配置文件示例) | 新增 | 同步 CREATE 语句中缺省 Collation 的方式,可选 "loose" 和 "strict",默认为 "loose"。 | | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `104857601`(10MB) | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | | TiDB Lightning | `meta-schema-name` | 修改 | 此配置项控制 TiDB Lightning 在目标 TiDB 中保存 metadata 对应的 schema name。从 v5.4.0 开始,只在开启了并行导入功能时(对应配置为 `tikv-importer.incremental-import = true` ),才会在目标 TiDB 中创建此库。 | @@ -103,15 +103,9 @@ TiDB 版本:5.4.0 该功能默认关闭。开启后,如果用户没有对应的权限,通过 TiSpark 操作会抛出对应的异常。 -### 性能 - -- **新增 Raft Engine(实验特性)** - - 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 + [用户文档](/tispark-overview.md#安全) - Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 - - [用户文档](/tikv-configuration-file.md#raft-engine) +### 性能 - **持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能** @@ -141,6 +135,8 @@ TiDB 版本:5.4.0 通过该设置,TiDB 可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟内的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 + [用户文档](/tidb-read-staleness.md) + - **TiDB 正式发布索引合并 (Index Merge) 功能** _索引合并_ 是在 TiDB v4.0 版本中作为实验特性引入的一种查询执行方式的优化,可以大幅提高查询在扫描多列数据时条件过滤的效率。例如对以下的查询,若 `WHERE` 子句中两个 `OR` 连接的过滤条件在各自包含的 _key1_ 与 _key2_ 两个列上都存在索引,则 _索引合并_ 可以同时利用 _key1_ 与 _key2_ 上的索引分别进行过滤,然后合并出最终的结果。 @@ -159,6 +155,14 @@ TiDB 版本:5.4.0 [用户文档](/explain-index-merge.md) +- **新增 Raft Engine(实验特性)** + + 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 + + Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 + + [用户文档](/tikv-configuration-file.md#raft-engine) + - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 @@ -187,7 +191,6 @@ TiDB 版本:5.4.0 [用户文档](/statistics.md#analyze-配置持久化) - ## 高可用和容灾 - **优化备份对集群的影响** @@ -266,7 +269,7 @@ TiDB 版本:5.4.0 ### 部署及运维 -- **持续性能分析(实验特性)** +- **增强持续性能分析(实验特性)** - 支持更多组件:除了 TiDB、PD 和 TiKV 外,v5.4.0 版本中还支持查看 TiFlash CPU Profiling。 - 支持更方便的查看形式:支持以火焰图形式查看 CPU Profiling 和 Goroutine 结果。 From a205b7a3f6a3c3738e4cc5a49af6e2f507814342 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 14 Jan 2022 14:33:21 +0800 Subject: [PATCH 68/98] add br, lightning, and pd notes --- releases/release-5.4.0.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 60af5913b3fe..befe5bf2f971 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -39,6 +39,7 @@ TiDB 版本:5.4.0 | [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | +| [`tidb_regard_null_as_point `](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以把 null 值当做点值并作为前缀条件来访问索引 | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | @@ -304,15 +305,21 @@ TiDB 版本:5.4.0 + PD + - 默认开启历史热点记录功能 [#25281](https://github.com/pingcap/tidb/issues/25281) + - 新增 HTTP Component 的签名,用于标识请求来源 [#4490 ](https://github.com/tikv/pd/issues/4490) + - TiDB Dashboard 更新至 v2021.12.31,新增 Top SQL,改善 Profiling 页面 [#4257](https://github.com/tikv/pd/issues/4257) + + TiFlash - 优化本地算子通讯 - - 调高 grpc 非临时线程数,避免频繁创建/销毁线程 + - 调高 gRPC 非临时线程数,避免频繁创建/销毁线程 + Tools + Backup & Restore (BR) + - 增加 BR 加密备份时,对密钥的合法性检查 [#29794](https://github.com/pingcap/tidb/issues/29794) + + TiCDC - 减少 "EventFeed retry rate limited" 日志的数量 [#4006](https://github.com/pingcap/tiflow/issues/4006) @@ -323,6 +330,8 @@ TiDB 版本:5.4.0 + TiDB Lightning + - 在 TiDB-backend 模式下,默认改用乐观事务进行写入来提升性能 [#30953](https://github.com/pingcap/tidb/pull/30953) + + Dumpling + TiDB Binlog @@ -355,6 +364,11 @@ TiDB 版本:5.4.0 + PD + - 修复 Region 统计不受 `flow-round-by-digit` 影响的问题 [#4295](https://github.com/tikv/pd/issues/4295) + - 修复调度 Operator 因为目标 Store 处于 Down 的状态而无法快速失败的问题 [#3353](https://github.com/tikv/pd/issues/3353) + - 修复不能 Merge 在 Offline Store 上面的 Region 的问题 [#4119](https://github.com/tikv/pd/issues/4119) + - 修复热点统计中无法剔除冷热点数据的问题 [#4390](https://github.com/tikv/pd/issues/4390) + + TiFlash - 修复查询报错 `Tree struct based executor must have executor id` @@ -377,6 +391,10 @@ TiDB 版本:5.4.0 + Backup & Restore (BR) + - 修复当恢复完成后,Region 有可能分布不均的问题 [#30425](https://github.com/pingcap/tidb/issues/30425) + - 修复当使用 `minio` 作为备份存储时,不能在 endpoint 指定 `'/'` 的问题 [#30104](https://github.com/pingcap/tidb/issues/30104) + - 修复因为并发备份系统表,导致表名更新失败,无法恢复系统表的问题 [#29710](https://github.com/pingcap/tidb/issues/29710) + + TiCDC - 修复当 `min.insync.replicas` 小于 `replication-factor` 时不能同步的问题 [#3994](https://github.com/pingcap/tiflow/issues/3994) @@ -399,6 +417,8 @@ TiDB 版本:5.4.0 + TiDB Lightning - 修复当 TiDB Lightning 没有权限访问 `mysql.tidb` 表时,导入的结果不正确的问题 [#31088](https://github.com/pingcap/tidb/issues/31088) + - 修复 TiDB Lightning 重启时,跳过某些检查的问题 [#30772](https://github.com/pingcap/tidb/issues/30772) + - 修复当 S3 路径不存在时,TiDB Lightning 没有及时报错的问题 [#30674](https://github.com/pingcap/tidb/pull/30674) + Dumpling From fbe6cfda8805dc9be2f3debd25a933f2ad2679f8 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 17 Jan 2022 10:58:26 +0800 Subject: [PATCH 69/98] add dm and drainer notes --- releases/release-5.4.0.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index befe5bf2f971..95ac0f94e08b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -50,7 +50,6 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | -| TiDB | [`txn-total-size-limit`](/tidb-configuration-file.md#txn-total-size-limit) | 修改 | 配置 TiDB 单个事务大小的限制。该配置项的最大值由 `10737418240`(表示 10GB)调整至 `1099511627776`(表示 1TB)。| | TiKV | [`snap-generator-pool-size`](/tidb-configuration-file.md#snap-generator-pool-size) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| @@ -170,7 +169,7 @@ TiDB 版本:5.4.0 从 v5.4.0 开始,你可以设置系统变量 [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) 的值为 `ON` 开启 TiDB 对 `PREDICATE COLUMNS` 的收集。 - 开启后,TiDB 将每隔 100 * [`stats-lease`](/tidb-configuration-file.md#stats-lease) 时间将 `PREDICATE COLUMNS` 信息写入系统表 `mysql.column_stats_usage`。等到业务的查询模式稳定以后,使用 `ANALYZE TABLE TableName PREDICATE COLUMNS` 语法收集 `PREDICATE COLUMNS` 列的统计信息,可以极大地降低收集统计信息的开销。 + 开启后,TiDB 将每隔 100 - [`stats-lease`](/tidb-configuration-file.md#stats-lease) 时间将 `PREDICATE COLUMNS` 信息写入系统表 `mysql.column_stats_usage`。等到业务的查询模式稳定以后,使用 `ANALYZE TABLE TableName PREDICATE COLUMNS` 语法收集 `PREDICATE COLUMNS` 列的统计信息,可以极大地降低收集统计信息的开销。 [用户文档](/statistics.md#收集部分列的统计信息) @@ -328,12 +327,17 @@ TiDB 版本:5.4.0 + TiDB Data Migration (DM) + - 降低开启 relay 时的 CPU 使用率 [#2214](https://github.com/pingcap/dm/issues/2214) + + TiDB Lightning - 在 TiDB-backend 模式下,默认改用乐观事务进行写入来提升性能 [#30953](https://github.com/pingcap/tidb/pull/30953) + Dumpling + - 提升 Dumpling 检查数据库版本时的兼容性 [#29500](https://github.com/pingcap/tidb/pull/29500) + - 在导出 `CREATE DATABASE` 和 `CREATE TABLE` 时添加默认的 collation [#3420](https://github.com/pingcap/tiflow/issues/3420) + + TiDB Binlog ## Bug 修复 @@ -414,12 +418,18 @@ TiDB 版本:5.4.0 + TiDB Data Migration (DM) + - 修复 `CREATE VIEW` 语句中断复制任务的问题 [#4173](https://github.com/pingcap/tiflow/issues/4173) + - 修复 skip DDL 后需要重置 Schema 的问题 [#4177](https://github.com/pingcap/tiflow/issues/4177) + - 修复 skip DDL 后未及时更新表检查点的问题 [#4184](https://github.com/pingcap/tiflow/issues/4184) + - 修复 TiDB 和 Parser 版本兼容问题 [#4298](https://github.com/pingcap/tiflow/issues/4298) + - 修复部分 syncer metrics 只有在查询状态时才得以更新的问题 [#4281](https://github.com/pingcap/tiflow/issues/4281) + + TiDB Lightning - 修复当 TiDB Lightning 没有权限访问 `mysql.tidb` 表时,导入的结果不正确的问题 [#31088](https://github.com/pingcap/tidb/issues/31088) - 修复 TiDB Lightning 重启时,跳过某些检查的问题 [#30772](https://github.com/pingcap/tidb/issues/30772) - 修复当 S3 路径不存在时,TiDB Lightning 没有及时报错的问题 [#30674](https://github.com/pingcap/tidb/pull/30674) - + Dumpling - + TiDB Binlog + + - 修复 Drainer 不兼容 `CREATE PLACEMENT POLICY` 语句导致处理失败的问题 [#1118](https://github.com/pingcap/tidb-binlog/issues/1118) From 53fb78b27134a380d7e8af2315b6f38e88583280 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 17 Jan 2022 11:12:54 +0800 Subject: [PATCH 70/98] delete raft engine --- releases/release-5.4.0.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 95ac0f94e08b..9db57f5e33c1 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -14,7 +14,6 @@ TiDB 版本:5.4.0 + 支持索引合并 (Index Merge) 数据访问方法,能够合并多个列上索引的条件过滤结果 + 支持通过 session 变量实现有界限过期数据读取 + 支持统计信息采集配置持久化 -+ 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 + 优化备份对集群的影响 + 支持 Azure Blob Storage 作为备份目标存储 + 持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能 @@ -155,14 +154,6 @@ TiDB 版本:5.4.0 [用户文档](/explain-index-merge.md) -- **新增 Raft Engine(实验特性)** - - 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 - - Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 - - [用户文档](/tikv-configuration-file.md#raft-engine) - - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 From 5246601fac7248dd399d76ce684a02a4f83a540b Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 19 Jan 2022 13:49:39 +0800 Subject: [PATCH 71/98] Update tikv-configuration-file.md --- tikv-configuration-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 0994e41ca696..1bf89a3aac63 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -504,7 +504,7 @@ raftstore 相关的配置项。 ### `raft-log-gc-tick-interval` + 删除 Raft 日志的轮询任务调度间隔时间,0 表示不启用。 -+ 默认值:3s ++ 默认值:10s + 最小值:0 ### `raft-log-gc-threshold` From afedbe3305d8dab12468b39c0484f36f8d5b917f Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 19 Jan 2022 14:09:00 +0800 Subject: [PATCH 72/98] Apply suggestions from code review Co-authored-by: Enwei --- releases/release-5.4.0.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 9db57f5e33c1..c6c019af8d00 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -14,6 +14,7 @@ TiDB 版本:5.4.0 + 支持索引合并 (Index Merge) 数据访问方法,能够合并多个列上索引的条件过滤结果 + 支持通过 session 变量实现有界限过期数据读取 + 支持统计信息采集配置持久化 ++ 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 + 优化备份对集群的影响 + 支持 Azure Blob Storage 作为备份目标存储 + 持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能 @@ -39,7 +40,7 @@ TiDB 版本:5.4.0 | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | | [`tidb_regard_null_as_point `](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以把 null 值当做点值并作为前缀条件来访问索引 | -| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `OFF` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | +| [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | @@ -54,7 +55,6 @@ TiDB 版本:5.4.0 | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | -| TiKV | [`raftstore.raft-log-gc-tick-interval`](/tikv-configuration-file.md#raft-log-gc-tick-interval) | 修改 | 默认值修改为 `3s` | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | | TiKV | `allow-remove-leader` | 删除 | 决定是否允许删除主开关 | | TiKV | `raft-msg-flush-interval` | 删除 | Raft 消息攒批发出的间隔时间。每隔该配置项指定的间隔,Raft 消息会攒批发出。 | @@ -79,7 +79,7 @@ TiDB 版本:5.4.0 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 - 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 -- TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 +- 对 log 相关参数,TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 - 自 v5.4.0 起,对于通过 Plan Cache 已经缓存的执行计划,如果为其创建绑定 (Binding),会使得对应查询已经缓存的计划失效。v5.4.0 前已经缓存的计划不受新 Binding 的影响。 ## 新功能 @@ -154,6 +154,14 @@ TiDB 版本:5.4.0 [用户文档](/explain-index-merge.md) +- **新增 Raft Engine(实验特性)** + + 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 + + Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 + + [用户文档](/tikv-configuration-file.md#raft-engine) + - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 From 1aa6d1862aeb768a5f40f5a614e7bb1fdbd39613 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 19 Jan 2022 14:11:40 +0800 Subject: [PATCH 73/98] Update release-5.4.0.md --- releases/release-5.4.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index c6c019af8d00..1377304ced5a 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -299,13 +299,13 @@ TiDB 版本:5.4.0 - 减少备份使用的默认线程池大小,并在压力大时限制其使用 [#11000](https://github.com/tikv/tikv/issues/11000) - 支持动态调整 Apply 和 Store 线程池大小 [#11159](https://github.com/tikv/tikv/issues/11159) - 支持配置 `snap-generator` 线程池大小 [#11247](https://github.com/tikv/tikv/issues/11247) - - 优化在文件数较多且读写频繁的场景下 RocksDB 的全局锁争用问题 [rocksdb#250](https://github.com/tikv/rocksdb/pull/250) + - 优化在文件数较多且读写频繁的场景下 RocksDB 的全局锁争用问题 [#250](https://github.com/tikv/rocksdb/pull/250) + PD - 默认开启历史热点记录功能 [#25281](https://github.com/pingcap/tidb/issues/25281) - 新增 HTTP Component 的签名,用于标识请求来源 [#4490 ](https://github.com/tikv/pd/issues/4490) - - TiDB Dashboard 更新至 v2021.12.31,新增 Top SQL,改善 Profiling 页面 [#4257](https://github.com/tikv/pd/issues/4257) + - TiDB Dashboard 更新至 v2021.12.31 [#4257](https://github.com/tikv/pd/issues/4257) + TiFlash @@ -388,14 +388,14 @@ TiDB 版本:5.4.0 - 修复在 TiFlash 与 TiDB/TiKV 之间 `CastStringAsDecimal` 行为不一致的问题 - 修复查询报错 `DB::Exception: Encode type of coprocessor response is not CHBlock` - 修复在 TiFlash 与 TiDB/TiKV 之间 `castStringAsReal ` 行为不一致的问题。 - - 修复 TiFlash 的 `date_add_string_xxx` 函数返回值与 mysql 不一致的问题 + - 修复 TiFlash 的 `date_add_string_xxx` 函数返回值与 MySQL 不一致的问题 + Tools + Backup & Restore (BR) - 修复当恢复完成后,Region 有可能分布不均的问题 [#30425](https://github.com/pingcap/tidb/issues/30425) - - 修复当使用 `minio` 作为备份存储时,不能在 endpoint 指定 `'/'` 的问题 [#30104](https://github.com/pingcap/tidb/issues/30104) + - 修复当使用 `minio` 作为备份存储时,不能在 endpoint 中指定 `'/'` 的问题 [#30104](https://github.com/pingcap/tidb/issues/30104) - 修复因为并发备份系统表,导致表名更新失败,无法恢复系统表的问题 [#29710](https://github.com/pingcap/tidb/issues/29710) + TiCDC From 673924292019f06d37c2d5f9851385d865918a79 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 19 Jan 2022 14:18:21 +0800 Subject: [PATCH 74/98] Update releases/release-5.4.0.md Co-authored-by: Flowyi --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 1377304ced5a..a4b651aced06 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -112,8 +112,8 @@ TiDB 版本:5.4.0 - 字符串函数:`LPAD()`、`RPAD()`、`STRCMP()` - 日期时间函数:`ADDDATE()`、`DATE_ADD()`、`DATE_SUB()`、`SUBDATE()`、`QUARTER()` - 引入动态线程池,提升资源利用率(实验特性) - - 新增或修改一些 TiFlash 已有配置的默认值,提升 TiFlash 的性能和稳定性 - - 提升由行存到列存数据同步处理时对 raft log 的解码 (decoding) 效率,数据同步性能提升 50% + - 提升从 TiKV 同步数据时,由行存格式到列存格式的数据转换效率,整体的数据同步性能提升 50% + - 调整一些配置项的默认值,提升 TiFlash 的性能和稳定性。HTAP 混合负载下,单表简单查询的性能最高提升 20% 用户文档:[TiFlash 支持的计算下推](/tiflash/use-tiflash.md#tiflash-支持的计算下推),[TiFlash 配置文件](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml) From 9456efb0cbbed1c333ce74d661bc7644b0bfc463 Mon Sep 17 00:00:00 2001 From: Enwei Date: Wed, 19 Jan 2022 14:57:11 +0800 Subject: [PATCH 75/98] update the part of reading historical data via session variables --- releases/release-5.4.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index a4b651aced06..688de8247373 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -119,20 +119,20 @@ TiDB 版本:5.4.0 - **通过 session 变量实现有界限过期数据读取** - TiDB 是基于 Raft 协议的多副本分布式数据库。面对高并发,高吞吐业务场景,可以通过follower 节点实现读性能扩展,构建读写分离架构。 + TiDB 是基于 Raft 协议的多副本分布式数据库。面对高并发,高吞吐业务场景,可以通过 follower 节点实现读性能扩展,构建读写分离架构。 - 针对不同的业务场景,follower 提供强一致读和弱一致过期读两种读模式。强一致读满足数据实时性要求严格的业务场景,但是因为 leader 和 follower 的数据同步延迟、吞吐较低、延迟较高,特别是在跨机房架构下延迟问题被进一步放大。 + 针对不同的业务场景,follower 提供强一致读和弱一致过期读两种读模式。强一致读模式可以满足数据实时性要求严格的业务场景。然而,当采用该模式时,特别是在跨机房架构下,由于会出现 leader 和 follower 的数据同步延迟、吞吐量降低等情况,会出现延迟问题。 - 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过显示只读事务或 SQL 语句的方式实现过期读。两种方式均支持指定时间的精确过期读和指定时间边界的过期读两种模式,详细用法请参考[过期读文档](/read-historical-data.md)。 + 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过显示只读事务或 SQL 语句的方式实现过期读。通过这两种方式,你均可以从指定时间点或时间范围内读取对应的历史数据。具体用法,请参考[通过系统变量 `tidb_snapshot` 读取历史数据](/read-historical-data.md)。 - 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,具体设置示例如下: + 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,满足准实时场景下低延迟高吞吐数据访问的业务诉求。具体设置示例如下: ```sql set @@tidb_replica_read=leader_and_follower set @@tidb_read_staleness="-5" ``` - 通过该设置,TiDB 可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟内的最新过期数据,满足准实时场景下低延迟高吞吐数据访问的业务诉求,降低研发门槛,提升易用性。 + 通过该设置,TiDB 可以实现就近选取 leader 或 follower 节点,并读取 5 秒钟内的最新过期数据。 [用户文档](/tidb-read-staleness.md) From 4fd84121c36ab71a033912464f4939aab9085e01 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 19 Jan 2022 15:03:59 +0800 Subject: [PATCH 76/98] fix broken links --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 688de8247373..cc9336a95f8d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -196,7 +196,7 @@ TiDB 版本:5.4.0 Backup & Restore (BR) 增加了备份线程自动调节功能(默认开启)。该功能通过监控集群资源的使用率自动调节备份的线程数的方式,降低备份过程对集群的影响。在某些 Case 验证中,通过增加集群用于备份的资源和开启备份线程自动调节功能,备份的影响可以降低到 10% 以下。 - [用户文档](/br/br-features.md#自动调节-从-v54-版本开始引入) + [用户文档](/br/br-auto-tune.md) - **支持 Azure Blob Storage 作为备份目标存储** @@ -222,7 +222,7 @@ TiDB 版本:5.4.0 在 `backend=local` 模式下,数据导入完成之前 TiDB Lightning 会输出冲突数据,然后从数据库中删除这些冲突数据。用户可以在导入完成后解析冲突数据,并根据业务规则选择适合的数据进行插入。建议根据冲突数据清洗上游数据源,避免在后续增量数据迁移阶段遇到冲突数据而造成数据不一致。 - [用户文档](tidb-lightning/tidb-lightning-error-resolution.md) + [用户文档](/tidb-lightning/tidb-lightning-error-resolution.md) - **在 TiDB Data Migration (DM) 中 优化 relay log 的使用方式** From 8829340b9c97e60564b0d238ebff041099b03e7b Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 19 Jan 2022 15:14:53 +0800 Subject: [PATCH 77/98] fix typos --- releases/release-5.4.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index cc9336a95f8d..ee067c6b4b45 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -39,7 +39,7 @@ TiDB 版本:5.4.0 | [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | -| [`tidb_regard_null_as_point `](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以把 null 值当做点值并作为前缀条件来访问索引 | +| [`tidb_regard_null_as_point`](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以把 null 值当做点值并作为前缀条件来访问索引 | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | @@ -304,7 +304,7 @@ TiDB 版本:5.4.0 + PD - 默认开启历史热点记录功能 [#25281](https://github.com/pingcap/tidb/issues/25281) - - 新增 HTTP Component 的签名,用于标识请求来源 [#4490 ](https://github.com/tikv/pd/issues/4490) + - 新增 HTTP Component 的签名,用于标识请求来源 [#4490](https://github.com/tikv/pd/issues/4490) - TiDB Dashboard 更新至 v2021.12.31 [#4257](https://github.com/tikv/pd/issues/4257) + TiFlash @@ -387,7 +387,7 @@ TiDB 版本:5.4.0 - 修复 TiFlash 重启时偶发的 `EstablishMPPConnection` 错误 - 修复在 TiFlash 与 TiDB/TiKV 之间 `CastStringAsDecimal` 行为不一致的问题 - 修复查询报错 `DB::Exception: Encode type of coprocessor response is not CHBlock` - - 修复在 TiFlash 与 TiDB/TiKV 之间 `castStringAsReal ` 行为不一致的问题。 + - 修复在 TiFlash 与 TiDB/TiKV 之间 `castStringAsReal` 行为不一致的问题。 - 修复 TiFlash 的 `date_add_string_xxx` 函数返回值与 MySQL 不一致的问题 + Tools From aec52e12fc8c0f06575153b139b8bdd3ebf2fde9 Mon Sep 17 00:00:00 2001 From: Enwei Date: Wed, 19 Jan 2022 16:29:22 +0800 Subject: [PATCH 78/98] reorder system variables --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index ee067c6b4b45..cf00929a0334 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -32,9 +32,7 @@ TiDB 版本:5.4.0 | 变量名 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | -| [`tidb_backoff_lock_fast`](/system-variables.md#tidb_backoff_lock_fast) | 修改 | 默认值由 `100` 修改为 `10` | | [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | -| [`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-从-v40-版本开始引入) | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | | [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | @@ -42,6 +40,8 @@ TiDB 版本:5.4.0 | [`tidb_regard_null_as_point`](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以把 null 值当做点值并作为前缀条件来访问索引 | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | +| [`tidb_backoff_lock_fast`](/system-variables.md#tidb_backoff_lock_fast) | 修改 | 默认值由 `100` 修改为 `10` | +| [`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-从-v40-版本开始引入) | 修改 | 默认值由 `OFF` 改为 `ON`。如果从低于 v4.0.0 版本升级到 v5.4.0 及以上版本的集群,该变量值默认保持 `OFF`。如果从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本的集群,该变量开关保持升级前的状态。对于 v5.4.0 及以上版本的新建集群,该变量开关默认保持 `ON`。 | | [`tidb_store_limit`](/system-variables.md#tidb_store_limit-从-v304-和-v40-版本开始引入) | 修改 | v5.4.0 前支持实例级别及集群级别的设置,现在只支持集群级别的设置 | ### 配置文件参数 From f53521ae19b0f7acacc45cd6f66cdd35ff672045 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 19 Jan 2022 16:35:42 +0800 Subject: [PATCH 79/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index cf00929a0334..bf9f79880684 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -337,7 +337,6 @@ TiDB 版本:5.4.0 - 提升 Dumpling 检查数据库版本时的兼容性 [#29500](https://github.com/pingcap/tidb/pull/29500) - 在导出 `CREATE DATABASE` 和 `CREATE TABLE` 时添加默认的 collation [#3420](https://github.com/pingcap/tiflow/issues/3420) - + TiDB Binlog ## Bug 修复 From fe2ee0e8ea595d0070c50cb8e505437e4ea68a2b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 19 Jan 2022 16:42:16 +0800 Subject: [PATCH 80/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index bf9f79880684..1137fea0ab0c 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -322,7 +322,7 @@ TiDB 版本:5.4.0 - 减少 "EventFeed retry rate limited" 日志的数量 [#4006](https://github.com/pingcap/tiflow/issues/4006) - 降低在同步大量表时的同步延时 [#3900](https://github.com/pingcap/tiflow/issues/3900) - - 减少 TiKV 节点宕机后 kv client 恢复的时间 [#3191](https://github.com/pingcap/tiflow/issues/3191) + - 减少 TiKV 节点宕机后 KV client 恢复的时间 [#3191](https://github.com/pingcap/tiflow/issues/3191) + TiDB Data Migration (DM) From 12987b6bed1dfdf32bd61662a35016cd7f9b5bd7 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 20 Jan 2022 11:22:10 +0800 Subject: [PATCH 81/98] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-5.4.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 1137fea0ab0c..5357115618da 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -376,7 +376,6 @@ TiDB 版本:5.4.0 - 修复查询报错 `Tree struct based executor must have executor id` - 修复查询报错 `Illegal column type UInt32 for the second argument of function tidbRoundWithFrac` - 修复查询报错 `Unexpected type of column: Nullable(Nothing)` - - 修复查询报错 `source region at right may be considered at left when merging` - 修复 `collation` 对 `nullable` 类型失效的问题 - 修复 `coalesce` 错误地从结果列中删除 `nullable` 标志的问题 - 修复当 MPP 查询被终止时,TiFlash 偶发的崩溃问题 @@ -386,7 +385,7 @@ TiDB 版本:5.4.0 - 修复 TiFlash 重启时偶发的 `EstablishMPPConnection` 错误 - 修复在 TiFlash 与 TiDB/TiKV 之间 `CastStringAsDecimal` 行为不一致的问题 - 修复查询报错 `DB::Exception: Encode type of coprocessor response is not CHBlock` - - 修复在 TiFlash 与 TiDB/TiKV 之间 `castStringAsReal` 行为不一致的问题。 + - 修复在 TiFlash 与 TiDB/TiKV 之间 `castStringAsReal` 行为不一致的问题 - 修复 TiFlash 的 `date_add_string_xxx` 函数返回值与 MySQL 不一致的问题 + Tools From 800d21878a7069b69e3928a033872e91eed156c4 Mon Sep 17 00:00:00 2001 From: Enwei Date: Thu, 20 Jan 2022 11:43:31 +0800 Subject: [PATCH 82/98] Update stale read part --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 5357115618da..36ec719a0489 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -123,7 +123,7 @@ TiDB 版本:5.4.0 针对不同的业务场景,follower 提供强一致读和弱一致过期读两种读模式。强一致读模式可以满足数据实时性要求严格的业务场景。然而,当采用该模式时,特别是在跨机房架构下,由于会出现 leader 和 follower 的数据同步延迟、吞吐量降低等情况,会出现延迟问题。 - 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过显示只读事务或 SQL 语句的方式实现过期读。通过这两种方式,你均可以从指定时间点或时间范围内读取对应的历史数据。具体用法,请参考[通过系统变量 `tidb_snapshot` 读取历史数据](/read-historical-data.md)。 + 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过以下方式实现过期读:使用 SQL 语句读取一个基于历史时间的数据和开启基于历史时间的只读事务。通过这两种方式,你均可以从指定时间点或时间范围内读取对应的历史数据。具体用法,请参考[使用 `AS OF TIMESTAMP` 语法读取历史数据](/as-of-timestamp.md)。。 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,满足准实时场景下低延迟高吞吐数据访问的业务诉求。具体设置示例如下: From a3848a2e60bcb126ae3e49312cc18c9d6309124d Mon Sep 17 00:00:00 2001 From: Enwei Date: Thu, 20 Jan 2022 11:48:27 +0800 Subject: [PATCH 83/98] Apply suggestions from code review --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 36ec719a0489..a56b96356215 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -123,7 +123,7 @@ TiDB 版本:5.4.0 针对不同的业务场景,follower 提供强一致读和弱一致过期读两种读模式。强一致读模式可以满足数据实时性要求严格的业务场景。然而,当采用该模式时,特别是在跨机房架构下,由于会出现 leader 和 follower 的数据同步延迟、吞吐量降低等情况,会出现延迟问题。 - 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过以下方式实现过期读:使用 SQL 语句读取一个基于历史时间的数据和开启基于历史时间的只读事务。通过这两种方式,你均可以从指定时间点或时间范围内读取对应的历史数据。具体用法,请参考[使用 `AS OF TIMESTAMP` 语法读取历史数据](/as-of-timestamp.md)。。 + 在对数据实时性要求不高的业务场景下,可以选择过期读模式。使用该模式可以降低延迟和提升吞吐。TiDB 目前支持通过以下方式实现过期读:使用 SQL 语句读取一个基于历史时间的数据和开启基于历史时间的只读事务。通过这两种方式,你均可以从指定时间点或时间范围内读取对应的历史数据。具体用法,请参考[使用 `AS OF TIMESTAMP` 语法读取历史数据](/as-of-timestamp.md)。 从 v5.4.0 版本开始 TiDB 支持通过 session 变量设置有界限过期读,进一步提升易用性,满足准实时场景下低延迟高吞吐数据访问的业务诉求。具体设置示例如下: From b9d2f01829137fdf3c0b6a15e4aea072997f5e9f Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 20 Jan 2022 11:51:22 +0800 Subject: [PATCH 84/98] deletes a few tiflash bug fix notes --- releases/release-5.4.0.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index a56b96356215..71e473dd9ff1 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -373,11 +373,6 @@ TiDB 版本:5.4.0 + TiFlash - - 修复查询报错 `Tree struct based executor must have executor id` - - 修复查询报错 `Illegal column type UInt32 for the second argument of function tidbRoundWithFrac` - - 修复查询报错 `Unexpected type of column: Nullable(Nothing)` - - 修复 `collation` 对 `nullable` 类型失效的问题 - - 修复 `coalesce` 错误地从结果列中删除 `nullable` 标志的问题 - 修复当 MPP 查询被终止时,TiFlash 偶发的崩溃问题 - 修复 `where ` 查询结果出错的问题 - 修复整数类型主键的列类型设置为较大范围后数据可能不一致的问题 From 2546a5750ffe840cbb38d4c6cf4c10031ca84b58 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 21 Jan 2022 13:53:41 +0800 Subject: [PATCH 85/98] add dm documentation statement --- releases/release-5.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 71e473dd9ff1..2a7f42ba817b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -81,6 +81,7 @@ TiDB 版本:5.4.0 - 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 - 对 log 相关参数,TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 - 自 v5.4.0 起,对于通过 Plan Cache 已经缓存的执行计划,如果为其创建绑定 (Binding),会使得对应查询已经缓存的计划失效。v5.4.0 前已经缓存的计划不受新 Binding 的影响。 +- 在 v5.3 及更早版本中,[TiDB Data Migration (DM)](https://docs.pingcap.com/zh/tidb-data-migration/v5.3/) 文档独立于 TiDB 文档。自 v5.4 起,TiDB Data Migration 的文档已合并入相同版本的 TiDB 文档,无需跳转到 DM 文档站,你可以直接在 TiDB 文档站阅读 [DM 文档](/dm/dm-overview.md)。 ## 新功能 From 179875d149c28b8e122c6dbd903695c331e19b3e Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 21 Jan 2022 13:55:10 +0800 Subject: [PATCH 86/98] delete raft engine --- releases/release-5.4.0.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 2a7f42ba817b..bea64391e9ad 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -14,7 +14,6 @@ TiDB 版本:5.4.0 + 支持索引合并 (Index Merge) 数据访问方法,能够合并多个列上索引的条件过滤结果 + 支持通过 session 变量实现有界限过期数据读取 + 支持统计信息采集配置持久化 -+ 支持使用 Raft Engine 作为 TiKV 的日志存储引擎 + 优化备份对集群的影响 + 支持 Azure Blob Storage 作为备份目标存储 + 持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能 @@ -52,7 +51,6 @@ TiDB 版本:5.4.0 | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | | TiKV | [`snap-generator-pool-size`](/tidb-configuration-file.md#snap-generator-pool-size) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | -| TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | @@ -155,14 +153,6 @@ TiDB 版本:5.4.0 [用户文档](/explain-index-merge.md) -- **新增 Raft Engine(实验特性)** - - 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 - - Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 - - [用户文档](/tikv-configuration-file.md#raft-engine) - - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 From e13855ac4a8fc9e72aa6cd67cfd44e1825e36aeb Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 21 Jan 2022 14:47:55 +0800 Subject: [PATCH 87/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index bea64391e9ad..697f3d872cb8 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -328,7 +328,6 @@ TiDB 版本:5.4.0 - 提升 Dumpling 检查数据库版本时的兼容性 [#29500](https://github.com/pingcap/tidb/pull/29500) - 在导出 `CREATE DATABASE` 和 `CREATE TABLE` 时添加默认的 collation [#3420](https://github.com/pingcap/tiflow/issues/3420) - ## Bug 修复 + TiDB From 25128e5954320357dd5883d74c0359130e2527af Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 24 Jan 2022 09:55:02 +0800 Subject: [PATCH 88/98] Update releases/release-5.4.0.md Co-authored-by: sunzy --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 697f3d872cb8..a3e72add2e68 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -218,7 +218,7 @@ TiDB 版本:5.4.0 - **在 TiDB Data Migration (DM) 中 优化 relay log 的使用方式** - 恢复 `source` 配置中 `enable-relay` 开关。 - - 增加 `start-relay` 或 `stop-relay` 命令中动态开启或关闭 relay log 的功能。 + - 增加通过 `start-relay` 和 `stop-relay` 命令动态开启和关闭 relay log 的功能。 - relay log 的开启状态与 `source` 绑定,source 迁移到任意 DM-worker 均保持原有开启或关闭状态。 - relay log 的存放路径移至 DM-worker 配置文件。 From d664dc8bbe93bf4b39f1ad30e08132c65501a980 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 24 Jan 2022 15:14:51 +0800 Subject: [PATCH 89/98] add back raft engine --- releases/release-5.4.0.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index a3e72add2e68..556db84ec64d 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -14,11 +14,12 @@ TiDB 版本:5.4.0 + 支持索引合并 (Index Merge) 数据访问方法,能够合并多个列上索引的条件过滤结果 + 支持通过 session 变量实现有界限过期数据读取 + 支持统计信息采集配置持久化 ++ 支持使用 Raft Engine 作为 TiKV 的日志存储引擎(实验特性) + 优化备份对集群的影响 + 支持 Azure Blob Storage 作为备份目标存储 + 持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能 + 为 TiDB Lightning 增加已存在数据表是否允许导入的开关 -+ 优化持续性能分析实验特性 ++ 优化持续性能分析(实验特性) + TiSpark 支持用户认证与鉴权 ## 兼容性变化 @@ -51,6 +52,7 @@ TiDB 版本:5.4.0 | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | | TiKV | [`snap-generator-pool-size`](/tidb-configuration-file.md#snap-generator-pool-size) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | +| TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | | TiKV | `log-level`、`log-format`、`log-file`、`log-rotation-size` | 修改 | 将 TiKV log 参数名替换为与 TiDB log 参数一致的参数名,即 `log.level`、`log.format`、`log.file.filename`、`log.enable-timestamp`。如果只设置了原参数、且把其值设为非默认值,原参数与新参数会保持兼容;如果同时设置了原参数和新参数,则会使用新参数。详情参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 | | TiKV | `log-rotation-timespan` | 删除 | 轮换日志的时间跨度。当超过该时间跨度,日志文件会被轮换,即在当前日志文件的文件名后附加一个时间戳,并创建一个新文件。 | @@ -153,6 +155,14 @@ TiDB 版本:5.4.0 [用户文档](/explain-index-merge.md) +- **新增 Raft Engine(实验特性)** + + 支持使用 [Raft Engine](https://github.com/tikv/raft-engine) 作为 TiKV 的日志存储引擎。与使用 RocksDB 相比,Raft Engine 可以减少至多 40% 的 TiKV I/O 写流量和 10% 的 CPU 使用,同时在特定负载下提升 5% 左右前台吞吐,减少 20% 尾延迟。此外,Raft Engine 提升了日志回收效率,修复了极端条件下日志堆积的问题。 + + Raft Engine 目前仍属于实验特性,并默认关闭。另外请注意 v5.4.0 版本的 Raft Engine 数据格式与之前版本不兼容,对集群做升级或者降级操作之前,需要确保所有 TiKV 节点上的 Raft Engine 已被关闭。只建议在 v5.4.0 及以后的版本使用 Raft Engine。 + + [用户文档](/tikv-configuration-file.md#raft-engine) + - **支持收集 `PREDICATE COLUMNS` 的统计信息(实验特性)** 执行 SQL 语句时,优化器在大多数情况下只会用到部分列(例如, `WHERE`、`JOIN`、`ORDER BY`、`GROUP BY` 子句中出现的列)的统计信息,这些用到的列称为 `PREDICATE COLUMNS`。 From d3f69d0fc1e50f433b4d430ff381c210e1c2af0f Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 26 Jan 2022 10:42:40 +0800 Subject: [PATCH 90/98] Update releases/release-5.4.0.md Co-authored-by: Grace Cai --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 556db84ec64d..36834059aab7 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -37,7 +37,7 @@ TiDB 版本:5.4.0 | [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | -| [`tidb_regard_null_as_point`](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以把 null 值当做点值并作为前缀条件来访问索引 | +| [`tidb_regard_null_as_point`](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以将包含 null 的等值条件作为前缀条件来访问索引 | | [`tidb_stats_load_sync_wait`](/system-variables.md#tidb_stats_load_sync_wait-从-v540-版本开始引入) | 新增 | 这个变量用于控制是否开启统计信息的同步加载模式(默认为 `0` 代表不开启,即为异步加载模式),以及开启的情况下,SQL 执行同步加载完整统计信息等待多久后会超时 | | [`tidb_stats_load_pseudo_timeout`](/system-variables.md#tidb_stats_load_pseudo_timeout-从-v540-版本开始引入) | 新增 | 用于控制统计信息同步加载超时后,SQL 是执行失败 (`OFF`) 还是退回使用 pseudo 的统计信息 (`ON`),默认值为 `ON` | | [`tidb_backoff_lock_fast`](/system-variables.md#tidb_backoff_lock_fast) | 修改 | 默认值由 `100` 修改为 `10` | From ee0d1ddd108e3c6375e61a85c6f2fecc9a618676 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 26 Jan 2022 11:07:28 +0800 Subject: [PATCH 91/98] fix --- releases/release-5.4.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 36834059aab7..d6e55fdf2b51 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -34,7 +34,7 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | | [`tidb_enable_column_tracking`](/system-variables.md#tidb_enable_column_tracking-从-v540-版本开始引入) | 新增 | 用于控制是否开启 TiDB 对 `PREDICATE COLUMNS` 的收集,默认值为 `OFF` | | [`tidb_enable_paging`](/system-variables.md#tidb_enable_paging-从-v540-版本开始引入) | 新增 | 此变量用于控制 `IndexLookUp` 算子是否使用分页 (paging) 方式发送 Coprocessor 请求,默认值为 `OFF`。对于使用 `IndexLookUp` 和 `Limit` 并且 `Limit` 无法下推到 `IndexScan` 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 `Limit` 算子只需要少部分数据,开启 `tidb_enable_paging`,能够减少处理数据的数量,从而降低延迟、减少资源消耗。 | -| [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | +| [`tidb_enable_top_sql`](/system-variables.md#tidb_enable_top_sql-从-v540-版本开始引入) | 新增 | 用于控制是否开启 Top SQL 特性,默认值为 OFF | | [`tidb_persist_analyze_options`](/system-variables.md#tidb_persist_analyze_options-从-v540-版本开始引入) | 新增 | 用于控制是否开启 [ANALYZE 配置持久化](/statistics.md#analyze-配置持久化)特性,默认值为 `OFF` | | [`tidb_read_staleness`](/system-variables.md#tidb_read_staleness-从-v540-版本开始引入) | 新增 | 用于设置当前会话允许读取的历史数据范围,默认值为 `0` | | [`tidb_regard_null_as_point`](/system-variables.md#tidb_regard_null_as_point-从-v540-版本开始引入) | 新增 | 用于控制优化器是否可以将包含 null 的等值条件作为前缀条件来访问索引 | @@ -50,7 +50,7 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | -| TiKV | [`snap-generator-pool-size`](/tidb-configuration-file.md#snap-generator-pool-size) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | +| TiKV | [`snap-generator-pool-size`](/tikv-configuration-file.md#snap-generator-pool-size-从-v540-版本开始引入) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | From ee6dac74d57a4c7d74131e1537c46fbf7ceaa442 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 26 Jan 2022 12:34:36 +0800 Subject: [PATCH 92/98] add snapshot generator pool size and bump version for pd --- pd-control.md | 2 +- pd-recover.md | 2 +- releases/release-5.4.0.md | 2 +- tikv-configuration-file.md | 7 +++++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pd-control.md b/pd-control.md index d19fb30fab18..6bbc7e25a2f7 100644 --- a/pd-control.md +++ b/pd-control.md @@ -27,7 +27,7 @@ PD Control 是 PD 的命令行工具,用于获取集群状态信息和调整 > **注意:** > -> 下载链接中的 `{version}` 为 TiDB 的版本号。例如 `v5.3.0` 版本的下载链接为 `https://download.pingcap.org/tidb-v5.3.0-linux-amd64.tar.gz`。 +> 下载链接中的 `{version}` 为 TiDB 的版本号。例如 `v5.4.0` 版本的下载链接为 `https://download.pingcap.org/tidb-v5.4.0-linux-amd64.tar.gz`。 ### 源码编译 diff --git a/pd-recover.md b/pd-recover.md index e983a7737654..ba0d7c13569f 100644 --- a/pd-recover.md +++ b/pd-recover.md @@ -30,7 +30,7 @@ PD Recover 包含在 TiDB 安装包中。直接下载 TiDB 安装包即可获取 > **注意:** > -> `{version}` 是 TiDB 的版本号。例如,`v5.3.0` 的安装包下载链接为 `https://download.pingcap.org/tidb-v5.3.0-linux-amd64.tar.gz`。 +> `{version}` 是 TiDB 的版本号。例如,`v5.4.0` 的安装包下载链接为 `https://download.pingcap.org/tidb-v5.4.0-linux-amd64.tar.gz`。 ## 快速开始 diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index d6e55fdf2b51..27d80d58b91e 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -50,7 +50,7 @@ TiDB 版本:5.4.0 | :---------- | :----------- | :----------- | :----------- | | TiDB | [`stats-load-concurrency`](/tidb-configuration-file.md#stats-load-concurrency-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能可以并发处理的最大列数,默认值为 `5` | | TiDB | [`stats-load-queue-size`](/tidb-configuration-file.md#stats-load-queue-size-从-v540-版本开始引入) | 新增 | 用于设置 TiDB 统计信息同步加载功能最多可以缓存多少列的请求,默认值为 `1000` | -| TiKV | [`snap-generator-pool-size`](/tikv-configuration-file.md#snap-generator-pool-size-从-v540-版本开始引入) | 新增 | `snap-generator` 线程池大小,默认值为 `2` | +| TiKV | [`snap-generator-pool-size`](/tikv-configuration-file.md#snap-generator-pool-size-从-v540-版本开始引入) | 新增 | 配置 `snap-generator` 线程池大小,默认值为 `2` | | TiKV | `log.file.max-size`、`log.file.max-days`、`log.file.max-backups` | 新增 | 参数说明见 [TiKV 配置文件 - log.file](/tikv-configuration-file.md#logfile-从-v540-版本开始引入)。 | | TiKV | `raft-engine` | 新增 | 包含 `enable`、`dir`、`batch-compression-threshold`、`bytes-per-sync`、`target-file-size`、`purge-threshold`、`recovery-mode`、`recovery-read-block-size`、`recovery-read-block-size`、`recovery-threads`,详情参见 [TiKV 配置文件:raft-engine](/tikv-configuration-file.md#raft-engine)。| | TiKV | [`backup.enable-auto-tune`](/tikv-configuration-file.md#enable-auto-tune-从-v54-版本开始引入) | 修改 | 在 v5.3.0 中默认值为 `false`,自 v5.4.0 起默认值改为 `true`。表示在集群资源占用率较高的情况下,是否允许 BR 自动限制备份使用的资源,减少对集群的影响。在默认配置下,备份速度可能下降。 | diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 05c1b00eeeb1..ad3fe5e54d38 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -594,6 +594,13 @@ raftstore 相关的配置项。 + 默认值:4h + 最小值:0 +### `snap-generator-pool-size` 从 v5.4.0 版本开始引入 + ++ 用于配置 `snap-generator` 线程池的大小。 ++ 为了让 TiKV 在恢复场景下加快 Region 生成 Snapshot 的速度,需要调大对应 Worker 的 `snap-generator` 线程数量。可通过本配置项调大对应线程的数量。 ++ 默认值:2 ++ 最小值:0 + ### `lock-cf-compact-interval` + 触发对 lock CF compact 检查的时间间隔。 From 3a42cd397abbb7e677aded71686b76f26ce10fe5 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Wed, 26 Jan 2022 13:11:44 +0800 Subject: [PATCH 93/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 27d80d58b91e..1c5577f5c8d8 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -105,6 +105,12 @@ TiDB 版本:5.4.0 [用户文档](/tispark-overview.md#安全) +- **TiUP 部署方式支持为 root 用户生成初始密码** + + 集群启动命令增加了 `--init` 参数,有了该参数,在 TiUP 部署场景,TiUP 会为数据库 root 用户生成一个初始的强密码,避免 root 用户使用空密码所带来的安全风险,增强数据库的安全性。 + + [User document](/production-deployment-using-tiup.md##第-7-步启动集群) + ### 性能 - **持续提升 TiFlash 列式存储引擎和 MPP 计算引擎的稳定性和性能** From 8de148d5b4b110722220d455a0b148ff8ddbaed8 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Wed, 26 Jan 2022 13:48:43 +0800 Subject: [PATCH 94/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 1c5577f5c8d8..41bfdf34d18c 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -109,7 +109,7 @@ TiDB 版本:5.4.0 集群启动命令增加了 `--init` 参数,有了该参数,在 TiUP 部署场景,TiUP 会为数据库 root 用户生成一个初始的强密码,避免 root 用户使用空密码所带来的安全风险,增强数据库的安全性。 - [User document](/production-deployment-using-tiup.md##第-7-步启动集群) + [User document](/production-deployment-using-tiup.md#第-7-步启动集群) ### 性能 From 2f3b92b0830ccef64a5d7e87af12367b6b573c66 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:48:01 +0800 Subject: [PATCH 95/98] remove TiDB Dashboard root --- releases/release-5.4.0.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 41bfdf34d18c..a12604780efb 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -74,10 +74,6 @@ TiDB 版本:5.4.0 ### 其他 -- TiDB Dashboard 默认不再使用 `root` + 空密码登录。 - - 从 v5.4.0开始,使用 TiUP 启动集群时推荐使用 `start --initial`。执行该操作启动集群后,会为 `root` 账号自动生成一个随机密码,`root` 账号登录 Dashboard 需要使用这个密码。 - - 为 TiDB 和 PD 之间新增接口。使用 `information_schema.TIDB_HOT_REGIONS_HISTORY` 系统表时,TiDB 需要使用匹配的 PD 版本。 - 对 log 相关参数,TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 - 自 v5.4.0 起,对于通过 Plan Cache 已经缓存的执行计划,如果为其创建绑定 (Binding),会使得对应查询已经缓存的计划失效。v5.4.0 前已经缓存的计划不受新 Binding 的影响。 From 2c4e3a41bfad1faed9ae928197f6b2bd93e68aab Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 7 Feb 2022 15:37:08 +0800 Subject: [PATCH 96/98] remove cdclog --- releases/release-5.4.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index a12604780efb..0f71eba805c5 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -78,6 +78,7 @@ TiDB 版本:5.4.0 - 对 log 相关参数,TiDB Server、PD Server 和 TiKV Server 将采用统一的参数命名方式来管理日志命名、输出格式、轮转和过期的规则。参见 [TiKV 配置文件 - log](/tikv-configuration-file.md#log-从-v540-版本开始引入)。 - 自 v5.4.0 起,对于通过 Plan Cache 已经缓存的执行计划,如果为其创建绑定 (Binding),会使得对应查询已经缓存的计划失效。v5.4.0 前已经缓存的计划不受新 Binding 的影响。 - 在 v5.3 及更早版本中,[TiDB Data Migration (DM)](https://docs.pingcap.com/zh/tidb-data-migration/v5.3/) 文档独立于 TiDB 文档。自 v5.4 起,TiDB Data Migration 的文档已合并入相同版本的 TiDB 文档,无需跳转到 DM 文档站,你可以直接在 TiDB 文档站阅读 [DM 文档](/dm/dm-overview.md)。 +- 移除 cdclog。自 v5.4 起,不再支持 cdclog。 ## 新功能 From 19d7cff75368a46200f1aa6d6eacc3c152005287 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 15 Feb 2022 09:54:06 +0800 Subject: [PATCH 97/98] change date --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index 0f71eba805c5..eeeabe0da64f 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -4,7 +4,7 @@ title: TiDB 5.4 Release Notes # TiDB 5.4 Release Notes -发版日期:2022 年 x 月 x 日 +发版日期:2022 年 2 月 15 日 TiDB 版本:5.4.0 From 3ac2ed30d5a812cab0eac6031689927267c4904e Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Tue, 15 Feb 2022 09:55:02 +0800 Subject: [PATCH 98/98] Update releases/release-5.4.0.md --- releases/release-5.4.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.4.0.md b/releases/release-5.4.0.md index eeeabe0da64f..7f9e4b76ba9b 100644 --- a/releases/release-5.4.0.md +++ b/releases/release-5.4.0.md @@ -69,7 +69,7 @@ TiDB 版本:5.4.0 | TiCDC | `max-message-bytes` | 修改 | 将 Kafka sink 模块的 `max-message-bytes` 默认值设置为 `104857601`(10MB) | | TiCDC | `partition-num` | 修改 | 将 Kafka Sink `partition-num` 的默认值改由 `4` 为 `3`,使 TiCDC 更加平均地分发消息到各个 Kafka partition | | TiDB Lightning | `meta-schema-name` | 修改 | 此配置项控制 TiDB Lightning 在目标 TiDB 中保存 metadata 对应的 schema name。从 v5.4.0 开始,只在开启了并行导入功能时(对应配置为 `tikv-importer.incremental-import = true` ),才会在目标 TiDB 中创建此库。 | -| TiDB Lightning | `task-info-schema-name` | 新增 | 用于配置当 Lightning 检测到冲突数据时,对应冲突数据存储的库名,默认值为 "lightning_task_info"。如果没有开启冲突检测功能,则无需配置此参数。 | +| TiDB Lightning | `task-info-schema-name` | 新增 | 用于配置当 TiDB Lightning 检测到冲突数据时,对应冲突数据存储的库名,默认值为 "lightning_task_info"。如果没有开启冲突检测功能,则无需配置此参数。 | | TiDB Lightning | `incremental-import` | 新增 | 是否允许向已存在数据的表导入数据。默认值为 false | ### 其他