From 05357f5a11cff994a7ad130d6006fb834a8c4e02 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:51:30 +0800 Subject: [PATCH 001/156] Create release-8.0.0.md --- releases/release-8.0.0.md | 234 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 releases/release-8.0.0.md diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md new file mode 100644 index 000000000000..e641f47a7c19 --- /dev/null +++ b/releases/release-8.0.0.md @@ -0,0 +1,234 @@ +--- +title: TiDB 8.0.0 Release Notes +summary: 了解 TiDB 8.0.0 版本的新功能、兼容性变更、改进提升,以及错误修复。 +--- + +# TiDB 8.0.0 Release Notes + +发版日期:2024 年 x 月 x 日 + +TiDB 版本:8.0.0 + +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v8.0/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/?version=v8.0.0-DMR#version-list) + +在 8.0.0 版本中,你可以获得以下关键特性: + +## 功能详情 + +### 可扩展性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 性能 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 稳定性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 高可用 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### SQL 功能 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 数据库管理 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 可观测性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 安全 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 数据迁移 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +## 兼容性变更 + +> **注意:** +> +> 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 + +### 行为变更 + +* 行为变更 1 + +* 行为变更 2 + +### MySQL 兼容性 + +* 兼容性 1 + +* 兼容性 2 + +### 系统变量 + +| 变量名 | 修改类型(包括新增/修改/删除) | 描述 | +|--------|------------------------------|------| +| | | | +| | | | +| | | | + +### 配置文件参数 + +| 配置文件 | 配置项 | 修改类型 | 描述 | +| -------- | -------- | -------- | -------- | +| | | | | + +### 其他 + +## 离线包变更 + +## 废弃功能 + +* 废弃功能 1 + +* 废弃功能 2 + +## 改进提升 + ++ TiDB + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiKV + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ PD + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiFlash + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ Tools + + + Backup & Restore (BR) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiCDC + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Data Migration (DM) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Lightning + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiUP + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## 错误修复 + ++ TiDB + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiKV + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ PD + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiFlash + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ Tools + + + Backup & Restore (BR) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiCDC + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Data Migration (DM) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Lightning + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiUP + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## 贡献者 + +感谢来自 TiDB 社区的贡献者们: + +- [贡献者 GitHub ID]() \ No newline at end of file From a933fcbf037289d65642ac5f420a50edc6b0a62e Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:07:59 +0800 Subject: [PATCH 002/156] Update releases/release-8.0.0.md add desc of Acceleration of Cluster Snapshot Restore Speed ( GA ) --- releases/release-8.0.0.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e641f47a7c19..4bb5b8314321 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -30,7 +30,14 @@ TiDB 版本:8.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 - +* BR 快照恢复速度最高提升 10 倍 GA [#issue号](链接) @[3pointer](https://github.com/3pointer) + + TiDB v8.0.0 版本起,通过对 Region 打散算法进行性能优化和改进,在确保数据充分打散的前提下,快照恢复提速的改进功能正式 GA,并默认启用。这一改进不仅充分利用了每个 TiKV 节点资源并行恢复,还确保了每个 TiKV 节点的数据恢复速度达到机器资源容许的最大值。在实际案例中,单 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,并且能够在 1 小时内完成对 100 TB 数据的恢复。 + + 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,实现了横向和纵向扩展性。通过这一改进,我们成功缩短了数据库恢复时间,提高了数据库的可用性和可靠性,从而降低了因数据丢失或故障而导致的停机时间和业务损失。 + + 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 + ### 稳定性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From eee2fb4027c30875d206ac4de7330ea30dd28dae Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:09:53 +0800 Subject: [PATCH 003/156] Update releases/release-8.0.0.md add description for Enabling ObjectLock on AWS S3 Log Backup --- releases/release-8.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4bb5b8314321..8c842b2fb1de 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -70,6 +70,12 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 +* PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@xxx** + + Amazon S3 对象锁定功能支持通过客户定义的留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。BR 从 v6.3.0 版本开始为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 版本开始,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足监管方面的需求。 + + 更多信息,请参考[用户文档](链接)。 + ### 可观测性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From d410449e9b679a88c83f522ec4ca4a65da891907 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:58:03 +0800 Subject: [PATCH 004/156] Update releases/release-8.0.0.md add description of PITR Supports Backing Up Data Imported via Lightning Physical Mode --- releases/release-8.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8c842b2fb1de..f4df7679d146 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -76,6 +76,12 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 + * PITR 支持备份恢复 Lightning 物理模式导入的数据 (实验性功能) [#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@xxx** + + TiDB v8.0.0 版本之前,由于 Lightning 的物理导入模式会“重写历史”,导致 PITR 无法感知到被”重写的历史” ,因此无法对数据进行备份。用户需要在完成数据导入后执行一次全量备份。从 TiDB v8.0.0 版本起,PITR 通过对解析时间戳(ResolvedTs)和 `Ingest SST` 操作进行兼容性设计,使得通过 Lightning 的物理模式导入的数据可以被 PITR 正确的识别、备份和恢复。这项改进为客户提供了更加完善的数据保护和恢复方案。 + + 更多信息,请参考[用户文档](链接)。 + ### 可观测性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 7d7fdce564be146c9729e2d2e6d4acf3e893bd41 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:59:52 +0800 Subject: [PATCH 005/156] Apply suggestions from code review Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index f4df7679d146..17a293fbafc9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -30,7 +30,7 @@ TiDB 版本:8.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 -* BR 快照恢复速度最高提升 10 倍 GA [#issue号](链接) @[3pointer](https://github.com/3pointer) +* BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) TiDB v8.0.0 版本起,通过对 Region 打散算法进行性能优化和改进,在确保数据充分打散的前提下,快照恢复提速的改进功能正式 GA,并默认启用。这一改进不仅充分利用了每个 TiKV 节点资源并行恢复,还确保了每个 TiKV 节点的数据恢复速度达到机器资源容许的最大值。在实际案例中,单 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,并且能够在 1 小时内完成对 100 TB 数据的恢复。 From 0c9cad575d95c536d5f3475edeef2dde0566de4d Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 17:18:08 +0800 Subject: [PATCH 006/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 17a293fbafc9..c6ccb046102f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -32,7 +32,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 * BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) - TiDB v8.0.0 版本起,通过对 Region 打散算法进行性能优化和改进,在确保数据充分打散的前提下,快照恢复提速的改进功能正式 GA,并默认启用。这一改进不仅充分利用了每个 TiKV 节点资源并行恢复,还确保了每个 TiKV 节点的数据恢复速度达到机器资源容许的最大值。在实际案例中,单 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,并且能够在 1 小时内完成对 100 TB 数据的恢复。 + TiDB v8.0.0 版本起,快照恢复提速的改进正式 GA,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作的相互影响以及加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升 10 倍。这一改进充分利用了每个 TiKV 节点的资源并行恢复,使得每个 TiKV 节点的数据恢复能够充分利用硬件的磁盘和网络带宽。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,实现了横向和纵向扩展性。通过这一改进,我们成功缩短了数据库恢复时间,提高了数据库的可用性和可靠性,从而降低了因数据丢失或故障而导致的停机时间和业务损失。 From 9fcc205fe45463dac9ef6c763d4edd2300665b24 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 17:31:06 +0800 Subject: [PATCH 007/156] deprecate the tidb_disable_txn_auto_retry system variable --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c6ccb046102f..66722dfc8f77 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -143,7 +143,7 @@ TiDB 版本:8.0.0 ## 离线包变更 ## 废弃功能 - +* 从 TiDB v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。 * 废弃功能 1 * 废弃功能 2 From 4bd4d6a3c7e026165ba855dffbc748f16061e030 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 26 Feb 2024 18:34:50 +0800 Subject: [PATCH 008/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 66722dfc8f77..7977d9c84bef 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -23,6 +23,12 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 +* 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@xxx** + + TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 + + 更多信息,请参考[用户文档](/storage-engine/titan-overview.md)。 + ### 性能 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 7e090c6d2338ee3de1bf773a037073763a6a319a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 27 Feb 2024 10:08:01 +0800 Subject: [PATCH 009/156] Apply suggestions from code review --- releases/release-8.0.0.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7977d9c84bef..ceabc765a4c3 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -23,7 +23,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 -* 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@xxx** +* 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 @@ -36,7 +36,7 @@ TiDB 版本:8.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 -* BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) +* BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** TiDB v8.0.0 版本起,快照恢复提速的改进正式 GA,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作的相互影响以及加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升 10 倍。这一改进充分利用了每个 TiKV 节点的资源并行恢复,使得每个 TiKV 节点的数据恢复能够充分利用硬件的磁盘和网络带宽。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 @@ -76,13 +76,13 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 -* PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@xxx** +* PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** Amazon S3 对象锁定功能支持通过客户定义的留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。BR 从 v6.3.0 版本开始为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 版本开始,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足监管方面的需求。 更多信息,请参考[用户文档](链接)。 - * PITR 支持备份恢复 Lightning 物理模式导入的数据 (实验性功能) [#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@xxx** + * PITR 支持备份恢复 Lightning 物理模式导入的数据 (实验性功能) [#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** TiDB v8.0.0 版本之前,由于 Lightning 的物理导入模式会“重写历史”,导致 PITR 无法感知到被”重写的历史” ,因此无法对数据进行备份。用户需要在完成数据导入后执行一次全量备份。从 TiDB v8.0.0 版本起,PITR 通过对解析时间戳(ResolvedTs)和 `Ingest SST` 操作进行兼容性设计,使得通过 Lightning 的物理模式导入的数据可以被 PITR 正确的识别、备份和恢复。这项改进为客户提供了更加完善的数据保护和恢复方案。 @@ -149,7 +149,9 @@ TiDB 版本:8.0.0 ## 离线包变更 ## 废弃功能 -* 从 TiDB v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。 + +* 从 TiDB v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** + * 废弃功能 1 * 废弃功能 2 From 56696cbdca5e83e9f2e846f35370ff461a44a165 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 27 Feb 2024 15:03:24 +0800 Subject: [PATCH 010/156] Update release-8.0.0.md update notes for compute features. --- releases/release-8.0.0.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index ceabc765a4c3..b7d23066914e 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -44,6 +44,21 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 +* 新增支持下推以下 函数到 TiFlash [#48350](https://github.com/pingcap/tidb/issues/48350) [#xxx](https://github.com/pingcap/tidb/issues/xxx) @[xxx](https://github.com/xxx) **tw@qiancai** + + * `POWER()` + * `CAST(DECIMAL AS DOUBLE)` + + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + +* TiDB 的并发 HashAgg 算法支持数据落盘(实验特性)[#35637](https://github.com/pingcap/tidb/issues/35637) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** + + 在之前的 TiDB 版本中,HashAgg 算子的并发算法不支持数据落盘。当 SQL 语句的执行计划包含并发的 HashAgg 算子时,该 SQL 语句的所有数据都只能在内存中进行处理。这导致内存需要处理大量数据,当超过内存限制时,TiDB 只能选择非并发 HashAgg 算法,无法通过并发提升性能。 + + 在 v8.0.0 中,TiDB 的并发 HashAgg 算法支持数据落盘。在任意并发条件下,HashAgg 算子都可以根据内存使用情况自动触发数据落盘,从而兼顾性能和数据处理量。目前,该功能作为实验特性,引入变量 `tidb_enable_concurrent_hashagg_spill` 控制是否启用支持落盘的并发 HashAgg 算法。当该变量为 `ON` 时,代表启用。该变量将在功能正式发布时废弃。 + + 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入)。 + ### 稳定性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -60,6 +75,21 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 +* 支持代理组件 TiProxy [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) + + TiProxy 是 TiDB 的官方代理组件,位于客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持功能,让 TiDB 集群的负载更加均衡,并在维护操作期间不影响用户对数据库的连接访问。 + + 在 v7.6.0 版本中,TiProxy 以实验特性发布。在 v8.0.0 版本中,TiProxy 完善了签名证书自动生成、监控等功能,并正式发布。 + + TiProxy 主要应用于以下场景: + + * 在 TiDB 集群进行滚动重启、滚动升级、缩容等维护操作时,TiDB server 会发生变动,导致客户端与发生变化的 TiDB server 的连接中断。通过使用 TiProxy,可以在这些维护操作过程中平滑地将连接迁移至其他 TiDB server,从而让客户端不受影响。 + * 所有客户端对 TiDB server 的连接都无法动态迁移至其他 TiDB server。当多个 TiDB server 的负载不均衡时,可能出现整体集群资源充足,但某些 TiDB server 资源耗尽导致延迟大幅度增加的情况。为解决此问题,TiProxy 提供连接动态迁移功能,在客户端无感的前提下,将连接从一个 TiDB server 迁移至其他 TiDB server,从而实现 TiDB 集群的负载均衡。 + + TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 + + 更多信息,请参考[用户文档](/tiproxy/tiproxy-overview.md)。 + ### SQL 功能 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -162,6 +192,9 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 优化 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** + - 优化数据落盘功能的退出机制,提升数据落盘时取消查询的性能 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** + + TiKV From 9189cbc00ac17ee354bcc4e9d3cc272924918560 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 28 Feb 2024 17:03:15 +0800 Subject: [PATCH 011/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index b7d23066914e..787d4920877a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -98,6 +98,16 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 +* 新增支持处理大量数据的 DML 类型 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) **tw@qiancai** + + 在之前的 TiDB 版本中,所有的事务数据在提交之前,都保存在内存中。当处理大量数据时,事务所需的内存成为瓶颈,限制了 TiDB 可以处理的事务大小。TiDB 曾经发布了非事务 DML 功能,通过拆分 SQL 的方式尝试解决事务大小限制,但是功能存在较多限制,在实际使用时并不友好。 + + 在 v8.0.0 中,TiDB 新增支持处理大量数据的 DML 类型。这种 DML 类型在执行时,通过及时将数据写入 TiKV 的方式,避免将所有事务数据保存在内存中,从而实现对超过内存上限的大量数据的处理。该 DML 类型保证事务的完整性,并且使用和标准 DML 完全一致的语法。任何 TiDB 的合法 DML,都可以使用这种 DML 类型,以处理大数据量 DML 操作。 + + 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](/ new doc path),只支持在自动提交事务中使用,并且引入变量 `tidb_dml_type` 控制是否使用该 DML 类型。目前,该功能作为实验特性发布。 + + 更多信息,请参考[用户文档](/... tidb_dml_type 变量)。 + ### 数据库管理 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -200,6 +210,9 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 强化 TSO 校验检测,提升使用不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** + - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** + - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群读性能的影响 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** + PD From 862f41bb95fda8d2d2f0bc4c68252e9bd1c9a94b Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 28 Feb 2024 17:09:40 +0800 Subject: [PATCH 012/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 787d4920877a..7be5d361f88e 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -212,7 +212,7 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - 强化 TSO 校验检测,提升使用不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群读性能的影响 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** + - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** + PD From ba869e4d491c94477847c2ab87e1548c9b7d4b2e Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 28 Feb 2024 21:04:39 +0800 Subject: [PATCH 013/156] Control the visibility of invisible index at session level --- releases/release-8.0.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7be5d361f88e..022ba266b569 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -127,6 +127,14 @@ TiDB 版本:8.0.0 TiDB v8.0.0 版本之前,由于 Lightning 的物理导入模式会“重写历史”,导致 PITR 无法感知到被”重写的历史” ,因此无法对数据进行备份。用户需要在完成数据导入后执行一次全量备份。从 TiDB v8.0.0 版本起,PITR 通过对解析时间戳(ResolvedTs)和 `Ingest SST` 操作进行兼容性设计,使得通过 Lightning 的物理模式导入的数据可以被 PITR 正确的识别、备份和恢复。这项改进为客户提供了更加完善的数据保护和恢复方案。 更多信息,请参考[用户文档](链接)。 + +* "不可见索引 (invisible index)"能够在会话级设置可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@aolin** + + "[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)" 是不能够被优化器选择的索引。通常用在删除索引之前,如果不确定删除索引的操作是否会造成性能回退,可以暂时将该索引修改为不可见,万一需要恢复索引可立即修改回可见状态。 + + 在 v8.0.0 中,如果将新引入的会话级变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,那么在该会话中执行的查询可以选择到"不可见索引"。利用这个能力,在添加新索引时,如果不确定索引的作用,则可以先将索引创建为不可见索引,通过修改会话变量后,在这个会话中对相关的查询语句进行测试,而不影响其他会话的行为。这个扩展改进能够提升性能调优的安全性,增强生产数据库的稳定性。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 ### 可观测性 @@ -174,7 +182,7 @@ TiDB 版本:8.0.0 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| | | | +| [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| | | | | | | | | From 9e875361104c9859c400920bf7ee3216ec8d8cd8 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 11:54:48 +0800 Subject: [PATCH 014/156] Priority queue for auto-analyze --- releases/release-8.0.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 022ba266b569..569bf3635c25 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -59,6 +59,14 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入)。 +* 自动统计信息收集引入优先级队列 [#50132](https://github.com/pingcap/tidb/issues/50132) @[hi-rustin](https://github.com/hi-rustin) **tw@hfxsd** + + 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的 [自动统计信息收集](/statistics.md#自动更新) 来保持统计信息的更新。[自动统计信息收集](/statistics.md#自动更新) 轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在过去的版本中,收集顺序是随机设置的,这可能造成更有收集价值的对象需要长时间等待才被更新,引发潜在的数据库性能回退。 + + 从 v8.0.0 开始,自动统计信息收集会结合多种条件为对象动态设置优先级,确保更有收集价值的对象优先被处理,比如新创建的索引,发生分区变更的分区表等,健康度更低的对象也会倾向于排在队列前端。这个增强提升了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,提升数据库稳定性。 + + 更多信息,请参考[用户文档](/statistics.md#自动更新)。 + ### 稳定性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 737fe8d4f5bc3d7fe7f4178835aa29c4392f93ac Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 29 Feb 2024 14:31:00 +0800 Subject: [PATCH 015/156] Update format --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 569bf3635c25..f05259c47c75 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -206,7 +206,7 @@ TiDB 版本:8.0.0 ## 废弃功能 -* 从 TiDB v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** +* 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** * 废弃功能 1 From a6aef6717fa4e1561cd8655d1b2a33dda46b671e Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 14:49:17 +0800 Subject: [PATCH 016/156] enhancement on INL join. --- releases/release-8.0.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 569bf3635c25..e63a5d9ceeb9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -136,7 +136,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 -* "不可见索引 (invisible index)"能够在会话级设置可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@aolin** +* "不可见索引 (invisible index)"能够在会话级设置可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** "[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)" 是不能够被优化器选择的索引。通常用在删除索引之前,如果不确定删除索引的操作是否会造成性能回退,可以暂时将该索引修改为不可见,万一需要恢复索引可立即修改回可见状态。 @@ -220,6 +220,8 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - 优化 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** - 优化数据落盘功能的退出机制,提升数据落盘时取消查询的性能 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** + - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** + - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** + TiKV From bac5837fb98257f783ad1e68471f613bc39fe729 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 15:35:09 +0800 Subject: [PATCH 017/156] support plan cache on partition tables --- releases/release-8.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index a7305abe4fda..8901963d0d00 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -67,6 +67,12 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/statistics.md#自动更新)。 +* 支持缓存含有分区表的执行计划 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) **tw@hfxsd** + + TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),它能够有效减低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 移除了含有分区表的执行计划无法被缓存的限制,扩展了执行计划缓存的使用场景。如果系统中含有分区表,这个增强能够提升整体性能。 + + 更多信息,请参考[用户文档](/sql-prepared-plan-cache.md)。 + ### 稳定性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 688310c86d3f0b66eb07f771dfeed7b96e891048 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 15:52:24 +0800 Subject: [PATCH 018/156] Enhancement on multi-valued index --- releases/release-8.0.0.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8901963d0d00..9102073dce11 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -73,6 +73,15 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/sql-prepared-plan-cache.md)。 +* 优化器增强对多值索引的支持 [#47759](https://github.com/pingcap/tidb/issues/47759) [#46539](https://github.com/pingcap/tidb/issues/46539) @[Arenatlx](https://github.com/Arenatlx) @[time-and-fate](https://github.com/time-and-fate) **tw@hfxsd** + + TiDB 自 v6.6.0 开始引入[多值索引](/sql-statements/sql-statement-create-index.md#多值索引),提升对 JSON 数据类型的检索性能。在 v8.0.0 中,优化器增强了对多值索引的支持能力,在复杂使用场景下,能够正确识别和利用多值索引来优化查询。 + + * 多值索引上的统计信息会被收集,并应用于优化器估算。当一条 SQL 可能选择到数个多值索引时,优化器可以识别开销更小的索引。 + * 当出现用 `OR` 连接的多个 `member of` 条件时,优化器能够为每个 DNF Item(`member of` 条件)匹配一个有效的 Index Partial Path 路径,并将多条路径以 Union 的方式综合起来组成 `Index Merge` 来做更高效的条件过滤和数据读取。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 + ### 稳定性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From b9a5e67922d1eb22e10e12be5eb517951b7b443b Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 16:22:40 +0800 Subject: [PATCH 019/156] Plan Cache support generated column --- releases/release-8.0.0.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 9102073dce11..4c00f0b4445a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -67,9 +67,14 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/statistics.md#自动更新)。 -* 支持缓存含有分区表的执行计划 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) **tw@hfxsd** +* 解除执行计划缓存的部分限制 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) @[qw4990](https://github.com/qw4990) **tw@hfxsd** - TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),它能够有效减低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 移除了含有分区表的执行计划无法被缓存的限制,扩展了执行计划缓存的使用场景。如果系统中含有分区表,这个增强能够提升整体性能。 + TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),它能够有效减低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制: + + * 含有[分区表](/partitioned-table.md)的执行计划能够被缓存 + * 含有[生成列](/generated-columns.md)的执行计划能够被缓存 + + 当执行计划中含有分区表、生成列、或者依赖生成列的对象(比如[多值索引](/choose-index.md))时,执行计划仍旧可以被缓存。这些增强扩展了执行计划缓存的使用场景,提升了复杂场景下数据库的整体性能。 更多信息,请参考[用户文档](/sql-prepared-plan-cache.md)。 From 14963eb669ad2fc074111b9c3e1bf9fa31a6a5ca Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 18:19:21 +0800 Subject: [PATCH 020/156] system table to show index usage --- releases/release-8.0.0.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4c00f0b4445a..e06172d53455 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -172,6 +172,24 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 +* 引入对索引使用情况的观测 [#issue号](链接) @[YangKeao](https://github.com/hawkingrei) **tw@Oreoxmt** + + 正确的索引设计是提升数据库性能的重要前提。TiDB 在 v8.0.0 新加入了内存表 [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md),记录每个 TiDB 节点上索引的使用情况,其中包括: + * 扫描该索引的语句的累计执行次数 + * 累计在该索引中扫描的行数 + * 扫描索引时的选择率分布 + * 索引上次被选择的时间 + + 这些信息能够协助用户识别出没有被优化器选到的索引,以及过滤性很差的索引。另外,本次更新还加入了 MySQL 兼容的视图 [`sys.schema_unused_indexes`](/sys-schema.md),视图根据所有 TiDB 节点上的索引运行情况,列出节点启动后,所有没有被选择过的索引。 + + 需要注意的几点: + * 如果用户从 v8.0.0 之前的版本升级上来,`sys` 中的内容不会被自动创建,需要根据[文档]((/sys-schema.md))手动创建。 + * [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md) 只在内存中维护,重启 TiDB 节点后该节点的信息会丢失。 + * [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md) 默认会被维护。可以通过修改配置项 [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) 或者变量[`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) 将其关闭。 + + + 更多信息,请参考[用户文档](/information-schema/information-schema-tidb-index-usage.md)。 + ### 安全 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 110f5cafd98845e246f56ba8e2d721066c81d939 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 29 Feb 2024 18:51:49 +0800 Subject: [PATCH 021/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e06172d53455..eaed0bb523f6 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -17,12 +17,6 @@ TiDB 版本:8.0.0 ### 可扩展性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 @@ -31,11 +25,7 @@ TiDB 版本:8.0.0 ### 性能 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - 更多信息,请参考[用户文档](链接)。 * BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** TiDB v8.0.0 版本起,快照恢复提速的改进正式 GA,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作的相互影响以及加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升 10 倍。这一改进充分利用了每个 TiKV 节点的资源并行恢复,使得每个 TiKV 节点的数据恢复能够充分利用硬件的磁盘和网络带宽。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 @@ -44,7 +34,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 -* 新增支持下推以下 函数到 TiFlash [#48350](https://github.com/pingcap/tidb/issues/48350) [#xxx](https://github.com/pingcap/tidb/issues/xxx) @[xxx](https://github.com/xxx) **tw@qiancai** +* 新增支持下推以下 函数到 TiFlash [#48350](https://github.com/pingcap/tidb/issues/48350) [#xxx](https://github.com/pingcap/tidb/issues/xxx) @[xxx](https://github.com/xxx) **tw@Oreoxmt** * `POWER()` * `CAST(DECIMAL AS DOUBLE)` @@ -97,13 +87,7 @@ TiDB 版本:8.0.0 ### 高可用 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 支持代理组件 TiProxy [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) +* 支持代理组件 TiProxy [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** TiProxy 是 TiDB 的官方代理组件,位于客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持功能,让 TiDB 集群的负载更加均衡,并在维护操作期间不影响用户对数据库的连接访问。 @@ -120,12 +104,6 @@ TiDB 版本:8.0.0 ### SQL 功能 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 新增支持处理大量数据的 DML 类型 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) **tw@qiancai** 在之前的 TiDB 版本中,所有的事务数据在提交之前,都保存在内存中。当处理大量数据时,事务所需的内存成为瓶颈,限制了 TiDB 可以处理的事务大小。TiDB 曾经发布了非事务 DML 功能,通过拆分 SQL 的方式尝试解决事务大小限制,但是功能存在较多限制,在实际使用时并不友好。 @@ -138,12 +116,6 @@ TiDB 版本:8.0.0 ### 数据库管理 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** Amazon S3 对象锁定功能支持通过客户定义的留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。BR 从 v6.3.0 版本开始为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 版本开始,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足监管方面的需求。 @@ -166,12 +138,6 @@ TiDB 版本:8.0.0 ### 可观测性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 引入对索引使用情况的观测 [#issue号](链接) @[YangKeao](https://github.com/hawkingrei) **tw@Oreoxmt** 正确的索引设计是提升数据库性能的重要前提。TiDB 在 v8.0.0 新加入了内存表 [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md),记录每个 TiDB 节点上索引的使用情况,其中包括: From faa60b80390ca83abff1038d66b31f5ad70be130 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 29 Feb 2024 20:19:07 +0800 Subject: [PATCH 022/156] general query log written in separated files --- releases/release-8.0.0.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index eaed0bb523f6..27aac74a7ef6 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -135,6 +135,14 @@ TiDB 版本:8.0.0 在 v8.0.0 中,如果将新引入的会话级变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,那么在该会话中执行的查询可以选择到"不可见索引"。利用这个能力,在添加新索引时,如果不确定索引的作用,则可以先将索引创建为不可见索引,通过修改会话变量后,在这个会话中对相关的查询语句进行测试,而不影响其他会话的行为。这个扩展改进能够提升性能调优的安全性,增强生产数据库的稳定性。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 + +* 支持将 `General Query Log` 写入独立文件 [#issue号](链接) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** + + `General Query Log` 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启,但是在过去的版本中,`General Query Log` 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户并不友好。 + + 在新版本中,通过把配置项 [`log.general-log-file`]() 设置为有效的文件名,TiDB 可以把 `General Query Log` 写入指定的文件。和实例日志一样,"General Query Log" 也同样遵循日志的轮询和保存策略。 + + 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。将配置项 [`log.file.compression`] 设置为 `gzip`,轮询出的历史日志将自动以[`gzip`](https://www.gzip.org/)格式压缩。 ### 可观测性 @@ -202,7 +210,8 @@ TiDB 版本:8.0.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| | | | | +| TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | +| TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | ### 其他 From 4b94f6d9116e8e77047b7f82f89c8a3f33a98759 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 1 Mar 2024 08:56:15 +0800 Subject: [PATCH 023/156] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-8.0.0.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 27aac74a7ef6..21f45ea68646 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -84,7 +84,11 @@ TiDB 版本:8.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB 接的内存消耗(实验特性)[#issue号](链接) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** + 在 v8.0.0 之前,每个 TiDB 节点都会 cache 所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,光缓存这些表的 schema 信息就会占用较多的内存。从 v8.0.0 版本开始,引入了参数 tidb_schema_cache_size ,用户设置缓存 schema 可以使用的内存上限,避免占用过多的内存,而且开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小所需换成的 schema 信息。 + + 更多信息,请参考[用户文档](链接)。 ### 高可用 * 支持代理组件 TiProxy [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** @@ -113,7 +117,11 @@ TiDB 版本:8.0.0 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](/ new doc path),只支持在自动提交事务中使用,并且引入变量 `tidb_dml_type` 控制是否使用该 DML 类型。目前,该功能作为实验特性发布。 更多信息,请参考[用户文档](/... tidb_dml_type 变量)。 +* TiDB 建表时,支持更多的表达式来设置列的默认值 [#issue号](链接) @[zimulala](https://github.com/zimulala) **tw@qiancai** + 之前的版本建表时,列默认值只能为固定的字符串,数字,以及日期,而从 v8.0.0 版本开始,支持将部分表达式作为列的默认值,如将列的默认值设置为 UUID() ,从而来满足用户多样化的业务需求。 + + 更多信息,请参考[用户文档](链接)。 ### 数据库管理 * PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** @@ -173,7 +181,30 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 ### 数据迁移 +* DM 支持使用用户提供的密钥对源和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + + 之前 DM 使用的是自带的一个固定秘钥,安全性较低。而从 8.0 版本开始,用户可以传入自定义的密钥文件,对上下游的数据库的密码进行加密和解密操作,也可以按需替换秘钥,提升了安全性。 + + 更多信息,请参考[用户文档](链接)。 + +* Import into 功能增强,支持 Import into... from select 语法 [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + 在一些大数据量的场景使用 insert into ... select,数据导入的性能较慢,而从 8.0 版本开始,支持用户使用 Import into... from select 来导入查询结果到目标表中,且导入的性能最高可达 insert into ... select 的 8 倍,大大缩短了把查询结果导入目标表的所需时间。此外,该功能还支持导入使用 [`AS OF TIMESTAMP`](/as-of-timestamp.md) 查询的历史数据。 + + 更多信息,请参考[用户文档](链接)。 + +* Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据 [#issue 号](链接) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** + + 原先 Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时也有一套冲突策略,同时物理导入模式还有一套前置冲突策略,导致用户配置复杂。从 8.0 开始,将这 3 种冲突策略合并成了一套,简化了用户的配置操作。同时在物理导入模式下,还首次引入了通过 replace 的方式处理导入过程中冲突的数据。 + + 更多信息,请参考[用户文档](链接)。 + + * 全局功能称为正式功能(GA),可提升 import into 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#i45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** + + 原先 import into 任务调度到多个 TiDB 节点进行数据导入时,使用节点本地的磁盘对当前节点负责导入的数据进行本地局部排序,无法将所有节点要导入的数据进行全局排序,因此节点间的数据存在重叠时,在导入 TiKV 过程中, TiKV 需要执行较多的 compaction 操作,导致 TiKV 的稳定性和性能下降。而引入全局排序后,可将所有需要导入的数据进行全局排序后再导入 TiKV,数据全局有序,TiKV 也就无需执行 compaction 操作,稳定性以及写入性能都会有较大的提升。同时最高支持 40 TiB 的数据导入。 + + 更多信息,请参考[用户文档](链接)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From 72850ecf5feee1ff10307a35cf5f33602583f12f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 1 Mar 2024 10:29:50 +0800 Subject: [PATCH 024/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 21f45ea68646..9e158f69fb24 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -51,9 +51,9 @@ TiDB 版本:8.0.0 * 自动统计信息收集引入优先级队列 [#50132](https://github.com/pingcap/tidb/issues/50132) @[hi-rustin](https://github.com/hi-rustin) **tw@hfxsd** - 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的 [自动统计信息收集](/statistics.md#自动更新) 来保持统计信息的更新。[自动统计信息收集](/statistics.md#自动更新) 轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在过去的版本中,收集顺序是随机设置的,这可能造成更有收集价值的对象需要长时间等待才被更新,引发潜在的数据库性能回退。 + 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新) 来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在过去的版本中,收集顺序是随机设置的,这可能造成更有收集价值的对象需要长时间等待才被更新,引发潜在的数据库性能回退。 - 从 v8.0.0 开始,自动统计信息收集会结合多种条件为对象动态设置优先级,确保更有收集价值的对象优先被处理,比如新创建的索引,发生分区变更的分区表等,健康度更低的对象也会倾向于排在队列前端。这个增强提升了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,提升数据库稳定性。 + 从 v8.0.0 开始,自动统计信息收集会结合多种条件为对象动态设置优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等,健康度更低的对象也会倾向于排在队列前端。该增强提升了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,因此提升了数据库稳定性。 更多信息,请参考[用户文档](/statistics.md#自动更新)。 @@ -79,16 +79,12 @@ TiDB 版本:8.0.0 ### 稳定性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 * 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB 接的内存消耗(实验特性)[#issue号](链接) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** - 在 v8.0.0 之前,每个 TiDB 节点都会 cache 所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,光缓存这些表的 schema 信息就会占用较多的内存。从 v8.0.0 版本开始,引入了参数 tidb_schema_cache_size ,用户设置缓存 schema 可以使用的内存上限,避免占用过多的内存,而且开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小所需换成的 schema 信息。 + 在 v8.0.0 之前,每个 TiDB 节点都会 cache 所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,光缓存这些表的 schema 信息就会占用较多的内存。从 v8.0.0 版本开始,引入了参数 `tidb_schema_cache_size`,用户设置缓存 schema 可以使用的内存上限,避免占用过多的内存,而且开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小所需换成的 schema 信息。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 + ### 高可用 * 支持代理组件 TiProxy [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** @@ -117,6 +113,7 @@ TiDB 版本:8.0.0 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](/ new doc path),只支持在自动提交事务中使用,并且引入变量 `tidb_dml_type` 控制是否使用该 DML 类型。目前,该功能作为实验特性发布。 更多信息,请参考[用户文档](/... tidb_dml_type 变量)。 + * TiDB 建表时,支持更多的表达式来设置列的默认值 [#issue号](链接) @[zimulala](https://github.com/zimulala) **tw@qiancai** 之前的版本建表时,列默认值只能为固定的字符串,数字,以及日期,而从 v8.0.0 版本开始,支持将部分表达式作为列的默认值,如将列的默认值设置为 UUID() ,从而来满足用户多样化的业务需求。 @@ -151,7 +148,9 @@ TiDB 版本:8.0.0 在新版本中,通过把配置项 [`log.general-log-file`]() 设置为有效的文件名,TiDB 可以把 `General Query Log` 写入指定的文件。和实例日志一样,"General Query Log" 也同样遵循日志的轮询和保存策略。 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。将配置项 [`log.file.compression`] 设置为 `gzip`,轮询出的历史日志将自动以[`gzip`](https://www.gzip.org/)格式压缩。 - + + 更多信息,请参考[用户文档](链接))。 + ### 可观测性 * 引入对索引使用情况的观测 [#issue号](链接) @[YangKeao](https://github.com/hawkingrei) **tw@Oreoxmt** @@ -251,7 +250,7 @@ TiDB 版本:8.0.0 ## 废弃功能 * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** - +* 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 * 废弃功能 1 * 废弃功能 2 From ca35d2a149bee043126227202630cb8d17108404 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 1 Mar 2024 10:32:36 +0800 Subject: [PATCH 025/156] Update releases/release-8.0.0.md Co-authored-by: easonn7 <93458949+easonn7@users.noreply.github.com> --- releases/release-8.0.0.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 9e158f69fb24..facb579441d9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -16,7 +16,33 @@ TiDB 版本:8.0.0 ## 功能详情 ### 可扩展性 +从 v8.0.0 开始,PD 支持微服务部署模式 [#5836](https://github.com/tikv/pd/issues/5836) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** +该模式可将 PD 的时间戳分配和集群调度功能拆分为独立的服务,单独部署,从而实现 PD 的性能扩展,在超大规模集群下解决 PD 性能瓶颈问题。我们通常建议当 PD 出现明显的性能瓶颈且无法升配的情况下,考虑使用该模式。 +当前支持以下两种服务独立部署 +- TSO 微服务:为整个集群提供单调递增的时间戳分配。 +- Scheduling 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 +每种微服务都以独立进程的方式部署,当相应服务设置的副本数量大于 1 时,提供主备的容灾模式。 + +## 使用场景 +PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。利用该特性,你可以避免以下问题: + +- PD 集群压力过大而导致 TSO 分配的长尾或者抖动现象 +- 调度模块故障导致整个集群服务不可用的问题 +- PD 自身单点瓶颈的问题 +此外,调度模块的变更可以单独更新 Scheduling 微服务,不需要再对 PD 进行重启,进而不会影响集群的整体服务。 + +> **注意:** +> +> 如果性能瓶颈本身不在 PD,则无需开启微服务。微服务本身会增加组件数量,提高运维成本。 + +## 使用限制 + +- TSO 微服务目前不支持动态启停,开启或关闭需要重启 PD 集群。 +- 只有 TiDB 通过服务发现直接连接 TSO 微服务,其他的组件是通过请求转发的方式,将请求通过 PD 转发到 TSO 微服务获取时间戳。 +- 当前微服务与 [同步部署模式 (DR Auto-Sync) ](/two-data-centers-in-one-city-deployment.md#简介) 特性不兼容。 +- 与 TiDB 系统变量 tidb_enable_tso_follower_proxy 不兼容。 +- 由于静默 region 的关系,Scheduling 微服务在进行主备切换时,为避免冗余调度,集群或存在至多五分钟没有调度的现象。 * 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 From ae4b5c0e2f10d4c1241b06216641c560e45b0e97 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 1 Mar 2024 10:33:39 +0800 Subject: [PATCH 026/156] Apply suggestions from code review --- releases/release-8.0.0.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index facb579441d9..62f934886813 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -16,6 +16,7 @@ TiDB 版本:8.0.0 ## 功能详情 ### 可扩展性 + 从 v8.0.0 开始,PD 支持微服务部署模式 [#5836](https://github.com/tikv/pd/issues/5836) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** 该模式可将 PD 的时间戳分配和集群调度功能拆分为独立的服务,单独部署,从而实现 PD 的性能扩展,在超大规模集群下解决 PD 性能瓶颈问题。我们通常建议当 PD 出现明显的性能瓶颈且无法升配的情况下,考虑使用该模式。 @@ -25,6 +26,7 @@ TiDB 版本:8.0.0 每种微服务都以独立进程的方式部署,当相应服务设置的副本数量大于 1 时,提供主备的容灾模式。 ## 使用场景 + PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。利用该特性,你可以避免以下问题: - PD 集群压力过大而导致 TSO 分配的长尾或者抖动现象 @@ -43,6 +45,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 - 当前微服务与 [同步部署模式 (DR Auto-Sync) ](/two-data-centers-in-one-city-deployment.md#简介) 特性不兼容。 - 与 TiDB 系统变量 tidb_enable_tso_follower_proxy 不兼容。 - 由于静默 region 的关系,Scheduling 微服务在进行主备切换时,为避免冗余调度,集群或存在至多五分钟没有调度的现象。 + * 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 From 1d6baa5b0c15e01368a7c072c28ad86e522d4820 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 1 Mar 2024 10:34:52 +0800 Subject: [PATCH 027/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 62f934886813..1b45b78cb54e 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -17,7 +17,7 @@ TiDB 版本:8.0.0 ### 可扩展性 -从 v8.0.0 开始,PD 支持微服务部署模式 [#5836](https://github.com/tikv/pd/issues/5836) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** +从 v8.0.0 开始,PD 支持微服务部署模式 [#57636](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** 该模式可将 PD 的时间戳分配和集群调度功能拆分为独立的服务,单独部署,从而实现 PD 的性能扩展,在超大规模集群下解决 PD 性能瓶颈问题。我们通常建议当 PD 出现明显的性能瓶颈且无法升配的情况下,考虑使用该模式。 当前支持以下两种服务独立部署 From e87a9b06030858aa4f120eb4146b7b746529acc1 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 1 Mar 2024 10:35:13 +0800 Subject: [PATCH 028/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1b45b78cb54e..203b2b6d12b1 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -17,7 +17,7 @@ TiDB 版本:8.0.0 ### 可扩展性 -从 v8.0.0 开始,PD 支持微服务部署模式 [#57636](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** +从 v8.0.0 开始,PD 支持微服务部署模式 [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** 该模式可将 PD 的时间戳分配和集群调度功能拆分为独立的服务,单独部署,从而实现 PD 的性能扩展,在超大规模集群下解决 PD 性能瓶颈问题。我们通常建议当 PD 出现明显的性能瓶颈且无法升配的情况下,考虑使用该模式。 当前支持以下两种服务独立部署 From 129850ddfa68a1c765b77041a11425f9c6435811 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 1 Mar 2024 11:55:09 +0800 Subject: [PATCH 029/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 203b2b6d12b1..c45ba96f08a0 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -63,10 +63,10 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 -* 新增支持下推以下 函数到 TiFlash [#48350](https://github.com/pingcap/tidb/issues/48350) [#xxx](https://github.com/pingcap/tidb/issues/xxx) @[xxx](https://github.com/xxx) **tw@Oreoxmt** +* 新增支持下推以下 函数到 TiFlash [#50975](https://github.com/pingcap/tidb/issues/50975) [#50485](https://github.com/pingcap/tidb/issues/50485) @[yibin87](https://github.com/yibin87) @[windtalker](https://github.com/windtalker) **tw@Oreoxmt** - * `POWER()` * `CAST(DECIMAL AS DOUBLE)` + * `POWER()` 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 From 1e30b7a6731f1204ed00c1184ff2ed3918b8c725 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 4 Mar 2024 10:38:21 +0800 Subject: [PATCH 030/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c45ba96f08a0..7fdcde6d6e51 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -227,7 +227,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](链接)。 - * 全局功能称为正式功能(GA),可提升 import into 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#i45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** + * 全局排序功能成为正式功能 (GA),可提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** 原先 import into 任务调度到多个 TiDB 节点进行数据导入时,使用节点本地的磁盘对当前节点负责导入的数据进行本地局部排序,无法将所有节点要导入的数据进行全局排序,因此节点间的数据存在重叠时,在导入 TiKV 过程中, TiKV 需要执行较多的 compaction 操作,导致 TiKV 的稳定性和性能下降。而引入全局排序后,可将所有需要导入的数据进行全局排序后再导入 TiKV,数据全局有序,TiKV 也就无需执行 compaction 操作,稳定性以及写入性能都会有较大的提升。同时最高支持 40 TiB 的数据导入。 From c462bf389e0a518b9a048694e46d1f223f19c396 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 4 Mar 2024 10:54:12 +0800 Subject: [PATCH 031/156] Apply suggestions from code review --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7fdcde6d6e51..1bec08dd9dc7 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -57,9 +57,9 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 * BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** - TiDB v8.0.0 版本起,快照恢复提速的改进正式 GA,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作的相互影响以及加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升 10 倍。这一改进充分利用了每个 TiKV 节点的资源并行恢复,使得每个 TiKV 节点的数据恢复能够充分利用硬件的磁盘和网络带宽。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 + 从 TiDB v8.0.0 起,快照恢复提速正式发布,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升约 10 倍。该功能充分利用了每个 TiKV 节点的所有资源,实现并行快速恢复。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 - 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,实现了横向和纵向扩展性。通过这一改进,我们成功缩短了数据库恢复时间,提高了数据库的可用性和可靠性,从而降低了因数据丢失或故障而导致的停机时间和业务损失。 + 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 From 23a59e4b43540a1b17364aa470467ed604034848 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 4 Mar 2024 11:03:39 +0800 Subject: [PATCH 032/156] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> Co-authored-by: Grace Cai Co-authored-by: djshow832 --- releases/release-8.0.0.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1bec08dd9dc7..8f5bdf502b82 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -88,12 +88,12 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 * 解除执行计划缓存的部分限制 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) @[qw4990](https://github.com/qw4990) **tw@hfxsd** - TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),它能够有效减低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制: - - * 含有[分区表](/partitioned-table.md)的执行计划能够被缓存 - * 含有[生成列](/generated-columns.md)的执行计划能够被缓存 - - 当执行计划中含有分区表、生成列、或者依赖生成列的对象(比如[多值索引](/choose-index.md))时,执行计划仍旧可以被缓存。这些增强扩展了执行计划缓存的使用场景,提升了复杂场景下数据库的整体性能。 + TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),能够有效降低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制,含有以下内容的执行计划均能够被缓存: + + - [分区表](/partitioned-table.md) + - [生成列](/generated-columns.md),包含依赖生成列的对象(比如[多值索引](/choose-index.md)) + + 该增强扩展了执行计划缓存的使用场景,提升了复杂场景下数据库的整体性能。 更多信息,请参考[用户文档](/sql-prepared-plan-cache.md)。 @@ -104,7 +104,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 * 多值索引上的统计信息会被收集,并应用于优化器估算。当一条 SQL 可能选择到数个多值索引时,优化器可以识别开销更小的索引。 * 当出现用 `OR` 连接的多个 `member of` 条件时,优化器能够为每个 DNF Item(`member of` 条件)匹配一个有效的 Index Partial Path 路径,并将多条路径以 Union 的方式综合起来组成 `Index Merge` 来做更高效的条件过滤和数据读取。 - 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 ### 稳定性 @@ -133,7 +133,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### SQL 功能 -* 新增支持处理大量数据的 DML 类型 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) **tw@qiancai** +* 新增支持处理大量数据的 DML 类型 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) **tw@Oreoxmt** 在之前的 TiDB 版本中,所有的事务数据在提交之前,都保存在内存中。当处理大量数据时,事务所需的内存成为瓶颈,限制了 TiDB 可以处理的事务大小。TiDB 曾经发布了非事务 DML 功能,通过拆分 SQL 的方式尝试解决事务大小限制,但是功能存在较多限制,在实际使用时并不友好。 @@ -143,11 +143,12 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](/... tidb_dml_type 变量)。 -* TiDB 建表时,支持更多的表达式来设置列的默认值 [#issue号](链接) @[zimulala](https://github.com/zimulala) **tw@qiancai** +* TiDB 建表时,支持更多的表达式来设置列的默认值 (实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@qiancai** 之前的版本建表时,列默认值只能为固定的字符串,数字,以及日期,而从 v8.0.0 版本开始,支持将部分表达式作为列的默认值,如将列的默认值设置为 UUID() ,从而来满足用户多样化的业务需求。 更多信息,请参考[用户文档](链接)。 + ### 数据库管理 * PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** @@ -156,7 +157,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](链接)。 - * PITR 支持备份恢复 Lightning 物理模式导入的数据 (实验性功能) [#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** + * PITR 支持备份恢复由 TiDB Lightning 物理模式导入的数据(实验特性)[#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** TiDB v8.0.0 版本之前,由于 Lightning 的物理导入模式会“重写历史”,导致 PITR 无法感知到被”重写的历史” ,因此无法对数据进行备份。用户需要在完成数据导入后执行一次全量备份。从 TiDB v8.0.0 版本起,PITR 通过对解析时间戳(ResolvedTs)和 `Ingest SST` 操作进行兼容性设计,使得通过 Lightning 的物理模式导入的数据可以被 PITR 正确的识别、备份和恢复。这项改进为客户提供了更加完善的数据保护和恢复方案。 @@ -170,7 +171,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 -* 支持将 `General Query Log` 写入独立文件 [#issue号](链接) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** +* 支持将 `General Query Log` 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** `General Query Log` 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启,但是在过去的版本中,`General Query Log` 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户并不友好。 @@ -182,7 +183,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 可观测性 -* 引入对索引使用情况的观测 [#issue号](链接) @[YangKeao](https://github.com/hawkingrei) **tw@Oreoxmt** +* 引入对索引使用情况的观测 [#49830](https://github.com/pingcap/tidb/issues/49830) @[YangKeao](https://github.com/YangKeao) **tw@Oreoxmt** 正确的索引设计是提升数据库性能的重要前提。TiDB 在 v8.0.0 新加入了内存表 [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md),记录每个 TiDB 节点上索引的使用情况,其中包括: * 扫描该索引的语句的累计执行次数 @@ -196,7 +197,6 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 * 如果用户从 v8.0.0 之前的版本升级上来,`sys` 中的内容不会被自动创建,需要根据[文档]((/sys-schema.md))手动创建。 * [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md) 只在内存中维护,重启 TiDB 节点后该节点的信息会丢失。 * [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md) 默认会被维护。可以通过修改配置项 [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) 或者变量[`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) 将其关闭。 - 更多信息,请参考[用户文档](/information-schema/information-schema-tidb-index-usage.md)。 @@ -215,13 +215,13 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](链接)。 -* Import into 功能增强,支持 Import into... from select 语法 [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* Import into 功能增强,支持 Import into... from select 语法(实验特性) [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 在一些大数据量的场景使用 insert into ... select,数据导入的性能较慢,而从 8.0 版本开始,支持用户使用 Import into... from select 来导入查询结果到目标表中,且导入的性能最高可达 insert into ... select 的 8 倍,大大缩短了把查询结果导入目标表的所需时间。此外,该功能还支持导入使用 [`AS OF TIMESTAMP`](/as-of-timestamp.md) 查询的历史数据。 更多信息,请参考[用户文档](链接)。 -* Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据 [#issue 号](链接) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** +* TiDB Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** 原先 Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时也有一套冲突策略,同时物理导入模式还有一套前置冲突策略,导致用户配置复杂。从 8.0 开始,将这 3 种冲突策略合并成了一套,简化了用户的配置操作。同时在物理导入模式下,还首次引入了通过 replace 的方式处理导入过程中冲突的数据。 @@ -247,7 +247,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 行为变更 -* 行为变更 1 +* 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,对编码后的索引键值对数据 ingest 到 TiKV 时用的是一个固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。 * 行为变更 2 @@ -271,7 +271,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 | -------- | -------- | -------- | -------- | | TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | - +| TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | ### 其他 ## 离线包变更 @@ -294,7 +294,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 - 优化数据落盘功能的退出机制,提升数据落盘时取消查询的性能 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** - + - Import into SQL 功能增强,原先只有在一个导入任务运行完成后才能提交第二个任务,现在可以同时提交 16 个 import into 的任务,大大提升导入的性能,同时方便用户批量导入数据到所需的目标表,提升数据导入效率。 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + TiKV @@ -328,7 +328,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 + TiDB Data Migration (DM) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - `MariaDB` 主从复制的场景,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`,且 `Mariadb_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。 [#issue](链接) @[okJiang](https://github.com/okJiang) **tw@hfxsd** - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiDB Lightning From ef1eccc92ffa5a97e4e5e2bf81cd39d03fc83ae3 Mon Sep 17 00:00:00 2001 From: long0712 <87366891+ljun0712@users.noreply.github.com> Date: Mon, 4 Mar 2024 14:50:48 +0800 Subject: [PATCH 033/156] Update release-8.0.0.md add security-related requirements. --- releases/release-8.0.0.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8f5bdf502b82..7b4553a02a23 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -202,9 +202,15 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 安全 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** +* TiKV 静态加密支持 GCP KMS [#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@xxx** - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + TiKV 基于静态加密功能对存储的数据进行加密,确保数据的安全性。静态加密的安全核心点在于密钥管理,此次在静态加密的密钥管理类型中引入了对 GCP KMS 的支持。TiKV 静态加密支持 GCP KMS 可以帮助用户构建基于 GCP KMS 的静态加密能力,可以保证用户数据的安全性。要是用此功能请完成 TiKV 配置文件的 `[security.encryption.master-key]` 部分的内容,即正确实现 TiKV 与 GCP KMS的关联。 + + 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/16737)。 + +* TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@xxx** + + TiDB 日志脱敏增强是基于对日志文件中 SQL 文本信息的数据进行标记,以便支持用户在查看时进行敏感数据的安全展示。用户可以更灵活自主地在展示环节控制是否对日志信息进行脱敏,以支持 TiDB 日志在不同场景下的安全使用,提升了客户使用日志脱敏能力的安全性和灵活性。要使用此功能请通过修改系统变量 `tidb_redact_log` 的值设置为 `marker`,此时 TiDB 的运行日志将对 SQL 文本进行标记,查看时将基于标记进行数据的安全展示,从而实现日志信息的保护。 更多信息,请参考[用户文档](链接)。 @@ -394,4 +400,4 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 感谢来自 TiDB 社区的贡献者们: -- [贡献者 GitHub ID]() \ No newline at end of file +- [贡献者 GitHub ID]() From bb87cc76a360bb6b653a98f6742e3581051c50db Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 4 Mar 2024 14:53:42 +0800 Subject: [PATCH 034/156] Apply suggestions from code review Co-authored-by: djshow832 --- releases/release-8.0.0.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7b4553a02a23..4b4b76a529ce 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -175,11 +175,11 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 `General Query Log` 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启,但是在过去的版本中,`General Query Log` 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户并不友好。 - 在新版本中,通过把配置项 [`log.general-log-file`]() 设置为有效的文件名,TiDB 可以把 `General Query Log` 写入指定的文件。和实例日志一样,"General Query Log" 也同样遵循日志的轮询和保存策略。 + 在新版本中,通过把配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 设置为有效的文件名,TiDB 可以把 general log 写入指定的文件。和实例日志一样,general log 也同样遵循日志的轮询和保存策略。 - 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。将配置项 [`log.file.compression`] 设置为 `gzip`,轮询出的历史日志将自动以[`gzip`](https://www.gzip.org/)格式压缩。 + 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression) 设置为 `gzip`,轮询出的历史日志将自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 - 更多信息,请参考[用户文档](链接))。 + 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file)。 ### 可观测性 @@ -253,7 +253,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 行为变更 -* 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,对编码后的索引键值对数据 ingest 到 TiKV 时用的是一个固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。 +* 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,对编码后的索引键值对数据 ingest 到 TiKV 时用的是一个固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。**tw@hfxsd** * 行为变更 2 @@ -278,7 +278,6 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 | TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | -### 其他 ## 离线包变更 From 6b9a682a8ee7e57c62d25bfe72f80399760bbb12 Mon Sep 17 00:00:00 2001 From: long0712 <87366891+ljun0712@users.noreply.github.com> Date: Mon, 4 Mar 2024 15:49:29 +0800 Subject: [PATCH 035/156] Update release-8.0.0.md Add description of security-related configuration parameters --- releases/release-8.0.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4b4b76a529ce..51b2474bead0 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -268,6 +268,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| | [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| +| [tidb_redact_log](/system-variables.md#) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为OFF、ON、marker,以支持记录信息明文、信息屏蔽、信息标记。当变量值为marker时,日志中的用户信息将被标记处理,可以在随后的查看中进行日志信息是否脱敏的处理 | | | | | | | | | @@ -278,6 +279,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 | TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | ## 离线包变更 From 1b6417a62d4372ef85eb2d6c74bea8ce6439b10b Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Mon, 4 Mar 2024 17:06:30 +0800 Subject: [PATCH 036/156] Update releases/release-8.0.0.md Co-authored-by: Lilian Lee --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 51b2474bead0..de8b3d920a4c 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -153,7 +153,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 * PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** - Amazon S3 对象锁定功能支持通过客户定义的留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。BR 从 v6.3.0 版本开始为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 版本开始,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足监管方面的需求。 + Amazon S3 对象锁定功能支持用户通过设置留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。从 v6.3.0 起,BR 为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 起,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量备份还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足了监管方面的需求。 更多信息,请参考[用户文档](链接)。 From e5f5c362d54294963075faaf4b2b177e30917d7a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 5 Mar 2024 08:51:38 +0800 Subject: [PATCH 037/156] Apply suggestions from code review Co-authored-by: djshow832 Co-authored-by: ekexium Co-authored-by: Hangjie Mo Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-8.0.0.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index de8b3d920a4c..c622733a5a5d 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -108,9 +108,9 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 稳定性 -* 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB 接的内存消耗(实验特性)[#issue号](链接) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** +* 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** - 在 v8.0.0 之前,每个 TiDB 节点都会 cache 所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,光缓存这些表的 schema 信息就会占用较多的内存。从 v8.0.0 版本开始,引入了参数 `tidb_schema_cache_size`,用户设置缓存 schema 可以使用的内存上限,避免占用过多的内存,而且开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小所需换成的 schema 信息。 + 在 v8.0.0 之前,每个 TiDB 节点都会缓存所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,仅缓存这些表的 schema 信息就会占用大量内存。从 v8.0.0 开始,引入了参数 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入),你可以设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 @@ -133,15 +133,15 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### SQL 功能 -* 新增支持处理大量数据的 DML 类型 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) **tw@Oreoxmt** +* 新增支持处理大量数据的 DML 类型(实验特性)[#50215](https://github.com/pingcap/tidb/issues/50215) @[ekexium](https://github.com/ekexium) **tw@Oreoxmt** 在之前的 TiDB 版本中,所有的事务数据在提交之前,都保存在内存中。当处理大量数据时,事务所需的内存成为瓶颈,限制了 TiDB 可以处理的事务大小。TiDB 曾经发布了非事务 DML 功能,通过拆分 SQL 的方式尝试解决事务大小限制,但是功能存在较多限制,在实际使用时并不友好。 在 v8.0.0 中,TiDB 新增支持处理大量数据的 DML 类型。这种 DML 类型在执行时,通过及时将数据写入 TiKV 的方式,避免将所有事务数据保存在内存中,从而实现对超过内存上限的大量数据的处理。该 DML 类型保证事务的完整性,并且使用和标准 DML 完全一致的语法。任何 TiDB 的合法 DML,都可以使用这种 DML 类型,以处理大数据量 DML 操作。 - 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](/ new doc path),只支持在自动提交事务中使用,并且引入变量 `tidb_dml_type` 控制是否使用该 DML 类型。目前,该功能作为实验特性发布。 + 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](https://github.com/pingcap/tidb/blob/master/docs/design/2024-01-09-pipelined-DML.md),只支持在自动提交事务中使用,并且引入变量 `tidb_dml_type` 控制是否使用该 DML 类型。目前,该功能作为实验特性发布。 - 更多信息,请参考[用户文档](/... tidb_dml_type 变量)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_dml_type-从-v80-版本开始引入)。 * TiDB 建表时,支持更多的表达式来设置列的默认值 (实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@qiancai** @@ -253,13 +253,13 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 行为变更 -* 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,对编码后的索引键值对数据 ingest 到 TiKV 时用的是一个固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。**tw@hfxsd** +* 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,编码后的索引键值 ingest 数据到 TiKV 时使用的是固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。**tw@hfxsd** * 行为变更 2 ### MySQL 兼容性 -* 兼容性 1 +* `KEY` 分区类型支持分区字段列表为空的语句,具体行为和 MySQL 保持一致。**tw@hfxsd** * 兼容性 2 @@ -269,7 +269,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 |--------|------------------------------|------| | [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| | [tidb_redact_log](/system-variables.md#) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为OFF、ON、marker,以支持记录信息明文、信息屏蔽、信息标记。当变量值为marker时,日志中的用户信息将被标记处理,可以在随后的查看中进行日志信息是否脱敏的处理 | -| | | | +| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | | | | | ### 配置文件参数 @@ -280,7 +280,8 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | - +| TiDB Lightning | `logical-import-batch-size` | 新增| 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 "96KiB",单位可以为 KB,KiB,MB,MiB 等存储单位 | +| TiDB Lightning | `logical-import-batch-rows` | 新增| 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | ## 离线包变更 ## 废弃功能 From b097689ea7822250d40ac230716122103b4d247b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 5 Mar 2024 09:16:47 +0800 Subject: [PATCH 038/156] Apply suggestions from code review Co-authored-by: Luo Yangzhixin --- releases/release-8.0.0.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c622733a5a5d..c363155226fa 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -157,7 +157,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](链接)。 - * PITR 支持备份恢复由 TiDB Lightning 物理模式导入的数据(实验特性)[#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** +* PITR 支持备份恢复由 TiDB Lightning 物理模式导入的数据(实验特性)[#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** TiDB v8.0.0 版本之前,由于 Lightning 的物理导入模式会“重写历史”,导致 PITR 无法感知到被”重写的历史” ,因此无法对数据进行备份。用户需要在完成数据导入后执行一次全量备份。从 TiDB v8.0.0 版本起,PITR 通过对解析时间戳(ResolvedTs)和 `Ingest SST` 操作进行兼容性设计,使得通过 Lightning 的物理模式导入的数据可以被 PITR 正确的识别、备份和恢复。这项改进为客户提供了更加完善的数据保护和恢复方案。 @@ -171,9 +171,9 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 -* 支持将 `General Query Log` 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** +* 支持将 general log 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** - `General Query Log` 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启,但是在过去的版本中,`General Query Log` 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户并不友好。 + general log 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。但是在过去的版本中,general log 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户并不友好。 在新版本中,通过把配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 设置为有效的文件名,TiDB 可以把 general log 写入指定的文件。和实例日志一样,general log 也同样遵循日志的轮询和保存策略。 @@ -202,19 +202,20 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 ### 安全 -* TiKV 静态加密支持 GCP KMS [#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@xxx** +* TiKV 静态加密支持 GCP KMS [#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@qiancai** TiKV 基于静态加密功能对存储的数据进行加密,确保数据的安全性。静态加密的安全核心点在于密钥管理,此次在静态加密的密钥管理类型中引入了对 GCP KMS 的支持。TiKV 静态加密支持 GCP KMS 可以帮助用户构建基于 GCP KMS 的静态加密能力,可以保证用户数据的安全性。要是用此功能请完成 TiKV 配置文件的 `[security.encryption.master-key]` 部分的内容,即正确实现 TiKV 与 GCP KMS的关联。 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/16737)。 -* TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@xxx** +* TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@qiancai** TiDB 日志脱敏增强是基于对日志文件中 SQL 文本信息的数据进行标记,以便支持用户在查看时进行敏感数据的安全展示。用户可以更灵活自主地在展示环节控制是否对日志信息进行脱敏,以支持 TiDB 日志在不同场景下的安全使用,提升了客户使用日志脱敏能力的安全性和灵活性。要使用此功能请通过修改系统变量 `tidb_redact_log` 的值设置为 `marker`,此时 TiDB 的运行日志将对 SQL 文本进行标记,查看时将基于标记进行数据的安全展示,从而实现日志信息的保护。 更多信息,请参考[用户文档](链接)。 ### 数据迁移 + * DM 支持使用用户提供的密钥对源和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 之前 DM 使用的是自带的一个固定秘钥,安全性较低。而从 8.0 版本开始,用户可以传入自定义的密钥文件,对上下游的数据库的密码进行加密和解密操作,也可以按需替换秘钥,提升了安全性。 @@ -229,7 +230,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 * TiDB Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** - 原先 Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时也有一套冲突策略,同时物理导入模式还有一套前置冲突策略,导致用户配置复杂。从 8.0 开始,将这 3 种冲突策略合并成了一套,简化了用户的配置操作。同时在物理导入模式下,还首次引入了通过 replace 的方式处理导入过程中冲突的数据。 + 原先 TiDB Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时也有一套冲突策略,同时物理导入模式还有一套前置冲突策略,导致配置复杂。从 v8.0.0 开始,将这三种冲突策略合并成了一套,简化了配置操作。同时在物理导入模式下,还首次引入了通过 `replace` 的方式处理导入过程中冲突的数据,遇到主键或唯一键冲突的数据时,保留最新的数据、覆盖旧的数据。最新数据的定义取决于 TiDB Lightning 内部机制。 更多信息,请参考[用户文档](链接)。 @@ -296,8 +297,6 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 + TiDB - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - 优化 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** - 优化数据落盘功能的退出机制,提升数据落盘时取消查询的性能 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** From 68810fa87cbfa475a9419a476e0f10a78a32085b Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Tue, 5 Mar 2024 11:30:20 +0800 Subject: [PATCH 039/156] Add a user doc link --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c363155226fa..bc38aa07417b 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -155,7 +155,7 @@ PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务 Amazon S3 对象锁定功能支持用户通过设置留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。从 v6.3.0 起,BR 为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 起,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量备份还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足了监管方面的需求。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/br/backup-and-restore-storages.md#存储服务其他功能支持)。 * PITR 支持备份恢复由 TiDB Lightning 物理模式导入的数据(实验特性)[#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** From d6f50785c892cb932522be0bd9ba0fd499b7718c Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 5 Mar 2024 11:41:57 +0800 Subject: [PATCH 040/156] remove extra info for pd micro-service --- releases/release-8.0.0.md | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index bc38aa07417b..f49727331692 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -25,27 +25,6 @@ TiDB 版本:8.0.0 - Scheduling 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 每种微服务都以独立进程的方式部署,当相应服务设置的副本数量大于 1 时,提供主备的容灾模式。 -## 使用场景 - -PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。利用该特性,你可以避免以下问题: - -- PD 集群压力过大而导致 TSO 分配的长尾或者抖动现象 -- 调度模块故障导致整个集群服务不可用的问题 -- PD 自身单点瓶颈的问题 -此外,调度模块的变更可以单独更新 Scheduling 微服务,不需要再对 PD 进行重启,进而不会影响集群的整体服务。 - -> **注意:** -> -> 如果性能瓶颈本身不在 PD,则无需开启微服务。微服务本身会增加组件数量,提高运维成本。 - -## 使用限制 - -- TSO 微服务目前不支持动态启停,开启或关闭需要重启 PD 集群。 -- 只有 TiDB 通过服务发现直接连接 TSO 微服务,其他的组件是通过请求转发的方式,将请求通过 PD 转发到 TSO 微服务获取时间戳。 -- 当前微服务与 [同步部署模式 (DR Auto-Sync) ](/two-data-centers-in-one-city-deployment.md#简介) 特性不兼容。 -- 与 TiDB 系统变量 tidb_enable_tso_follower_proxy 不兼容。 -- 由于静默 region 的关系,Scheduling 微服务在进行主备切换时,为避免冗余调度,集群或存在至多五分钟没有调度的现象。 - * 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 From 136ba5af58972588ad8335c25e234b10208add8a Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 5 Mar 2024 19:00:10 +0800 Subject: [PATCH 041/156] Update releases/release-8.0.0.md Co-authored-by: Aolin --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index f49727331692..f15214aa01da 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -42,12 +42,12 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 -* 新增支持下推以下 函数到 TiFlash [#50975](https://github.com/pingcap/tidb/issues/50975) [#50485](https://github.com/pingcap/tidb/issues/50485) @[yibin87](https://github.com/yibin87) @[windtalker](https://github.com/windtalker) **tw@Oreoxmt** +* 新增支持下推以下函数到 TiFlash [#50975](https://github.com/pingcap/tidb/issues/50975) [#50485](https://github.com/pingcap/tidb/issues/50485) @[yibin87](https://github.com/yibin87) @[windtalker](https://github.com/windtalker) **tw@Oreoxmt** * `CAST(DECIMAL AS DOUBLE)` * `POWER()` - 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 * TiDB 的并发 HashAgg 算法支持数据落盘(实验特性)[#35637](https://github.com/pingcap/tidb/issues/35637) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** From df5820653b19a3a8c481a1fc85c3c1664176b7f2 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 6 Mar 2024 10:36:12 +0800 Subject: [PATCH 042/156] Apply suggestions from code review --- releases/release-8.0.0.md | 50 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index f15214aa01da..71caf8765cfa 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -95,32 +95,32 @@ TiDB 版本:8.0.0 ### 高可用 -* 支持代理组件 TiProxy [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** +* 代理组件 TiProxy 成为正式功能 (GA) [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** - TiProxy 是 TiDB 的官方代理组件,位于客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持功能,让 TiDB 集群的负载更加均衡,并在维护操作期间不影响用户对数据库的连接访问。 + TiDB v7.6.0 引入了代理组件 TiProxy 作为实验特性。TiProxy 是 TiDB 的官方代理组件,位于客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持功能,让 TiDB 集群的负载更加均衡,并在维护操作期间不影响用户对数据库的连接访问。 - 在 v7.6.0 版本中,TiProxy 以实验特性发布。在 v8.0.0 版本中,TiProxy 完善了签名证书自动生成、监控等功能,并正式发布。 + 在 v8.0.0 中,TiProxy 成为正式功能,完善了签名证书自动生成、监控等功能。 - TiProxy 主要应用于以下场景: + TiProxy 的应用场景如下: * 在 TiDB 集群进行滚动重启、滚动升级、缩容等维护操作时,TiDB server 会发生变动,导致客户端与发生变化的 TiDB server 的连接中断。通过使用 TiProxy,可以在这些维护操作过程中平滑地将连接迁移至其他 TiDB server,从而让客户端不受影响。 * 所有客户端对 TiDB server 的连接都无法动态迁移至其他 TiDB server。当多个 TiDB server 的负载不均衡时,可能出现整体集群资源充足,但某些 TiDB server 资源耗尽导致延迟大幅度增加的情况。为解决此问题,TiProxy 提供连接动态迁移功能,在客户端无感的前提下,将连接从一个 TiDB server 迁移至其他 TiDB server,从而实现 TiDB 集群的负载均衡。 - TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 + TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 更多信息,请参考[用户文档](/tiproxy/tiproxy-overview.md)。 ### SQL 功能 -* 新增支持处理大量数据的 DML 类型(实验特性)[#50215](https://github.com/pingcap/tidb/issues/50215) @[ekexium](https://github.com/ekexium) **tw@Oreoxmt** +* 支持处理大量数据的 DML 类型(实验特性)[#50215](https://github.com/pingcap/tidb/issues/50215) @[ekexium](https://github.com/ekexium) **tw@Oreoxmt** - 在之前的 TiDB 版本中,所有的事务数据在提交之前,都保存在内存中。当处理大量数据时,事务所需的内存成为瓶颈,限制了 TiDB 可以处理的事务大小。TiDB 曾经发布了非事务 DML 功能,通过拆分 SQL 的方式尝试解决事务大小限制,但是功能存在较多限制,在实际使用时并不友好。 - - 在 v8.0.0 中,TiDB 新增支持处理大量数据的 DML 类型。这种 DML 类型在执行时,通过及时将数据写入 TiKV 的方式,避免将所有事务数据保存在内存中,从而实现对超过内存上限的大量数据的处理。该 DML 类型保证事务的完整性,并且使用和标准 DML 完全一致的语法。任何 TiDB 的合法 DML,都可以使用这种 DML 类型,以处理大数据量 DML 操作。 - - 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](https://github.com/pingcap/tidb/blob/master/docs/design/2024-01-09-pipelined-DML.md),只支持在自动提交事务中使用,并且引入变量 `tidb_dml_type` 控制是否使用该 DML 类型。目前,该功能作为实验特性发布。 + 在 TiDB v8.0.0 之前,所有事务数据在提交之前均存储在内存中。当处理大量数据时,事务所需的内存成为限制 TiDB 处理事务大小的瓶颈。虽然 TiDB 非事务 DML 功能通过拆分 SQL 语句的方式尝试解决事务大小限制,但该功能存在多种限制,在实际应用中的体验并不理想。 + + 从 v8.0.0 开始,TiDB 支持处理大量数据的 DML 类型。该 DML 类型在执行过程中将数据及时写入 TiKV,避免将所有事务数据持续存储在内存中,从而支持处理超过内存限制的大量数据。这种 DML 类型在保证事务完整性的同时,采用与标准 DML 相同的语法。所有合法的 TiDB DML 语句均可使用这种新的 DML 类型来执行大数据量的 DML 操作。 - 更多信息,请参考[用户文档](/system-variables.md#tidb_dml_type-从-v80-版本开始引入)。 + 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](https://github.com/pingcap/tidb/blob/master/docs/design/2024-01-09-pipelined-DML.md) 特性,仅支持在自动提交的事务中使用。你可以通过 [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) 系统变量控制是否启用该 DML 类型。 + + 更多信息,请参考[用户文档](/system-variables.md#tidb_dml_type-从-v800-版本开始引入)。 * TiDB 建表时,支持更多的表达式来设置列的默认值 (实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@qiancai** @@ -142,11 +142,11 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 -* "不可见索引 (invisible index)"能够在会话级设置可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** +* 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** - "[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)" 是不能够被优化器选择的索引。通常用在删除索引之前,如果不确定删除索引的操作是否会造成性能回退,可以暂时将该索引修改为不可见,万一需要恢复索引可立即修改回可见状态。 + 在优化器选择索引以优化查询执行时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 - 在 v8.0.0 中,如果将新引入的会话级变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,那么在该会话中执行的查询可以选择到"不可见索引"。利用这个能力,在添加新索引时,如果不确定索引的作用,则可以先将索引创建为不可见索引,通过修改会话变量后,在这个会话中对相关的查询语句进行测试,而不影响其他会话的行为。这个扩展改进能够提升性能调优的安全性,增强生产数据库的稳定性。 + 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中进行测试新索引的性能,而不影响其他会话。这一改进提高了进行性能调优的安全性,并有助于增强生产数据库的稳定性。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 @@ -162,20 +162,18 @@ TiDB 版本:8.0.0 ### 可观测性 -* 引入对索引使用情况的观测 [#49830](https://github.com/pingcap/tidb/issues/49830) @[YangKeao](https://github.com/YangKeao) **tw@Oreoxmt** +* 支持观测索引使用情况 [#49830](https://github.com/pingcap/tidb/issues/49830) @[YangKeao](https://github.com/YangKeao) **tw@Oreoxmt** + + 正确的索引设计是提升数据库性能的重要前提。TiDB v8.0.0 新增内存表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md),用于记录当前 TiDB 节点中所有索引的访问统计信息,包括: - 正确的索引设计是提升数据库性能的重要前提。TiDB 在 v8.0.0 新加入了内存表 [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md),记录每个 TiDB 节点上索引的使用情况,其中包括: * 扫描该索引的语句的累计执行次数 - * 累计在该索引中扫描的行数 + * 访问该索引时扫描的总行数 * 扫描索引时的选择率分布 - * 索引上次被选择的时间 - - 这些信息能够协助用户识别出没有被优化器选到的索引,以及过滤性很差的索引。另外,本次更新还加入了 MySQL 兼容的视图 [`sys.schema_unused_indexes`](/sys-schema.md),视图根据所有 TiDB 节点上的索引运行情况,列出节点启动后,所有没有被选择过的索引。 - - 需要注意的几点: - * 如果用户从 v8.0.0 之前的版本升级上来,`sys` 中的内容不会被自动创建,需要根据[文档]((/sys-schema.md))手动创建。 - * [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md) 只在内存中维护,重启 TiDB 节点后该节点的信息会丢失。 - * [`information_schema.tidb_index_usage`](/information-schema/information-schema-tidb-index-usage.md) 默认会被维护。可以通过修改配置项 [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) 或者变量[`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) 将其关闭。 + * 最近一次访问该索引的时间 + + 通过这些信息,你可以识别未被优化器使用的索引以及过滤效果不佳的索引,从而优化索引设计,提升数据库性能。 + + 此外,TiDB v8.0.0 新增与 MySQL 兼容的视图 [`sys.schema_unused_index`](/sys-schema.md),用于记录自 TiDB 上次启动以来未被使用的索引信息。对于从 v8.0.0 之前版本升级的集群,`sys` 中的内容不会自动创建。你可以参考 [`sys`](/sys-schema.md)手动创建。 更多信息,请参考[用户文档](/information-schema/information-schema-tidb-index-usage.md)。 From e1d5a98a27bd8db4a16860b8e3e6a0cf8522a692 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 7 Mar 2024 15:55:37 +0800 Subject: [PATCH 043/156] Apply suggestions from code review Co-authored-by: ekexium --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 71caf8765cfa..af75aa30fee0 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -116,7 +116,7 @@ TiDB 版本:8.0.0 在 TiDB v8.0.0 之前,所有事务数据在提交之前均存储在内存中。当处理大量数据时,事务所需的内存成为限制 TiDB 处理事务大小的瓶颈。虽然 TiDB 非事务 DML 功能通过拆分 SQL 语句的方式尝试解决事务大小限制,但该功能存在多种限制,在实际应用中的体验并不理想。 - 从 v8.0.0 开始,TiDB 支持处理大量数据的 DML 类型。该 DML 类型在执行过程中将数据及时写入 TiKV,避免将所有事务数据持续存储在内存中,从而支持处理超过内存限制的大量数据。这种 DML 类型在保证事务完整性的同时,采用与标准 DML 相同的语法。所有合法的 TiDB DML 语句均可使用这种新的 DML 类型来执行大数据量的 DML 操作。 + 从 v8.0.0 开始,TiDB 支持处理大量数据的 DML 类型。该 DML 类型在执行过程中将数据及时写入 TiKV,避免将所有事务数据持续存储在内存中,从而支持处理超过内存限制的大量数据。这种 DML 类型在保证事务完整性的同时,采用与标准 DML 相同的语法。`INSERT`、`UPDATE`、`REPLACE` 和 `DELETE` 语句均可使用这种新的 DML 类型来执行大数据量的 DML 操作。 支持处理大量数据的 DML 类型依赖于 [Pipelined DML](https://github.com/pingcap/tidb/blob/master/docs/design/2024-01-09-pipelined-DML.md) 特性,仅支持在自动提交的事务中使用。你可以通过 [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) 系统变量控制是否启用该 DML 类型。 From cd356a464261e38b2f11aa1d26a69274d612df66 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 11 Mar 2024 11:27:14 +0800 Subject: [PATCH 044/156] Update release-8.0.0.md add note for fd-1725 --- releases/release-8.0.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index af75aa30fee0..d336504ffe92 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -85,6 +85,14 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 +* 低精度 TSO 功能支持设定更新间隔 [#51081](https://github.com/pingcap/tidb/issues/51081) @[Tema](https://github.com/Tema) **tw@hfxsd** + + TiDB 的 [低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso) 使用定期更新的 TSO 作为事务时间戳,在可以容忍读到旧数据的情况下,通过牺牲一定的实时性, 降低小的只读事务获取 TSO 的开销,提升高并发读的能力。 + + 在 v8.0.0 之前,低精度 TSO 功能的 TSO 更新周期固定,无法根据实际业务需要进行调整。在 v8.0.0 版本中,TiDB 引入变量 `tidb_low_resolution_tso_update_interval` 控制低精度 TSO 功能更新 TSO 的周期。该功能在低精度 TSO 功能启用时有效。 + + 更多信息,请参考[用户文档](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入)。 + ### 稳定性 * 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** @@ -106,7 +114,7 @@ TiDB 版本:8.0.0 * 在 TiDB 集群进行滚动重启、滚动升级、缩容等维护操作时,TiDB server 会发生变动,导致客户端与发生变化的 TiDB server 的连接中断。通过使用 TiProxy,可以在这些维护操作过程中平滑地将连接迁移至其他 TiDB server,从而让客户端不受影响。 * 所有客户端对 TiDB server 的连接都无法动态迁移至其他 TiDB server。当多个 TiDB server 的负载不均衡时,可能出现整体集群资源充足,但某些 TiDB server 资源耗尽导致延迟大幅度增加的情况。为解决此问题,TiProxy 提供连接动态迁移功能,在客户端无感的前提下,将连接从一个 TiDB server 迁移至其他 TiDB server,从而实现 TiDB 集群的负载均衡。 - TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 + TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 更多信息,请参考[用户文档](/tiproxy/tiproxy-overview.md)。 From 1fb6aebd149945056cd3ddfa45d5a3700a0b9002 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 11 Mar 2024 11:58:33 +0800 Subject: [PATCH 045/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d336504ffe92..77d7bfe79672 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -114,7 +114,7 @@ TiDB 版本:8.0.0 * 在 TiDB 集群进行滚动重启、滚动升级、缩容等维护操作时,TiDB server 会发生变动,导致客户端与发生变化的 TiDB server 的连接中断。通过使用 TiProxy,可以在这些维护操作过程中平滑地将连接迁移至其他 TiDB server,从而让客户端不受影响。 * 所有客户端对 TiDB server 的连接都无法动态迁移至其他 TiDB server。当多个 TiDB server 的负载不均衡时,可能出现整体集群资源充足,但某些 TiDB server 资源耗尽导致延迟大幅度增加的情况。为解决此问题,TiProxy 提供连接动态迁移功能,在客户端无感的前提下,将连接从一个 TiDB server 迁移至其他 TiDB server,从而实现 TiDB 集群的负载均衡。 - TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 + TiProxy 已集成至 TiUP、TiDB Operator、TiDB Dashboard 等 TiDB 基本组件中,可以方便地进行配置、部署和运维。 更多信息,请参考[用户文档](/tiproxy/tiproxy-overview.md)。 From 470577d86f79bf8779022b9eddf5247463d7915f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Mar 2024 14:47:53 +0800 Subject: [PATCH 046/156] Apply suggestions from code review Co-authored-by: xhe Co-authored-by: cfzjywxk --- releases/release-8.0.0.md | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 77d7bfe79672..afe12db62f5f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -59,7 +59,7 @@ TiDB 版本:8.0.0 * 自动统计信息收集引入优先级队列 [#50132](https://github.com/pingcap/tidb/issues/50132) @[hi-rustin](https://github.com/hi-rustin) **tw@hfxsd** - 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新) 来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在过去的版本中,收集顺序是随机设置的,这可能造成更有收集价值的对象需要长时间等待才被更新,引发潜在的数据库性能回退。 + 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新)来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在过去的版本中,收集顺序是随机设置的,这可能造成更有收集价值的对象需要长时间等待才被更新,引发潜在的数据库性能回退。 从 v8.0.0 开始,自动统计信息收集会结合多种条件为对象动态设置优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等,健康度更低的对象也会倾向于排在队列前端。该增强提升了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,因此提升了数据库稳定性。 @@ -85,11 +85,11 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 -* 低精度 TSO 功能支持设定更新间隔 [#51081](https://github.com/pingcap/tidb/issues/51081) @[Tema](https://github.com/Tema) **tw@hfxsd** +* 支持设置低精度 TSO 的更新间隔 [#51081](https://github.com/pingcap/tidb/issues/51081) @[Tema](https://github.com/Tema) **tw@hfxsd** - TiDB 的 [低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso) 使用定期更新的 TSO 作为事务时间戳,在可以容忍读到旧数据的情况下,通过牺牲一定的实时性, 降低小的只读事务获取 TSO 的开销,提升高并发读的能力。 + TiDB 的[低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso)使用定期更新的 TSO 作为事务时间戳,在可以容忍读到旧数据的情况下,通过牺牲一定的实时性,降低小的只读事务获取 TSO 的开销,提升高并发读的能力。 - 在 v8.0.0 之前,低精度 TSO 功能的 TSO 更新周期固定,无法根据实际业务需要进行调整。在 v8.0.0 版本中,TiDB 引入变量 `tidb_low_resolution_tso_update_interval` 控制低精度 TSO 功能更新 TSO 的周期。该功能在低精度 TSO 功能启用时有效。 + 在 v8.0.0 之前,低精度 TSO 功能的 TSO 更新周期固定,无法根据实际业务需要进行调整。在 v8.0.0 版本中,TiDB 引入变量 `tidb_low_resolution_tso_update_interval` 来控制低精度 TSO 功能更新 TSO 的周期。该功能仅在低精度 TSO 功能启用时有效。 更多信息,请参考[用户文档](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入)。 @@ -97,7 +97,9 @@ TiDB 版本:8.0.0 * 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** - 在 v8.0.0 之前,每个 TiDB 节点都会缓存所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,仅缓存这些表的 schema 信息就会占用大量内存。从 v8.0.0 开始,引入了参数 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入),你可以设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 + 在 v8.0.0 之前,每个 TiDB 节点都会缓存所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,仅缓存这些表的 schema 信息就会占用大量内存。 + + 从 v8.0.0 开始,引入了参数 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入),你可以设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 Least Recently Used (LRU) 算法来缓存所需的表,有效减小 schema 信息占用的内存。 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 @@ -130,11 +132,11 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_dml_type-从-v800-版本开始引入)。 -* TiDB 建表时,支持更多的表达式来设置列的默认值 (实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@qiancai** +* TiDB 建表时,支持更多的表达式来设置列的默认值(实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@hfxsd** - 之前的版本建表时,列默认值只能为固定的字符串,数字,以及日期,而从 v8.0.0 版本开始,支持将部分表达式作为列的默认值,如将列的默认值设置为 UUID() ,从而来满足用户多样化的业务需求。 + 在 v8.0.0 之前,在建表时,列默认值只能为固定的字符串、数字、以及日期。从 v8.0.0 开始,支持使用部分表达式作为列的默认值,如将列的默认值设置为 `UUID()`,从而满足多样化的业务需求。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/data-type-default-values.md#表达式默认值)。 ### 数据库管理 @@ -160,13 +162,13 @@ TiDB 版本:8.0.0 * 支持将 general log 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** - general log 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。但是在过去的版本中,general log 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户并不友好。 + general log 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你可以通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。但是在过去的版本中,general log 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户不够友好。 - 在新版本中,通过把配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 设置为有效的文件名,TiDB 可以把 general log 写入指定的文件。和实例日志一样,general log 也同样遵循日志的轮询和保存策略。 + 从 v8.0.0 开始,你可以通过配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 设置文件名,TiDB 可以把 general log 写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。 - 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression) 设置为 `gzip`,轮询出的历史日志将自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 + 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。你可以将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression) 设置为 `gzip`,轮询出的历史日志将自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 - 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file)。 + 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file)。 ### 可观测性 @@ -201,6 +203,12 @@ TiDB 版本:8.0.0 ### 数据迁移 +* TiCDC 支持通过双向复制模式 (Bi-Directional Replication, BDR) 同步 DDL 语句 (GA) [#10301](https://github.com/pingcap/tiflow/issues/10301) [#48519](https://github.com/pingcap/tidb/issues/48519) @[okJiang](https://github.com/okJiang) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** + + TiDB v7.6.0 引入了通过双向复制模式同步 DDL 语句的功能。以前,TiCDC 不支持复制 DDL 语句,因此要使用 TiCDC 双向复制必须将 DDL 语句分别应用到两个 TiDB 集群。有了该特性,TiCDC 可以为一个集群分配 `PRIMARY` BDR role,并将该集群的 DDL 语句复制到下游集群。该功能在 v8.0.0 成为正式功能。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-bidirectional-replication.md)。 + * DM 支持使用用户提供的密钥对源和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 之前 DM 使用的是自带的一个固定秘钥,安全性较低。而从 8.0 版本开始,用户可以传入自定义的密钥文件,对上下游的数据库的密码进行加密和解密操作,也可以按需替换秘钥,提升了安全性。 @@ -254,9 +262,9 @@ TiDB 版本:8.0.0 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| | [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| -| [tidb_redact_log](/system-variables.md#) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为OFF、ON、marker,以支持记录信息明文、信息屏蔽、信息标记。当变量值为marker时,日志中的用户信息将被标记处理,可以在随后的查看中进行日志信息是否脱敏的处理 | +| [tidb_redact_log](/system-variables.md#) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | -| | | | +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | ### 配置文件参数 @@ -290,8 +298,6 @@ TiDB 版本:8.0.0 + TiKV - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - 强化 TSO 校验检测,提升使用不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** @@ -321,7 +327,6 @@ TiDB 版本:8.0.0 + TiDB Data Migration (DM) - `MariaDB` 主从复制的场景,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`,且 `Mariadb_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。 [#issue](链接) @[okJiang](https://github.com/okJiang) **tw@hfxsd** - - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiDB Lightning From 12087bd91e0520b78aa402f8842939b03a69a598 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 11 Mar 2024 16:12:32 +0800 Subject: [PATCH 047/156] add highlight --- releases/release-8.0.0.md | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index afe12db62f5f..a672781461b6 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -13,6 +13,62 @@ TiDB 版本:8.0.0 在 8.0.0 版本中,你可以获得以下关键特性: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryFeature/EnhancementDescription
Scalability and PerformanceDisaggregation of PD to improve scale (experimental) **tw@qiancai** PD (Placement Driver) has a lot of critical modules for the running of TiDB. Each module's resource consumption can increase as certain workloads scale, meaning they can each interfere with other functions in PD, ultimately impacting quality of service of the cluster. +By separating PD modules into separately-deployable services, their blast radii are massively mitigated as the cluster scales. Much larger clusters with much larger workloads are possible with this architecture.
用于处理更大事务的批量 DML 执行方式(实验特性)**tw@Oreoxmt** 大批量的 DML 任务,例如大规模的清理任务、连接或聚合,可能会消耗大量内存,并且在非常大的规模上受到限制。批量 DML (tidb_dml_type = "bulk") 是一种新的 DML 类型,用于更高效地处理大批量 DML 任务,同时提供事务保证并减轻 OOM 问题。该功能与用于数据加载的导入、加载和恢复操作不同。
Acceleration of cluster snapshot restore speed **tw@qiancai** An optimization to involve all TiKV nodes in the preparation step for cluster restores was introduced to leverage scale such that restore speeds for a cluster are much faster for larger sets of data on larger clusters. Real world tests exhibit restore acceleration of ~300% in slower cases.
Enhanced stability of a massive number of tables **tw@hfxsd** SaaS companies using TiDB as the system of record for their multi-tenant applications often need to store a substantial number of tables. In previous versions, handling table counts in the order of a million or more was feasible, but it had the potential to degrade the overall user experience. TiDB v8.0.0 improves the situation with the following enhancements: +
    +
  • - Introduce a new information schema caching system, incorporating a lazy-loading Least Recently Used (LRU) cache for table metadata and more efficiently managing schema version changes.
  • +
  • - Implement a priority queue for `auto analyze`, making the process less rigid and enhancing stability across a wider array of tables.
  • +
+
DB Operations and Observability支持观测索引使用情况 **tw@Oreoxmt** TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。
Data MigrationTiCDC supports replicating DDL statements in bi-directional replication (BDR) mode (GA) **tw@hfxsd** With this feature, TiCDC allows for a cluster to be assigned the `PRIMARY` BDR role, and enables the replication of DDL statements from that cluster to the downstream cluster.
TiCDC adds support for the Simple protocol **tw@lilin90** TiCDC introduces support for a new protocol, the Simple protocol. This protocol includes support for in-band schema tracking capabilities.
TiCDC adds support for the Debezium format protocol **tw@lilin90** TiCDC can now publish replication events to a Kafka sink using a protocol that generates Debezium style messages.
+ ## 功能详情 ### 可扩展性 From 8cfe2470f271bfa17f32cafc7f0eb29fd56137fa Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Mar 2024 20:19:21 +0800 Subject: [PATCH 048/156] Apply suggestions from code review --- releases/release-8.0.0.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index a672781461b6..366bfd496018 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -16,14 +16,14 @@ TiDB 版本:8.0.0 - - - + + + - + @@ -37,25 +37,25 @@ By separating PD modules into separately-deployable services, their blast radii - - + - + - - - + + + From 921f1c8fb521bdb5f86b717acef624514315f7be Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Mar 2024 20:22:15 +0800 Subject: [PATCH 049/156] Apply suggestions from code review --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 366bfd496018..4d39c31c19df 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -40,8 +40,8 @@ By separating PD modules into separately-deployable services, their blast radii @@ -54,7 +54,7 @@ By separating PD modules into separately-deployable services, their blast radii - + From 6c6385956b6c11ea843d2999009529997119a579 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Mar 2024 20:25:36 +0800 Subject: [PATCH 050/156] Apply suggestions from code review --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4d39c31c19df..f6ae9219eadd 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -41,7 +41,7 @@ By separating PD modules into separately-deployable services, their blast radii @@ -55,7 +55,7 @@ By separating PD modules into separately-deployable services, their blast radii - + From 7572ddd497a2939b16c2aa5114dc80d52331df4d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Mar 2024 22:20:27 +0800 Subject: [PATCH 051/156] Apply suggestions from code review --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index f6ae9219eadd..e97f43ed6f06 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -261,7 +261,7 @@ By separating PD modules into separately-deployable services, their blast radii * TiCDC 支持通过双向复制模式 (Bi-Directional Replication, BDR) 同步 DDL 语句 (GA) [#10301](https://github.com/pingcap/tiflow/issues/10301) [#48519](https://github.com/pingcap/tidb/issues/48519) @[okJiang](https://github.com/okJiang) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** - TiDB v7.6.0 引入了通过双向复制模式同步 DDL 语句的功能。以前,TiCDC 不支持复制 DDL 语句,因此要使用 TiCDC 双向复制必须将 DDL 语句分别应用到两个 TiDB 集群。有了该特性,TiCDC 可以为一个集群分配 `PRIMARY` BDR role,并将该集群的 DDL 语句复制到下游集群。该功能在 v8.0.0 成为正式功能。 + TiDB v7.6.0 引入了通过双向复制模式同步 DDL 语句的功能作为实验特性。以前,TiCDC 不支持复制 DDL 语句,因此要使用 TiCDC 双向复制必须将 DDL 语句分别应用到两个 TiDB 集群。有了该特性,TiCDC 可以为一个集群分配 `PRIMARY` BDR role,并将该集群的 DDL 语句复制到下游集群。该功能在 v8.0.0 成为正式功能。 更多信息,请参考[用户文档](/ticdc/ticdc-bidirectional-replication.md)。 @@ -382,7 +382,7 @@ By separating PD modules into separately-deployable services, their blast radii + TiDB Data Migration (DM) - - `MariaDB` 主从复制的场景,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`,且 `Mariadb_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。 [#issue](链接) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + - 在MariaDB 主从复制的场景中,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`、且 `MariaDB_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + TiDB Lightning From bfb7856f693be4d579ab6804124484c1d4f6fe37 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 11 Mar 2024 22:22:09 +0800 Subject: [PATCH 052/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e97f43ed6f06..0ec4f77266b9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -382,7 +382,7 @@ By separating PD modules into separately-deployable services, their blast radii + TiDB Data Migration (DM) - - 在MariaDB 主从复制的场景中,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`、且 `MariaDB_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + - 在 MariaDB 主从复制的场景中,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`、且 `MariaDB_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + TiDB Lightning From ea6c5214421965cf3b9f587a4ca9ddf090523295 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Mar 2024 08:24:26 +0800 Subject: [PATCH 053/156] Apply suggestions from code review --- releases/release-8.0.0.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 0ec4f77266b9..e91e406e5cd2 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -317,10 +317,11 @@ By separating PD modules into separately-deployable services, their blast radii | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| +| [`initial-scan-rate-limit``](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | +| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| -| [tidb_redact_log](/system-variables.md#) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | -| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | ### 配置文件参数 From f5db970601bc70ce74f554350ba328dbb68abe47 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Mar 2024 08:28:09 +0800 Subject: [PATCH 054/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e91e406e5cd2..a309f7938ce3 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -305,23 +305,19 @@ By separating PD modules into separately-deployable services, their blast radii * 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,编码后的索引键值 ingest 数据到 TiKV 时使用的是固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。**tw@hfxsd** -* 行为变更 2 - ### MySQL 兼容性 * `KEY` 分区类型支持分区字段列表为空的语句,具体行为和 MySQL 保持一致。**tw@hfxsd** -* 兼容性 2 - ### 系统变量 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| [`initial-scan-rate-limit``](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | -| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | -| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | -| [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| -| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | +| [`initial-scan-rate-limit``](/system-variables.md#initial-scan-rate-limit-new-in-v620) | Modified | Add a limit of `1MiB` as the minimum value. | +| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | Modified | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | Newly added | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | +| [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | Newly added | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| +| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | Newly added | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | ### 配置文件参数 @@ -333,15 +329,13 @@ By separating PD modules into separately-deployable services, their blast radii | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | | TiDB Lightning | `logical-import-batch-size` | 新增| 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 "96KiB",单位可以为 KB,KiB,MB,MiB 等存储单位 | | TiDB Lightning | `logical-import-batch-rows` | 新增| 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | + ## 离线包变更 ## 废弃功能 * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** * 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 -* 废弃功能 1 - -* 废弃功能 2 ## 改进提升 From a11e2c78cf54ba717c2f5dfbfe600510d1b77bde Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Mar 2024 08:29:42 +0800 Subject: [PATCH 055/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index a309f7938ce3..8f786215d0d8 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -313,11 +313,11 @@ By separating PD modules into separately-deployable services, their blast radii | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| [`initial-scan-rate-limit``](/system-variables.md#initial-scan-rate-limit-new-in-v620) | Modified | Add a limit of `1MiB` as the minimum value. | -| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | Modified | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | -| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | Newly added | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | -| [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | Newly added | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| -| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | Newly added | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | +| [`initial-scan-rate-limit``](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | +| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | +| [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| +| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | ### 配置文件参数 From 0221962fbbf20d037c532d79a1556bb0e00a95eb Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Mar 2024 09:32:10 +0800 Subject: [PATCH 056/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8f786215d0d8..389a2c1a378f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -313,9 +313,9 @@ By separating PD modules into separately-deployable services, their blast radii | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| [`initial-scan-rate-limit``](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | +| [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | -| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](system-variables#tidb_low_resolution_tso) 的间隔。 | +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的间隔。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | From fcf64b7f4829b53ef94b66ceaec3946526e8595c Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Mar 2024 11:34:13 +0800 Subject: [PATCH 057/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 389a2c1a378f..16b28e7bf7c9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -325,10 +325,10 @@ By separating PD modules into separately-deployable services, their blast radii | -------- | -------- | -------- | -------- | | TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | -| TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | -| TiDB Lightning | `logical-import-batch-size` | 新增| 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 "96KiB",单位可以为 KB,KiB,MB,MiB 等存储单位 | -| TiDB Lightning | `logical-import-batch-rows` | 新增| 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | +| TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | ## 离线包变更 From 4d88160833f8423675d39d37b0c221e58c067ed7 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 12 Mar 2024 13:49:09 +0800 Subject: [PATCH 058/156] remove description for "PITR Supports Backing Up Data Imported via Lightning Physical Mode" as this feature will be delivered in a future release --- releases/release-8.0.0.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 16b28e7bf7c9..d87763094c38 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -202,12 +202,6 @@ By separating PD modules into separately-deployable services, their blast radii 更多信息,请参考[用户文档](/br/backup-and-restore-storages.md#存储服务其他功能支持)。 -* PITR 支持备份恢复由 TiDB Lightning 物理模式导入的数据(实验特性)[#issue号](链接) @[BornChanger](https://github.com/BornChanger) **tw@qiancai** - - TiDB v8.0.0 版本之前,由于 Lightning 的物理导入模式会“重写历史”,导致 PITR 无法感知到被”重写的历史” ,因此无法对数据进行备份。用户需要在完成数据导入后执行一次全量备份。从 TiDB v8.0.0 版本起,PITR 通过对解析时间戳(ResolvedTs)和 `Ingest SST` 操作进行兼容性设计,使得通过 Lightning 的物理模式导入的数据可以被 PITR 正确的识别、备份和恢复。这项改进为客户提供了更加完善的数据保护和恢复方案。 - - 更多信息,请参考[用户文档](链接)。 - * 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** 在优化器选择索引以优化查询执行时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 From b443a81572bdb1465f3e67ba7a7c9176d0768207 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 12 Mar 2024 14:00:30 +0800 Subject: [PATCH 059/156] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d87763094c38..0badd355ed50 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -233,7 +233,7 @@ By separating PD modules into separately-deployable services, their blast radii 通过这些信息,你可以识别未被优化器使用的索引以及过滤效果不佳的索引,从而优化索引设计,提升数据库性能。 - 此外,TiDB v8.0.0 新增与 MySQL 兼容的视图 [`sys.schema_unused_index`](/sys-schema.md),用于记录自 TiDB 上次启动以来未被使用的索引信息。对于从 v8.0.0 之前版本升级的集群,`sys` 中的内容不会自动创建。你可以参考 [`sys`](/sys-schema.md)手动创建。 + 此外,TiDB v8.0.0 新增与 MySQL 兼容的视图 [`sys.schema_unused_index`](/sys-schema.md),用于记录自 TiDB 上次启动以来未被使用的索引信息。对于从 v8.0.0 之前版本升级的集群,`sys` 中的内容不会自动创建。你可以参考 [`sys`](/sys-schema.md) 手动创建。 更多信息,请参考[用户文档](/information-schema/information-schema-tidb-index-usage.md)。 From 26188367891237f9d0c7df10ff29c8a5e2c8096b Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 12 Mar 2024 14:27:10 +0800 Subject: [PATCH 060/156] compatibility changes: tidb_enable_collect_execution_info, tidb_dml_type, tidb_opt_use_invisible_indexes, instance.tidb_enable_collect_execution_info, system tables --- releases/release-8.0.0.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 0badd355ed50..bffdf88cb1c9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -308,15 +308,18 @@ By separating PD modules into separately-deployable services, their blast radii | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| | [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | +| [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的间隔。 | -| [`tidb_opt_use_invisible_indexes`](/system-variables.md#) | 新增 | 控制会话中是否能够选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为`ON`时,针对该会话执行的查询,优化能够使用[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)进行优化。| +| [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | +| TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | | TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | @@ -324,6 +327,11 @@ By separating PD modules into separately-deployable services, their blast radii | TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | +### 系统表 + +* 新增系统表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) 和 [`INFORMATION_SCHEMA.CLUSTER_TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md#cluster_tidb_index_usage) 用于记录 TiDB 节点中索引的访问统计信息。**tw@Oreoxmt** +* 新增系统数据库 [`sys`](/sys-schema.md) 和 [`sys.schema_unused_index`](/sys-schema.md#schema_unused_index) 视图,用于记录自 TiDB 上次启动以来未被使用的索引信息。**tw@Oreoxmt** + ## 离线包变更 ## 废弃功能 From 4f3209d72bbcd3f1fc8446a938bfc037002d7633 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 12 Mar 2024 16:06:40 +0800 Subject: [PATCH 061/156] Update release-8.0.0.md add note for 1566 --- releases/release-8.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index bffdf88cb1c9..beb6e5b3cbdb 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -194,6 +194,12 @@ By separating PD modules into separately-deployable services, their blast radii 更多信息,请参考[用户文档](/data-type-default-values.md#表达式默认值)。 +* 支持变量 `div_precision_increment` [#51501](https://github.com/pingcap/tidb/issues/51501) @[yibin87](https://github.com/yibin87) **tw@hfxsd** + + MySQL 8.0 版本增加了变量 `div_precision_increment` 用于设定除法 `/` 运算结果的小数位数。在 v8.0.0 之前,TiDB 不支持这个变量,实际进行除法运算时按照 4 位小数进行计算。从 v8.0.0 开始,TiDB 支持该变量,可以根据需要指定除法运算结果的小数位数。 + + 更多信息,请参考[用户文档](/system-variables.md#div_precision_increment-从-v800-版本开始引入)。 + ### 数据库管理 * PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** From dc200caf716023819322b116d9c5fce5c0236a30 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Mar 2024 16:09:58 +0800 Subject: [PATCH 062/156] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-8.0.0.md | 44 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index beb6e5b3cbdb..d5d847eea2b3 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -37,11 +37,11 @@ By separating PD modules into separately-deployable services, their blast radii - - + @@ -49,8 +49,6 @@ By separating PD modules into separately-deployable services, their blast radii - - @@ -115,9 +113,9 @@ By separating PD modules into separately-deployable services, their blast radii * 自动统计信息收集引入优先级队列 [#50132](https://github.com/pingcap/tidb/issues/50132) @[hi-rustin](https://github.com/hi-rustin) **tw@hfxsd** - 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新)来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在过去的版本中,收集顺序是随机设置的,这可能造成更有收集价值的对象需要长时间等待才被更新,引发潜在的数据库性能回退。 + 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新)来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在之前的版本中,这些对象的收集顺序是随机的,可能导致更需要更新的对象等待时间过长,从而引发潜在的数据库性能回退。 - 从 v8.0.0 开始,自动统计信息收集会结合多种条件为对象动态设置优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等,健康度更低的对象也会倾向于排在队列前端。该增强提升了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,因此提升了数据库稳定性。 + 从 v8.0.0 开始,自动统计信息收集引入了优先级队列,根据多种条件动态地为对象分配优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。健康度较低的对象也会优先考虑安排在队列前端。这一改进优化了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,进而提升了数据库稳定性。 更多信息,请参考[用户文档](/statistics.md#自动更新)。 @@ -134,28 +132,28 @@ By separating PD modules into separately-deployable services, their blast radii * 优化器增强对多值索引的支持 [#47759](https://github.com/pingcap/tidb/issues/47759) [#46539](https://github.com/pingcap/tidb/issues/46539) @[Arenatlx](https://github.com/Arenatlx) @[time-and-fate](https://github.com/time-and-fate) **tw@hfxsd** - TiDB 自 v6.6.0 开始引入[多值索引](/sql-statements/sql-statement-create-index.md#多值索引),提升对 JSON 数据类型的检索性能。在 v8.0.0 中,优化器增强了对多值索引的支持能力,在复杂使用场景下,能够正确识别和利用多值索引来优化查询。 + TiDB 自 v6.6.0 开始引入[多值索引](/sql-statements/sql-statement-create-index.md#多值索引),提升对 JSON 数据类型的检索性能。在 v8.0.0 中,优化器增强了对多值索引的支持能力,使其在复杂场景下能够正确识别和利用多值索引来优化查询。 - * 多值索引上的统计信息会被收集,并应用于优化器估算。当一条 SQL 可能选择到数个多值索引时,优化器可以识别开销更小的索引。 - * 当出现用 `OR` 连接的多个 `member of` 条件时,优化器能够为每个 DNF Item(`member of` 条件)匹配一个有效的 Index Partial Path 路径,并将多条路径以 Union 的方式综合起来组成 `Index Merge` 来做更高效的条件过滤和数据读取。 + * 优化器能够收集多值索引的统计信息,并利用这些信息来估算查询。当一条 SQL 可能选择到数个多值索引时,优化器可以识别开销更小的索引。 + * 在查询条件中使用 `OR` 连接多个 `member of` 条件时,优化器能够为每个 DNF Item(`member of` 条件)匹配一个有效的 Index Partial Path 路径,并通过 Union 操作将这些路径集合起来,形成一个 `Index Merge`,以实现更高效的条件过滤和数据读取。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 * 支持设置低精度 TSO 的更新间隔 [#51081](https://github.com/pingcap/tidb/issues/51081) @[Tema](https://github.com/Tema) **tw@hfxsd** - TiDB 的[低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso)使用定期更新的 TSO 作为事务时间戳,在可以容忍读到旧数据的情况下,通过牺牲一定的实时性,降低小的只读事务获取 TSO 的开销,提升高并发读的能力。 + TiDB 的[低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso)使用定期更新的 TSO 作为事务时间戳。在可以容忍读到旧数据的情况下,该功能通过牺牲一定的实时性,降低小的只读事务获取 TSO 的开销,从而提升高并发读的能力。 - 在 v8.0.0 之前,低精度 TSO 功能的 TSO 更新周期固定,无法根据实际业务需要进行调整。在 v8.0.0 版本中,TiDB 引入变量 `tidb_low_resolution_tso_update_interval` 来控制低精度 TSO 功能更新 TSO 的周期。该功能仅在低精度 TSO 功能启用时有效。 + 在 v8.0.0 之前,低精度 TSO 功能的 TSO 更新周期固定,无法根据实际业务需要进行调整。在 v8.0.0 中,TiDB 引入变量 `tidb_low_resolution_tso_update_interval` 来控制低精度 TSO 功能更新 TSO 的周期。该功能仅在低精度 TSO 功能启用时有效。 更多信息,请参考[用户文档](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入)。 ### 稳定性 -* 支持根据 LRU 算法缓存所需的 schema 信息来减少对 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** +* 支持根据 LRU 算法缓存所需的 schema 信息,以减少 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** - 在 v8.0.0 之前,每个 TiDB 节点都会缓存所有表的 schema 信息,一旦表的数量较多,如达到几十万的场景,仅缓存这些表的 schema 信息就会占用大量内存。 + 在 v8.0.0 之前,每个 TiDB 节点都会缓存所有表的 schema 信息。在表数量较多的情况下,例如高达几十万张表,仅缓存这些表的 schema 信息就会占用大量内存。 - 从 v8.0.0 开始,引入了参数 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入),你可以设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 Least Recently Used (LRU) 算法来缓存所需的表,有效减小 schema 信息占用的内存。 + 从 v8.0.0 开始,TiDB 引入 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) 系统变量,允许设置缓存 schema 信息所能使用的内存上限,从而避免占用过多的内存。开启该功能后,TiDB 将使用 Least Recently Used (LRU) 算法缓存所需的表,有效降低 schema 信息占用的内存。 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 @@ -188,9 +186,9 @@ By separating PD modules into separately-deployable services, their blast radii 更多信息,请参考[用户文档](/system-variables.md#tidb_dml_type-从-v800-版本开始引入)。 -* TiDB 建表时,支持更多的表达式来设置列的默认值(实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@hfxsd** +* 支持在 TiDB 建表时使用更多的表达式设置列的默认值(实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@hfxsd** - 在 v8.0.0 之前,在建表时,列默认值只能为固定的字符串、数字、以及日期。从 v8.0.0 开始,支持使用部分表达式作为列的默认值,如将列的默认值设置为 `UUID()`,从而满足多样化的业务需求。 + 在 v8.0.0 之前,建表时指定列的默认值仅限于固定的字符串、数字和日期。从 v8.0.0 开始,TiDB 支持使用部分表达式作为列的默认值,例如将列的默认值设置为 `UUID()`,从而满足多样化的业务需求。 更多信息,请参考[用户文档](/data-type-default-values.md#表达式默认值)。 @@ -218,11 +216,11 @@ By separating PD modules into separately-deployable services, their blast radii * 支持将 general log 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** - general log 是 MySQL 兼容的功能,开启后会记录数据库执行的全部 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你可以通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。但是在过去的版本中,general log 的内容只能和其他信息一起写入实例日志,对需要长期保存的用户不够友好。 + general log 是与 MySQL 兼容的功能,开启后能够记录数据库执行的所有 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你可以通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。在之前的版本中,general log 的内容只能和其他信息一起写入实例日志中,这对于需要长期保存日志的用户来说并不方便。 - 从 v8.0.0 开始,你可以通过配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 设置文件名,TiDB 可以把 general log 写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。 + 从 v8.0.0 开始,你可以通过配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 指定一个文件名,将 general log 单独写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。 - 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。你可以将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression) 设置为 `gzip`,轮询出的历史日志将自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 + 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。你可以将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression) 设置为 `gzip`,使得轮询出的历史日志自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file)。 @@ -303,7 +301,7 @@ By separating PD modules into separately-deployable services, their blast radii ### 行为变更 -* 在开启 `tidb_ddl_enable_fast_reorg` 实现索引加速功能时,编码后的索引键值 ingest 数据到 TiKV 时使用的是固定并发值 (`16`),无法根据下游 TiKV 的承载能力动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 调整并发。该参数默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能会比之前的版本有所降低。你可以根据集群的负载按需调整该参数。**tw@hfxsd** +* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 并发数,该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** ### MySQL 兼容性 @@ -385,7 +383,7 @@ By separating PD modules into separately-deployable services, their blast radii + TiDB Data Migration (DM) - - 在 MariaDB 主从复制的场景中,即 `MariaDB_主实例` -> `MariaDB_从实例` -> `DM` -> `TiDB` 的迁移场景,当 `gtid_strict_mode = off`、且 `MariaDB_从实例`的 GTID 不严格递增时(比如有业务数据在写 `MariaDB_从实例` ),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + - 在 MariaDB 主从复制的场景中,即 MariaDB 主实例 -> MariaDB 从实例 -> DM -> TiDB 的迁移场景,当 `gtid_strict_mode = off` 且 MariaDB 从实例的 GTID 不严格递增时(例如,有业务数据写入 MariaDB 从实例),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + TiDB Lightning From 96b0f6ee8edbe0fe8b40401c45066cade36107f1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 14 Mar 2024 17:30:40 +0800 Subject: [PATCH 063/156] Apply variable and parameter changes --- releases/release-8.0.0.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d5d847eea2b3..23fbd144765f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -316,6 +316,7 @@ By separating PD modules into separately-deployable services, their blast radii | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的间隔。 | +| [`tidb_enable_concurrent_hashagg_spill`]((/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入)) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | @@ -326,10 +327,15 @@ By separating PD modules into separately-deployable services, their blast radii | TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | | TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | | TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | +| TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | +| TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | -| TiDB Lightning | `duplicate-resolution` | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | | TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | +| Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | + ### 系统表 From 483966c2fe778fca0219a9f76ae87363d06f3e2a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 14 Mar 2024 17:36:00 +0800 Subject: [PATCH 064/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 23fbd144765f..ccd0da46f089 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -335,6 +335,8 @@ By separating PD modules into separately-deployable services, their blast radii | TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | +| TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | +| TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | ### 系统表 From 628d6f1029756232d6bc40b8e831fda81d2c5a99 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 14 Mar 2024 20:59:59 +0800 Subject: [PATCH 065/156] include a notice for redesign of baseline evolution. --- releases/release-8.0.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index ccd0da46f089..9f1c39ebed9c 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -350,6 +350,7 @@ By separating PD modules into separately-deployable services, their blast radii * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** * 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 +* [执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution) 计划在后续版本被重新设计,相关的变量和行为会发生变化。 ## 改进提升 From 91611e1b5a8cfc7ba7b7fe5b6c8421710f8ac9c1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 14 Mar 2024 22:02:50 +0800 Subject: [PATCH 066/156] Apply suggestions from code review --- releases/release-8.0.0.md | 45 +++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 9f1c39ebed9c..92645e253454 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -71,17 +71,22 @@ By separating PD modules into separately-deployable services, their blast radii ### 可扩展性 -从 v8.0.0 开始,PD 支持微服务部署模式 [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** +- PD 支持微服务模式 [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** -该模式可将 PD 的时间戳分配和集群调度功能拆分为独立的服务,单独部署,从而实现 PD 的性能扩展,在超大规模集群下解决 PD 性能瓶颈问题。我们通常建议当 PD 出现明显的性能瓶颈且无法升配的情况下,考虑使用该模式。 -当前支持以下两种服务独立部署 -- TSO 微服务:为整个集群提供单调递增的时间戳分配。 -- Scheduling 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 -每种微服务都以独立进程的方式部署,当相应服务设置的副本数量大于 1 时,提供主备的容灾模式。 + 从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 性能瓶颈问题。 -* 增强 Titan 引擎 [#issue号](链接) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** + - TSO 微服务:为整个集群提供单调递增的时间戳分配。 + - Scheduling 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 - TiDB v8.0.0 版本引入了 Titan 一系列的性能优化和功能增强,主要包括优化 GC 算法、默认开启字典压缩等功能。其中,我们调整了 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 的默认阈值,从 `32KB` 调整为 `?KB` ,进一步扩大 Titan 引擎的适用场景。此外,我们还允许用户动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 阈值配置,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 + 每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 + + 目前 PD 微服务仅支持通过 TiDB Operator 进行部署。当 PD 出现明显的性能瓶颈且无法升配的情况下,建议考虑使用该模式。 + + 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/dev/configure-a-tidb-cluster#部署-pd-微服务)。 + +* 增强 Titan 引擎 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** + + TiDB v8.0.0 版本针对 Titan 的易用性进行了增强,主要包括共享 blob cache 与 block cache,不需要再单独配置 blob cache。[`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 等配置支持动态修改,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 更多信息,请参考[用户文档](/storage-engine/titan-overview.md)。 @@ -263,17 +268,19 @@ By separating PD modules into separately-deployable services, their blast radii 更多信息,请参考[用户文档](/ticdc/ticdc-bidirectional-replication.md)。 -* DM 支持使用用户提供的密钥对源和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* DM 支持使用用户提供的密钥对源数据库和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 之前 DM 使用的是自带的一个固定秘钥,安全性较低。而从 8.0 版本开始,用户可以传入自定义的密钥文件,对上下游的数据库的密码进行加密和解密操作,也可以按需替换秘钥,提升了安全性。 + 在之前的版本中,DM 使用了一个内置的一个固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游的数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 -* Import into 功能增强,支持 Import into... from select 语法(实验特性) [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 支持 `IMPORT INTO ... FROM SELECT` 语法,增强 `IMPORT INTO` 功能(实验特性) [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 在一些大数据量的场景使用 insert into ... select,数据导入的性能较慢,而从 8.0 版本开始,支持用户使用 Import into... from select 来导入查询结果到目标表中,且导入的性能最高可达 insert into ... select 的 8 倍,大大缩短了把查询结果导入目标表的所需时间。此外,该功能还支持导入使用 [`AS OF TIMESTAMP`](/as-of-timestamp.md) 查询的历史数据。 + 在之前的 TiDB 版本中,将查询结果导入目标表只能通过 `INSERT INTO ... SELECT` 语句,但该语句在一些大数据量的场景中的导入效率较低。从 v8.0.0 开始,TiDB 新增支持通过 `IMPORT INTO ... FROM SELECT` 将 `SELECT` 的查询结果导入到一张空的 TiDB 目标表中,其性能最高可达 `INSERT INTO ... SELECT` 的 8 倍,可以大幅缩短导入所需的时间。 + + 此外,你还可以通过 `IMPORT INTO ... FROM SELECT` 导入使用 [`AS OF TIMESTAMP`](/as-of-timestamp.md) 查询的历史数据。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 * TiDB Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** @@ -281,11 +288,13 @@ By separating PD modules into separately-deployable services, their blast radii 更多信息,请参考[用户文档](链接)。 - * 全局排序功能成为正式功能 (GA),可提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** + * 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** - 原先 import into 任务调度到多个 TiDB 节点进行数据导入时,使用节点本地的磁盘对当前节点负责导入的数据进行本地局部排序,无法将所有节点要导入的数据进行全局排序,因此节点间的数据存在重叠时,在导入 TiKV 过程中, TiKV 需要执行较多的 compaction 操作,导致 TiKV 的稳定性和性能下降。而引入全局排序后,可将所有需要导入的数据进行全局排序后再导入 TiKV,数据全局有序,TiKV 也就无需执行 compaction 操作,稳定性以及写入性能都会有较大的提升。同时最高支持 40 TiB 的数据导入。 + 在 v7.4.0 以前,当使用[分布式执行框架](/tidb-distributed-execution-framework.md) 执行 `IMPORT INTO` 任务时,由于本地存储空间有限,TiDB 只能对部分数据进行局部排序后再导入到 TiKV。这导致了导入到 TiKV 的数据存在较多的重叠,需要 TiKV 在导入过程中执行额外的 compaction 操作,影响了 TiKV 的性能和稳定性。 - 更多信息,请参考[用户文档](链接)。 + 随着 v7.4.0 引入全局排序实验特性,TiDB 支持将需要导入的数据暂时存储在外部存储(如 Amazon S3)中进行全局排序后再导入到 TiKV 中,使 TiKV 无需在导入过程中执行 compaction 操作。全局排序在 v8.0.0 成为正式功能 (GA),可以降低 TiKV 对资源的额外消耗,显著提升 `IMPORT INTO` 的性能和稳定性。 + + 更多信息,请参考[用户文档](/tidb-global-sort.md)。 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** @@ -316,7 +325,7 @@ By separating PD modules into separately-deployable services, their blast radii | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的间隔。 | -| [`tidb_enable_concurrent_hashagg_spill`]((/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入)) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | +| [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | From 72a5e424660a68ce6780c8f97099dce17d1bb0cf Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 14 Mar 2024 22:04:53 +0800 Subject: [PATCH 067/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 92645e253454..57907eb0d5de 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -24,9 +24,8 @@ TiDB 版本:8.0.0 - - + + From 7373688859a2edde859915e1643a6dc1048e5893 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 14 Mar 2024 23:14:01 +0800 Subject: [PATCH 068/156] Apply suggestions from code review --- releases/release-8.0.0.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 57907eb0d5de..1be4b93152fe 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -25,7 +25,7 @@ TiDB 版本:8.0.0 - @@ -91,7 +91,6 @@ TiDB 版本:8.0.0 ### 性能 - * BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** 从 TiDB v8.0.0 起,快照恢复提速正式发布,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升约 10 倍。该功能充分利用了每个 TiKV 节点的所有资源,实现并行快速恢复。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 @@ -253,7 +252,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/16737)。 -* TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@qiancai** +* TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@hfxsd** TiDB 日志脱敏增强是基于对日志文件中 SQL 文本信息的数据进行标记,以便支持用户在查看时进行敏感数据的安全展示。用户可以更灵活自主地在展示环节控制是否对日志信息进行脱敏,以支持 TiDB 日志在不同场景下的安全使用,提升了客户使用日志脱敏能力的安全性和灵活性。要使用此功能请通过修改系统变量 `tidb_redact_log` 的值设置为 `marker`,此时 TiDB 的运行日志将对 SQL 文本进行标记,查看时将基于标记进行数据的安全展示,从而实现日志信息的保护。 @@ -269,7 +268,7 @@ TiDB 版本:8.0.0 * DM 支持使用用户提供的密钥对源数据库和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 在之前的版本中,DM 使用了一个内置的一个固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游的数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 + 在之前的版本中,DM 使用了一个内置的一个固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 @@ -287,7 +286,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 - * 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** +* 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** 在 v7.4.0 以前,当使用[分布式执行框架](/tidb-distributed-execution-framework.md) 执行 `IMPORT INTO` 任务时,由于本地存储空间有限,TiDB 只能对部分数据进行局部排序后再导入到 TiKV。这导致了导入到 TiKV 的数据存在较多的重叠,需要 TiKV 在导入过程中执行额外的 compaction 操作,影响了 TiKV 的性能和稳定性。 @@ -364,7 +363,7 @@ TiDB 版本:8.0.0 + TiDB - - 优化 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** + - 提升 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,提升数据落盘时取消查询的性能 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** @@ -372,8 +371,8 @@ TiDB 版本:8.0.0 + TiKV - - 强化 TSO 校验检测,提升使用不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** + - 强化 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** + - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** + PD From 2b24437f570a821bb8a81d1e5dfbb685793feb95 Mon Sep 17 00:00:00 2001 From: long0712 <87366891+ljun0712@users.noreply.github.com> Date: Fri, 15 Mar 2024 10:17:19 +0800 Subject: [PATCH 069/156] Update releases/release-8.0.0.md Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1be4b93152fe..383ad26c4125 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -246,11 +246,13 @@ TiDB 版本:8.0.0 ### 安全 -* TiKV 静态加密支持 GCP KMS [#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@qiancai** +* TiKV 静态加密支持 Google [Key Management Service (Cloud KMS)](https://cloud.google.com/docs/security/key-management-deep-dive?hl=zh-cn) [#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@qiancai** - TiKV 基于静态加密功能对存储的数据进行加密,确保数据的安全性。静态加密的安全核心点在于密钥管理,此次在静态加密的密钥管理类型中引入了对 GCP KMS 的支持。TiKV 静态加密支持 GCP KMS 可以帮助用户构建基于 GCP KMS 的静态加密能力,可以保证用户数据的安全性。要是用此功能请完成 TiKV 配置文件的 `[security.encryption.master-key]` 部分的内容,即正确实现 TiKV 与 GCP KMS的关联。 + TiKV 通过静态加密功能对存储的数据进行加密,以确保数据的安全性。静态加密的安全核心点在于密钥管理。从 v8.0.0 起,你可以通过 Google Cloud KMS 管理 TiKV 的主密钥,构建基于 Cloud KMS 的静态加密能力,从而提高用户数据的安全性。 + + 要启用基于 Google Cloud KMS 的静态加密,你需要在 Google Cloud 上创建一个密钥,然后在 TiKV 配置文件中添加 `[security.encryption.master-key]` 部分的配置。 - 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/16737)。 + 更多信息,请参考[用户文档](/encryption-at-rest.md#tikv-静态加密)。 * TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@hfxsd** From fb1b5cd17269069c65f05cfdddf9fcd45badccc9 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Mar 2024 10:38:43 +0800 Subject: [PATCH 070/156] Apply suggestions from code review Co-authored-by: Lilian Lee --- releases/release-8.0.0.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 383ad26c4125..7e2f22a33e38 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -120,7 +120,7 @@ TiDB 版本:8.0.0 从 v8.0.0 开始,自动统计信息收集引入了优先级队列,根据多种条件动态地为对象分配优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。健康度较低的对象也会优先考虑安排在队列前端。这一改进优化了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,进而提升了数据库稳定性。 - 更多信息,请参考[用户文档](/statistics.md#自动更新)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入)。 * 解除执行计划缓存的部分限制 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) @[qw4990](https://github.com/qw4990) **tw@hfxsd** @@ -195,9 +195,9 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/data-type-default-values.md#表达式默认值)。 -* 支持变量 `div_precision_increment` [#51501](https://github.com/pingcap/tidb/issues/51501) @[yibin87](https://github.com/yibin87) **tw@hfxsd** +* 支持系统变量 `div_precision_increment` [#51501](https://github.com/pingcap/tidb/issues/51501) @[yibin87](https://github.com/yibin87) **tw@hfxsd** - MySQL 8.0 版本增加了变量 `div_precision_increment` 用于设定除法 `/` 运算结果的小数位数。在 v8.0.0 之前,TiDB 不支持这个变量,实际进行除法运算时按照 4 位小数进行计算。从 v8.0.0 开始,TiDB 支持该变量,可以根据需要指定除法运算结果的小数位数。 + MySQL 8.0 增加了变量 `div_precision_increment`,用于指定除法 `/` 运算结果增加的小数位数。在 v8.0.0 之前,TiDB 不支持该变量,而是按照 4 位小数进行除法计算。从 v8.0.0 开始,TiDB 支持该变量,你可以根据需要指定除法运算结果增加的小数位数。 更多信息,请参考[用户文档](/system-variables.md#div_precision_increment-从-v800-版本开始引入)。 @@ -318,24 +318,29 @@ TiDB 版本:8.0.0 ### 系统变量 -| 变量名 | 修改类型(包括新增/修改/删除) | 描述 | +| 变量名 | 修改类型(包括新增/修改/删除/更名) | 描述 | |--------|------------------------------|------| | [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | +| [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定除法 `/` 运算结果的小数位数。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | -| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的间隔。 | +| [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | +| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 TiDB 加速建表执行 DDL 语句。 | +| [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制 load binding 的超时时间。当 load binding 的执行时间超过该值时,会停止加载。 | +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | | [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| -| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | +| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | -| TiDB | [`log.general-log-file`]() | 新增 | 指定 `General Query Log` 的保存文件。默认为空,`General Query Log` 将会写入实例文件。 | -| TiDB | [`log.file.compression`]() | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | +| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#tidb_enable_collect_execution_info-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | +| TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | From 883fc2c1c6ae97373ce09d2cd980c2f5fb539b34 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Mar 2024 10:46:50 +0800 Subject: [PATCH 071/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7e2f22a33e38..048ab15efec9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -339,9 +339,9 @@ TiDB 版本:8.0.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | -| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#tidb_enable_collect_execution_info-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | -| TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | +| TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | +| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#tidb_enable_collect_execution_info-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | From 4209c292d0801826649c724dc6a1d5f89fc1f794 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Mar 2024 14:39:40 +0800 Subject: [PATCH 072/156] Apply suggestions from code review --- releases/release-8.0.0.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 048ab15efec9..1add189763dc 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -320,10 +320,11 @@ TiDB 版本:8.0.0 | 变量名 | 修改类型(包括新增/修改/删除/更名) | 描述 | |--------|------------------------------|------| -| [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值`1MiB` 的限制。 | +| `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该参数更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) 。 | +| [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值 `1MiB` 的限制。 | | [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | -| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`、`MARKER`,以分别支持记录信息明文、信息屏蔽、信息标记。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | | [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定除法 `/` 运算结果的小数位数。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | From 689d8ff48f75dd5133bc70f9b4087900d882e5f6 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Fri, 15 Mar 2024 14:51:24 +0800 Subject: [PATCH 073/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1add189763dc..045a6209b1c2 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -320,38 +320,38 @@ TiDB 版本:8.0.0 | 变量名 | 修改类型(包括新增/修改/删除/更名) | 描述 | |--------|------------------------------|------| +| [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该参数更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) 。 | | [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值 `1MiB` 的限制。 | -| [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | | [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定除法 `/` 运算结果的小数位数。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | -| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 TiDB 加速建表执行 DDL 语句。 | +| [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | +| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 TiDB 加速建表执行 DDL 语句。 | | [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制 load binding 的超时时间。当 load binding 的执行时间超过该值时,会停止加载。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | -| [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| -| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | +| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | +| TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | | TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | -| TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | -| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#tidb_enable_collect_execution_info-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | +| TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | +| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#tidb_enable_collect_execution_info-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | -| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | -| TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | -| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | -| TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | -| Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | -| TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | +| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | +| TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | +| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | | TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | +| TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | ### 系统表 From 1576bb3740bb73fbc6e9be9f0150a3c6e2b102c6 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 15 Mar 2024 17:18:38 +0800 Subject: [PATCH 074/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 045a6209b1c2..85ccc841bdd3 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -342,7 +342,7 @@ TiDB 版本:8.0.0 | TiDB | [`instance.tidb_enable_collect_execution_info`](/tidb-configuration-file.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `true`。 | | TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | | TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | -| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#tidb_enable_collect_execution_info-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | +| TiDB | [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | From 0043586097d0236e17dc4470521aa3278820adf6 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 15 Mar 2024 18:23:12 +0800 Subject: [PATCH 075/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 85ccc841bdd3..9ebfc67cb37f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -343,6 +343,7 @@ TiDB 版本:8.0.0 | TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | | TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB | [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | +| TiDB | [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) | 新增 | 控制是否使用 replica selector v2 版本,默认值为 `true`。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | From 9947d488f1a260a61246ab0d77cc7da73c235b7f Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 15 Mar 2024 18:29:38 +0800 Subject: [PATCH 076/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 9ebfc67cb37f..17432b459f7f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -382,7 +382,7 @@ TiDB 版本:8.0.0 - 强化 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** - - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** + - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响。可通过 [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) 禁用该优化 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** + PD From 73e47594ed143e0e293fcf43a8cbada4154741be Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Sat, 16 Mar 2024 15:11:02 +0800 Subject: [PATCH 077/156] Apply suggestions from code review --- releases/release-8.0.0.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 17432b459f7f..8352564aa5af 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -81,13 +81,14 @@ TiDB 版本:8.0.0 目前 PD 微服务仅支持通过 TiDB Operator 进行部署。当 PD 出现明显的性能瓶颈且无法升配的情况下,建议考虑使用该模式。 - 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/dev/configure-a-tidb-cluster#部署-pd-微服务)。 + 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/dev/pd-microservices)。 -* 增强 Titan 引擎 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** +* 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** - TiDB v8.0.0 版本针对 Titan 的易用性进行了增强,主要包括共享 blob cache 与 block cache,不需要再单独配置 blob cache。[`min-blob-size`](/tikv-configuration-file.md#min-blob-size) 等配置支持动态修改,以提升用户使用 Titan 引擎时的性能和灵活性。这些改进和功能增强将为用户提供更加稳定和高效的数据库服务。 + - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 + - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升用户使用 Titan 引擎时的性能和灵活性。 - 更多信息,请参考[用户文档](/storage-engine/titan-overview.md)。 + 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 ### 性能 From ce056fb838a9765673814d67a7ab72f5b74d5faf Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 18 Mar 2024 10:28:33 +0800 Subject: [PATCH 078/156] Apply suggestions from code review Co-authored-by: Lilian Lee Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8352564aa5af..399a7aab6c58 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -56,12 +56,12 @@ TiDB 版本:8.0.0 - - + + - - + +
CategoryFeature/EnhancementDescription分类功能/增强描述
Scalability and Performance可扩展性与性能 Disaggregation of PD to improve scale (experimental) **tw@qiancai** PD (Placement Driver) has a lot of critical modules for the running of TiDB. Each module's resource consumption can increase as certain workloads scale, meaning they can each interfere with other functions in PD, ultimately impacting quality of service of the cluster. By separating PD modules into separately-deployable services, their blast radii are massively mitigated as the cluster scales. Much larger clusters with much larger workloads are possible with this architecture.An optimization to involve all TiKV nodes in the preparation step for cluster restores was introduced to leverage scale such that restore speeds for a cluster are much faster for larger sets of data on larger clusters. Real world tests exhibit restore acceleration of ~300% in slower cases.
Enhanced stability of a massive number of tables **tw@hfxsd** SaaS companies using TiDB as the system of record for their multi-tenant applications often need to store a substantial number of tables. In previous versions, handling table counts in the order of a million or more was feasible, but it had the potential to degrade the overall user experience. TiDB v8.0.0 improves the situation with the following enhancements: + 增强了有大量表时缓存 schema 信息的稳定性**tw@hfxsd** 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,虽然支持处理百万或更大数量级的表,但有可能降低用户体验。TiDB v8.0.0 通过以下增强功能改善了这一状况:
    -
  • - Introduce a new information schema caching system, incorporating a lazy-loading Least Recently Used (LRU) cache for table metadata and more efficiently managing schema version changes.
  • -
  • - Implement a priority queue for `auto analyze`, making the process less rigid and enhancing stability across a wider array of tables.
  • +
  • - 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • +
  • - 在 `auto analyze` 中支持配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
DB Operations and Observability数据库管理与可观测性 支持观测索引使用情况 **tw@Oreoxmt** TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。
Data MigrationTiCDC supports replicating DDL statements in bi-directional replication (BDR) mode (GA) **tw@hfxsd** With this feature, TiCDC allows for a cluster to be assigned the `PRIMARY` BDR role, and enables the replication of DDL statements from that cluster to the downstream cluster.数据迁移TiCDC 支持在双向复制 (Bidirectional replication, BDR) 模式下同步 DDL 语句 (GA) **tw@hfxsd** TiCDC 支持将集群指定为 `PRIMARY` BDR role,并且可以将 DDL 语句从该集群同步到下游集群。
增强了有大量表时缓存 schema 信息的稳定性**tw@hfxsd** 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,虽然支持处理百万或更大数量级的表,但有可能降低用户体验。TiDB v8.0.0 通过以下增强功能改善了这一状况:
    -
  • - 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • -
  • - 在 `auto analyze` 中支持配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
  • +
  • - 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • +
  • - 在 `auto analyze` 中支持配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
数据迁移TiCDC 支持在双向复制 (Bidirectional replication, BDR) 模式下同步 DDL 语句 (GA) **tw@hfxsd** TiCDC 支持在双向复制 (Bidirectional replication, BDR) 模式下同步 DDL 语句 (GA) **tw@hfxsd** TiCDC 支持将集群指定为 `PRIMARY` BDR role,并且可以将 DDL 语句从该集群同步到下游集群。
对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,虽然支持处理百万或更大数量级的表,但有可能降低用户体验。TiDB v8.0.0 通过以下增强功能改善了这一状况:
  • - 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • -
  • - 在 `auto analyze` 中支持配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
  • +
  • - 在 auto analyze 中支持配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
数据迁移 TiCDC 支持在双向复制 (Bidirectional replication, BDR) 模式下同步 DDL 语句 (GA) **tw@hfxsd** TiCDC 支持将集群指定为 `PRIMARY` BDR role,并且可以将 DDL 语句从该集群同步到下游集群。TiCDC 支持将集群指定为 PRIMARY BDR role,并且可以将 DDL 语句从该集群同步到下游集群。
An optimization to involve all TiKV nodes in the preparation step for cluster restores was introduced to leverage scale such that restore speeds for a cluster are much faster for larger sets of data on larger clusters. Real world tests exhibit restore acceleration of ~300% in slower cases.
增强了有大量表时缓存 schema 信息的稳定性**tw@hfxsd** 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,虽然支持处理百万或更大数量级的表,但有可能降低用户体验。TiDB v8.0.0 通过以下增强功能改善了这一状况: + 增强在有大量表时缓存 schema 信息的稳定性**tw@hfxsd** 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,尽管支持处理百万级或更大数量的表,但可能会影响用户体验。TiDB v8.0.0 通过以下增强功能改善了这一问题:
    -
  • - 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • -
  • - 在 auto analyze 中支持配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
  • +
  • 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • +
  • 支持在 auto analyze 中配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
数据库管理与可观测性 支持观测索引使用情况 **tw@Oreoxmt** TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。
数据迁移
可扩展性与性能Disaggregation of PD to improve scale (experimental) **tw@qiancai** PD (Placement Driver) has a lot of critical modules for the running of TiDB. Each module's resource consumption can increase as certain workloads scale, meaning they can each interfere with other functions in PD, ultimately impacting quality of service of the cluster. -By separating PD modules into separately-deployable services, their blast radii are massively mitigated as the cluster scales. Much larger clusters with much larger workloads are possible with this architecture.支持拆分 PD 功能为微服务,提高可扩展性(实验特性)**tw@qiancai** Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各个模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。
用于处理更大事务的批量 DML 执行方式(实验特性)**tw@Oreoxmt**
可扩展性与性能 支持拆分 PD 功能为微服务,提高可扩展性(实验特性)**tw@qiancai** Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各个模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。 + Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。
用于处理更大事务的批量 DML 执行方式(实验特性)**tw@Oreoxmt**
TiCDC adds support for the Simple protocol **tw@lilin90** TiCDC introduces support for a new protocol, the Simple protocol. This protocol includes support for in-band schema tracking capabilities.TiCDC 支持 Simple 协议 **tw@lilin90** TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪功能。
TiCDC adds support for the Debezium format protocol **tw@lilin90** TiCDC can now publish replication events to a Kafka sink using a protocol that generates Debezium style messages.TiCDC 支持 Debezium 协议 **tw@lilin90** TiCDC 现在可以使用生成 Debezium 格式消息的协议向 Kafka sink 发布复制事件。
@@ -262,7 +262,17 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](链接)。 ### 数据迁移 +* TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) **tw@lilin90** + TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪 (in-band schema tracking)。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-simple-protocol.md)。 + +* TiCDC 支持 Debezium 协议 [#1799](https://github.com/pingcap/tiflow/issues/1799) @[breezewish](https://github.com/breezewish) **tw@lilin90** + + TiCDC 现在可以使用一种生成 Debezium 格式的事件消息的协议,将复制事件发布到 Kafka sink。这有助于简化那些当前使用 Debezium 从 MySQL 拉取数据进行下游处理的用户从 MySQL 迁移到 TiDB 的过程。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-debezium.md)。 * TiCDC 支持通过双向复制模式 (Bi-Directional Replication, BDR) 同步 DDL 语句 (GA) [#10301](https://github.com/pingcap/tiflow/issues/10301) [#48519](https://github.com/pingcap/tidb/issues/48519) @[okJiang](https://github.com/okJiang) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** TiDB v7.6.0 引入了通过双向复制模式同步 DDL 语句的功能作为实验特性。以前,TiCDC 不支持复制 DDL 语句,因此要使用 TiCDC 双向复制必须将 DDL 语句分别应用到两个 TiDB 集群。有了该特性,TiCDC 可以为一个集群分配 `PRIMARY` BDR role,并将该集群的 DDL 语句复制到下游集群。该功能在 v8.0.0 成为正式功能。 @@ -374,10 +384,10 @@ TiDB 版本:8.0.0 + TiDB - 提升 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - - 优化数据落盘功能的退出机制,提升数据落盘时取消查询的性能 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** + - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** - - Import into SQL 功能增强,原先只有在一个导入任务运行完成后才能提交第二个任务,现在可以同时提交 16 个 import into 的任务,大大提升导入的性能,同时方便用户批量导入数据到所需的目标表,提升数据导入效率。 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + TiKV From 632e9d166b70f02a7a1adb625c0809f1f3821467 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 18 Mar 2024 11:13:08 +0800 Subject: [PATCH 079/156] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 399a7aab6c58..e64142bdc33f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -210,7 +210,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/br/backup-and-restore-storages.md#存储服务其他功能支持)。 -* 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#issue号](链接) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** +* 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#50653](https://github.com/pingcap/tidb/issues/50653) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** 在优化器选择索引以优化查询执行时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 From 3a214f1a499b6a4d1898f9d461710b1336fe9a2e Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 19 Mar 2024 10:39:32 +0800 Subject: [PATCH 080/156] Update releases/release-8.0.0.md Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e64142bdc33f..d2ebd51e02f2 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -295,7 +295,7 @@ TiDB 版本:8.0.0 * TiDB Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** - 原先 TiDB Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时也有一套冲突策略,同时物理导入模式还有一套前置冲突策略,导致配置复杂。从 v8.0.0 开始,将这三种冲突策略合并成了一套,简化了配置操作。同时在物理导入模式下,还首次引入了通过 `replace` 的方式处理导入过程中冲突的数据,遇到主键或唯一键冲突的数据时,保留最新的数据、覆盖旧的数据。最新数据的定义取决于 TiDB Lightning 内部机制。 + 原先 TiDB Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时有两套冲突策略,不易理解和配置。从 v8.0.0 开始,将这三种冲突策略合并成了一套,简化了配置操作。同时在物理导入模式下,还首次引入了通过 `replace` 的方式处理导入过程中冲突的数据,遇到主键或唯一键冲突的数据时,保留最新的数据、覆盖旧的数据。 更多信息,请参考[用户文档](链接)。 From 9ebe2120dbb75ca23090a5ebaa4f14341cdbcb3c Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 19 Mar 2024 15:21:23 +0800 Subject: [PATCH 081/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d2ebd51e02f2..8a01c307aeb7 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -86,7 +86,7 @@ TiDB 版本:8.0.0 * 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 - - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升用户使用 Titan 引擎时的性能和灵活性。 + - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升使用 Titan 引擎时的性能和灵活性。 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 @@ -119,7 +119,7 @@ TiDB 版本:8.0.0 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新)来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在之前的版本中,这些对象的收集顺序是随机的,可能导致更需要更新的对象等待时间过长,从而引发潜在的数据库性能回退。 - 从 v8.0.0 开始,自动统计信息收集引入了优先级队列,根据多种条件动态地为对象分配优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。健康度较低的对象也会优先考虑安排在队列前端。这一改进优化了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,进而提升了数据库稳定性。 + 从 v8.0.0 开始,自动统计信息收集引入了优先级队列,根据多种条件动态地为对象分配优先级,确保更有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。同时,TiDB 也会优先处理那些健康度较低的表,将它们安排在队列的前端。这一改进优化了收集顺序的合理性,能减少一部分统计信息过旧引发的性能问题,进而提升了数据库稳定性。 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入)。 @@ -128,7 +128,7 @@ TiDB 版本:8.0.0 TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),能够有效降低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制,含有以下内容的执行计划均能够被缓存: - [分区表](/partitioned-table.md) - - [生成列](/generated-columns.md),包含依赖生成列的对象(比如[多值索引](/choose-index.md)) + - [生成列](/generated-columns.md),包含依赖生成列的对象(比如[多值索引](/choose-index.md#多值索引与执行计划缓存)) 该增强扩展了执行计划缓存的使用场景,提升了复杂场景下数据库的整体性能。 @@ -222,11 +222,11 @@ TiDB 版本:8.0.0 general log 是与 MySQL 兼容的功能,开启后能够记录数据库执行的所有 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你可以通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。在之前的版本中,general log 的内容只能和其他信息一起写入实例日志中,这对于需要长期保存日志的用户来说并不方便。 - 从 v8.0.0 开始,你可以通过配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file) 指定一个文件名,将 general log 单独写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。 + 从 v8.0.0 开始,你可以通过配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) 指定一个文件名,将 general log 单独写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。 - 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。你可以将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression) 设置为 `gzip`,使得轮询出的历史日志自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 + 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。你可以将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) 设置为 `gzip`,使得轮询出的历史日志自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 - 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file)。 + 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入)。 ### 可观测性 @@ -293,11 +293,13 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 -* TiDB Lightning 冲突策略简化,同时支持 Replace 的方式处理冲突的数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** +* TiDB Lightning 简化冲突处理策略,同时支持以 "replace" 方式处理冲突数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** - 原先 TiDB Lightning 逻辑导入模式时有一套冲突处理策略,物理导入模式时有两套冲突策略,不易理解和配置。从 v8.0.0 开始,将这三种冲突策略合并成了一套,简化了配置操作。同时在物理导入模式下,还首次引入了通过 `replace` 的方式处理导入过程中冲突的数据,遇到主键或唯一键冲突的数据时,保留最新的数据、覆盖旧的数据。 + 在之前的版本中,TiDB Lightning 逻辑导入模式有一套[数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md),物理导入模式时有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 + + 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略,并简化了该参数的配置。此外,在物理导入模式下,当导入遇到主键或唯一键冲突的数据时,`replace` 策略支持保留最新的数据、覆盖旧的数据。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](tidb-lightning/tidb-lightning-configuration.md)。 * 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** @@ -333,15 +335,14 @@ TiDB 版本:8.0.0 |--------|------------------------------|------| | [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该参数更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) 。 | -| [`initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值 `1MiB` 的限制。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | -| [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定除法 `/` 运算结果的小数位数。 | +| [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定使用运算符 `/` 执行除法操作时,结果增加的小数位数。该功能与 MySQL 保持一致。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | | [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 TiDB 加速建表执行 DDL 语句。 | -| [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制 load binding 的超时时间。当 load binding 的执行时间超过该值时,会停止加载。 | +| [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制加载 binding 的超时时间。当加载 binding 的执行时间超过该值时,会停止加载。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | @@ -355,6 +356,7 @@ TiDB 版本:8.0.0 | TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB | [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | | TiDB | [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) | 新增 | 控制是否使用 replica selector v2 版本,默认值为 `true`。 | +| TiKV | [`log-backup.initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值为 `1MiB` 的限制。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | From 177f42d7b083f6c021bf0be8dab97a49bb7314ca Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:08:09 +0800 Subject: [PATCH 082/156] add dup --- releases/release-8.0.0.md | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8a01c307aeb7..a17abc73c6fe 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -390,6 +390,7 @@ TiDB 版本:8.0.0 - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** + - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) + TiKV @@ -406,6 +407,7 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.6.0.md > 改进提升> TiFlash - 支持在存算分离架构下通过合并相同数据的读取操作,提升多并发下的数据扫描性能 [#6834](https://github.com/pingcap/tiflash/issues/6834) @[JinheLin](https://github.com/JinheLin) + Tools @@ -413,11 +415,16 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) + - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) + - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 在日志备份过程中,增加了在日志和监控指标中打印影响 global checkpoint 推进的最慢的 Region 的信息 [#51046](https://github.com/pingcap/tidb/issues/51046) @[YuJuncen](https://github.com/YuJuncen) + - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 提升了 `RESTORE` 语句在大数据量表场景下的建表性能 [#48301](https://github.com/pingcap/tidb/issues/48301) @[Leavrth](https://github.com/Leavrth) + TiCDC - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 改进提升> Tools> TiCDC - 支持[查询 changefeed 的下游同步状态](https://docs.pingcap.com/zh/tidb/v7.5/ticdc-open-api-v2#查询特定同步任务是否完成),以确认 TiCDC 是否已将所接收到的上游变更完全同步到下游 [#10289](https://github.com/pingcap/tiflow/issues/10289) @[hongyunyan](https://github.com/hongyunyan) + TiDB Data Migration (DM) @@ -439,21 +446,52 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复查询使用 `NATURAL JOIN` 时可能报错 `Column ... in from clause is ambiguous` 的问题 [#32044](https://github.com/pingcap/tidb/issues/32044) @[AilinKid](https://github.com/AilinKid) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 TiDB 错误地消除 `group by` 中的常量值导致查询结果出错的问题 [#38756](https://github.com/pingcap/tidb/issues/38756) @[hi-rustin](https://github.com/hi-rustin) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 `LEADING` hint 在 `UNION ALL` 语句中无法生效的问题 [#50067](https://github.com/pingcap/tidb/issues/50067) @[hawkingrei](https://github.com/hawkingrei) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 `BIT` 类型的列在参与一些函数计算时,可能会因为 decode 失败导致查询出错的问题 [#49566](https://github.com/pingcap/tidb/issues/49566) [#50850](https://github.com/pingcap/tidb/issues/50850) [#50855](https://github.com/pingcap/tidb/issues/50855) @[jiyfhust](https://github.com/jiyfhust) + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复通过 `tiup cluster upgrade/start` 方式进行滚动升级时,与 PD 交互出现问题可能导致 TiDB panic 的问题 [#50152](https://github.com/pingcap/tidb/issues/50152) @[zimulala](https://github.com/zimulala) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复执行包含 `ORDER BY` 的 `UNIQUE` 索引点查时可能报错的问题 [#49920](https://github.com/pingcap/tidb/issues/49920) @[jackysp](https://github.com/jackysp) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复常量传播在处理 `ENUM` 或 `SET` 类型时结果出错的问题 [#49440](https://github.com/pingcap/tidb/issues/49440) @[winoros](https://github.com/winoros) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复包含 Apply 操作的查询在报错 `fatal error: concurrent map writes` 后导致 TiDB 崩溃的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用 `SET_VAR` 控制字符串类型的变量可能会失效的问题 [#50507](https://github.com/pingcap/tidb/issues/50507) @[qw4990](https://github.com/qw4990) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 CTE 查询使用的内存超限时可能会导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) + - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用聚合函数分组计算时可能报错 `Can't find column ...` 的问题 [#50926](https://github.com/pingcap/tidb/issues/50926) @[qw4990](https://github.com/qw4990) + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当 `CREATE TABLE` 语句中包含特定分区或约束的表达式时,表名变更等 DDL 操作会卡住的问题 [#50972](https://github.com/pingcap/tidb/issues/50972) @[lcwangchao](https://github.com/lcwangchao) + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复 Grafana 监控指标 `tidb_statistics_auto_analyze_total` 没有显示为整数的问题 [#51051](https://github.com/pingcap/tidb/issues/51051) @[hawkingrei](https://github.com/hawkingrei) + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei] + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) + TiKV - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 错误修复> TiKV - 修复开启 `tidb_enable_row_level_checksum` 可能导致 TiKV panic 的问题 [#16371](https://github.com/tikv/tikv/issues/16371) @[cfzjywxk](https://github.com/cfzjywxk) + - (dup): release-7.1.4.md > 错误修复> TiKV - 修复休眠的 Region 在异常情况下未被及时唤醒的问题 [#16368](https://github.com/tikv/tikv/issues/16368) @[LykxSassinator](https://github.com/LykxSassinator) + - (dup): release-7.1.4.md > 错误修复> TiKV - 通过在执行下线节点操作前检查该 Region 所有副本的上一次心跳时间,修复下线一个副本导致整个 Region 不可用的问题 [#16465](https://github.com/tikv/tikv/issues/16465) @[tonyxuqqi](https://github.com/tonyxuqqi) + - (dup): release-7.1.4.md > 错误修复> TiKV - 修复 JSON 整型数值在大于 `INT64` 最大值但小于 `UINT64` 最大值时会被 TiKV 解析成 `FLOAT64` 导致结果和 TiDB 不一致的问题 [#16512](https://github.com/tikv/tikv/issues/16512) @[YangKeao](https://github.com/YangKeao) + PD - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `MergeLabels` 函数时存在数据竞争的问题 [#7535](https://github.com/tikv/pd/issues/7535) @[lhy1024](https://github.com/lhy1024) + - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `evict-leader-scheduler` 接口时没有输出结果的问题 [#7672](https://github.com/tikv/pd/issues/7672) @[CabinfeverB](https://github.com/CabinfeverB) + - (dup): release-7.5.1.md > 错误修复> PD - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) + - (dup): release-7.1.4.md > 错误修复> PD - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) + TiFlash - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复副本迁移时,因 TiFlash 与 PD 之间网络连接不稳定可能引发的 TiFlash panic 的问题 [#8323](https://github.com/pingcap/tiflash/issues/8323) @[JaySon-Huang](https://github.com/JaySon-Huang) + - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复慢查询导致内存使用显著增加的问题 [#8564](https://github.com/pingcap/tiflash/issues/8564) @[JinheLin](https://github.com/JinheLin) + - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复移除 TiFlash 副本后重新添加可能导致 TiFlash 数据损坏的问题 [#8695](https://github.com/pingcap/tiflash/issues/8695) @[JaySon-Huang](https://github.com/JaySon-Huang) + - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 PITR 恢复任务或 `FLASHBACK CLUSTER TO` 后,TiFlash 副本数据可能被意外删除,导致数据异常的问题 [#8777](https://github.com/pingcap/tiflash/issues/8777) @[JaySon-Huang](https://github.com/JaySon-Huang) + - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 `ALTER TABLE ... MODIFY COLUMN ... NOT NULL` 时,将原本可为空的列修改为不可为空之后,导致 TiFlash panic 的问题 [#8419](https://github.com/pingcap/tiflash/issues/8419) @[JaySon-Huang](https://github.com/JaySon-Huang) + Tools @@ -461,11 +499,25 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复在同一节点上更改 TiKV IP 地址导致日志备份卡住的问题 [#50445](https://github.com/pingcap/tidb/issues/50445) @[3pointer](https://github.com/3pointer) + - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复从 S3 读文件内容时出错后无法重试的问题 [#49942](https://github.com/pingcap/tidb/issues/49942) @[Leavrth](https://github.com/Leavrth) + - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复数据恢复失败后,使用断点重启报错 `the target cluster is not fresh` 的问题 [#50232](https://github.com/pingcap/tidb/issues/50232) @[Leavrth](https://github.com/Leavrth) + - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复停止日志备份任务导致 TiDB crash 的问题 [#50839](https://github.com/pingcap/tidb/issues/50839) @[YuJuncen](https://github.com/YuJuncen) + - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复由于某个 TiKV 节点缺少 Leader 导致数据恢复变慢的问题 [#50566](https://github.com/pingcap/tidb/issues/50566) @[Leavrth](https://github.com/Leavrth) + - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复全量恢复指定 `--filter` 选项后,仍然要求目标集群为空的问题 [#51009](https://github.com/pingcap/tidb/issues/51009) @[3pointer](https://github.com/3pointer) + TiCDC - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复使用 storage sink 时,在存储服务生成的文件序号可能出现回退的问题 [#10352](https://github.com/pingcap/tiflow/issues/10352) @[CharlesCheung96](https://github.com/CharlesCheung96) + - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复并发创建多个 changefeed 时 TiCDC 返回 `ErrChangeFeedAlreadyExists` 错误的问题 [#10430](https://github.com/pingcap/tiflow/issues/10430) @[CharlesCheung96](https://github.com/CharlesCheung96) + - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复在 `ignore-event` 中设置了过滤掉 `add table partition` 事件后,TiCDC 未将相关分区的其它类型 DML 变更事件同步到下游的问题 [#10524](https://github.com/pingcap/tiflow/issues/10524) @[CharlesCheung96](https://github.com/CharlesCheung96) + - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复上游表执行了 `TRUNCATE PARTITION` 后 changefeed 报错的问题 [#10522](https://github.com/pingcap/tiflow/issues/10522) @[sdojjy](https://github.com/sdojjy) + - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复恢复 changefeed 时 changefeed 的 `checkpoint-ts` 小于 TiDB 的 GC safepoint,没有及时报错 `snapshot lost caused by GC` 的问题 [#10463](https://github.com/pingcap/tiflow/issues/10463) @[sdojjy](https://github.com/sdojjy) + - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复 TiCDC 在开启单行数据正确性校验后由于时区不匹配导致 `TIMESTAMP` 类型 checksum 验证失败的问题 [#10573](https://github.com/pingcap/tiflow/issues/10573) @[3AceShowHand](https://github.com/3AceShowHand) + - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复 Syncpoint 表可能被错误同步的问题 [#10576](https://github.com/pingcap/tiflow/issues/10576) @[asddongmen](https://github.com/asddongmen) + - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复当使用 Apache Pulsar 作为下游时,无法正常启用 OAuth2.0、TLS 和 mTLS 的问题 [#10602](https://github.com/pingcap/tiflow/issues/10602) @[asddongmen](https://github.com/asddongmen) + TiDB Data Migration (DM) @@ -476,12 +528,30 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复在扫描数据文件时,遇到不合法符号链接文件而报错的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) + - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复当 `sql_mode` 中不包含 `NO_ZERO_IN_DATE` 时,TiDB Lightning 无法正确解析包含 `0` 的日期值的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) + + + Dumpling + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiUP - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) + + TiDB Binlog + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## Other dup notes + +- (dup): release-7.5.1.md > 兼容性变更 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](https://docs.pingcap.com/zh/tidb/v7.5/system-variables#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) +- (dup): release-7.6.0.md > # 稳定性 * 跨数据库绑定执行计划 [#48875](https://github.com/pingcap/tidb/issues/48875) @[qw4990](https://github.com/qw4990) +- (dup): release-7.6.0.md > # 性能> -log-file restorefull.log * 默认开启 Titan 引擎 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) @[v01dstar](https://github.com/v01dstar) @[tonyxuqqi](https://github.com/tonyxuqqi) + ## 贡献者 感谢来自 TiDB 社区的贡献者们: From 3c38faa22000bd456e4c58a9e3ecb58c9f9f0fbd Mon Sep 17 00:00:00 2001 From: long0712 <87366891+ljun0712@users.noreply.github.com> Date: Tue, 19 Mar 2024 18:18:22 +0800 Subject: [PATCH 083/156] Update releases/release-8.0.0.md Co-authored-by: xixirangrang --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index a17abc73c6fe..c6c919387027 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -255,11 +255,11 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/encryption-at-rest.md#tikv-静态加密)。 -* TiDB 日志脱敏增强 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@hfxsd** +* 增强 TiDB 日志脱敏 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@hfxsd** - TiDB 日志脱敏增强是基于对日志文件中 SQL 文本信息的数据进行标记,以便支持用户在查看时进行敏感数据的安全展示。用户可以更灵活自主地在展示环节控制是否对日志信息进行脱敏,以支持 TiDB 日志在不同场景下的安全使用,提升了客户使用日志脱敏能力的安全性和灵活性。要使用此功能请通过修改系统变量 `tidb_redact_log` 的值设置为 `marker`,此时 TiDB 的运行日志将对 SQL 文本进行标记,查看时将基于标记进行数据的安全展示,从而实现日志信息的保护。 + TiDB 日志脱敏增强是基于对日志文件中 SQL 文本信息的数据进行标记,以便支持用户在查看时进行敏感数据的安全展示。你可以控制是否对日志信息进行脱敏,以实现在不同场景下的安全使用 TiDB 日志,提升了使用日志脱敏能力的安全性和灵活性。要使用此功能,可以将系统变量 `tidb_redact_log` 的值为 `MARKER`,此时 TiDB 的运行日志中的 SQL 文本会被标记,查看时将基于标记进行数据的安全展示,从而保护日志信息。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_redact_log)。 ### 数据迁移 * TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) **tw@lilin90** From d7397f8b16f28be2542b4f292733b7c260522896 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Wed, 20 Mar 2024 11:16:58 +0800 Subject: [PATCH 084/156] Apply suggestions from code review Co-authored-by: lidezhu <47731263+lidezhu@users.noreply.github.com> --- releases/release-8.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c6c919387027..35fbc2932e9d 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -425,6 +425,8 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 改进提升> Tools> TiCDC - 支持[查询 changefeed 的下游同步状态](https://docs.pingcap.com/zh/tidb/v7.5/ticdc-open-api-v2#查询特定同步任务是否完成),以确认 TiCDC 是否已将所接收到的上游变更完全同步到下游 [#10289](https://github.com/pingcap/tiflow/issues/10289) @[hongyunyan](https://github.com/hongyunyan) + - 通过优化 `RowChangedEvent` 的内存占用,降低 TiCDC 同步数据时的内存消耗 [#10386](https://github.com/pingcap/tiflow/issues/10386) @[lidezhu](https://github.com/lidezhu) + - 增加在创建和恢复 changefeed 任务时验证 start-ts 参数是否合法 [#10499](https://github.com/pingcap/tiflow/issues/10499) @[3AceShowHand](https://github.com/3AceShowHand) + TiDB Data Migration (DM) @@ -518,6 +520,10 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复 TiCDC 在开启单行数据正确性校验后由于时区不匹配导致 `TIMESTAMP` 类型 checksum 验证失败的问题 [#10573](https://github.com/pingcap/tiflow/issues/10573) @[3AceShowHand](https://github.com/3AceShowHand) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复 Syncpoint 表可能被错误同步的问题 [#10576](https://github.com/pingcap/tiflow/issues/10576) @[asddongmen](https://github.com/asddongmen) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复当使用 Apache Pulsar 作为下游时,无法正常启用 OAuth2.0、TLS 和 mTLS 的问题 [#10602](https://github.com/pingcap/tiflow/issues/10602) @[asddongmen](https://github.com/asddongmen) + - 修复 TiKV 重启时,kv client 处理异常导致 changefeed 延迟升高的问题 [#10584](https://github.com/pingcap/tiflow/issues/10584) @[asddongmen](https://github.com/asddongmen) + - 修复频繁 DDL 场景下由于错误的 BarrierTS 的导致数据被写入错误的 CSV 文件的问题[#10668](https://github.com/pingcap/tiflow/issues/10668) @[lidezhu](https://github.com/lidezhu) + - 修复 kv client 处理异常导致 TiCDC panic 的问题 [#10718](https://github.com/pingcap/tiflow/issues/10718) @[asddongmen](https://github.com/asddongmen) + - 修复表同步任务调度时导致 TiCDC panic 的问题 [#10613](https://github.com/pingcap/tiflow/issues/10613) @[CharlesCheung96](https://github.com/CharlesCheung96) + TiDB Data Migration (DM) From 978890f4754e315cbe397da2aca473d2b163eee7 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 20 Mar 2024 11:43:01 +0800 Subject: [PATCH 085/156] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: 3pointer Co-authored-by: JaySon --- releases/release-8.0.0.md | 40 ++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 35fbc2932e9d..0342657d62db 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -273,6 +273,7 @@ TiDB 版本:8.0.0 TiCDC 现在可以使用一种生成 Debezium 格式的事件消息的协议,将复制事件发布到 Kafka sink。这有助于简化那些当前使用 Debezium 从 MySQL 拉取数据进行下游处理的用户从 MySQL 迁移到 TiDB 的过程。 更多信息,请参考[用户文档](/ticdc/ticdc-debezium.md)。 + * TiCDC 支持通过双向复制模式 (Bi-Directional Replication, BDR) 同步 DDL 语句 (GA) [#10301](https://github.com/pingcap/tiflow/issues/10301) [#48519](https://github.com/pingcap/tidb/issues/48519) @[okJiang](https://github.com/okJiang) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** TiDB v7.6.0 引入了通过双向复制模式同步 DDL 语句的功能作为实验特性。以前,TiCDC 不支持复制 DDL 语句,因此要使用 TiCDC 双向复制必须将 DDL 语句分别应用到两个 TiDB 集群。有了该特性,TiCDC 可以为一个集群分配 `PRIMARY` BDR role,并将该集群的 DDL 语句复制到下游集群。该功能在 v8.0.0 成为正式功能。 @@ -295,7 +296,7 @@ TiDB 版本:8.0.0 * TiDB Lightning 简化冲突处理策略,同时支持以 "replace" 方式处理冲突数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** - 在之前的版本中,TiDB Lightning 逻辑导入模式有一套[数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md),物理导入模式时有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 + 在之前的版本中,TiDB Lightning 逻辑导入模式有[一套数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md#冲突数据检测),物理导入模式时有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略,并简化了该参数的配置。此外,在物理导入模式下,当导入遇到主键或唯一键冲突的数据时,`replace` 策略支持保留最新的数据、覆盖旧的数据。 @@ -308,12 +309,6 @@ TiDB 版本:8.0.0 随着 v7.4.0 引入全局排序实验特性,TiDB 支持将需要导入的数据暂时存储在外部存储(如 Amazon S3)中进行全局排序后再导入到 TiKV 中,使 TiKV 无需在导入过程中执行 compaction 操作。全局排序在 v8.0.0 成为正式功能 (GA),可以降低 TiKV 对资源的额外消耗,显著提升 `IMPORT INTO` 的性能和稳定性。 更多信息,请参考[用户文档](/tidb-global-sort.md)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 ## 兼容性变更 @@ -336,7 +331,7 @@ TiDB 版本:8.0.0 | [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该参数更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) 。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | -| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。当变量值为 `MARKER` 时,日志中的用户信息将被标记处理,可以在之后决定是否对日志信息进行脱敏。 | +| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。 | | [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定使用运算符 `/` 执行除法操作时,结果增加的小数位数。该功能与 MySQL 保持一致。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | @@ -413,7 +408,11 @@ TiDB 版本:8.0.0 + Backup & Restore (BR) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 增加恢复参数 --load-stats 来控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) + - 在粗粒度打散 region 恢复放法,实现自适应获取并发参数功能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) + - 在 help 信息中显示 log 子命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) + - 在恢复过程中提前分配好 TableID,从而最大限度复用 Table ID,提升恢复性能。 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) + - 使用 BR 时,禁用 TiDB 内部的 gc memory limit tuner 功能。 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) @@ -466,6 +465,7 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> TiDB - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei] - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) + - 修复在 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) + TiKV @@ -494,11 +494,15 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复移除 TiFlash 副本后重新添加可能导致 TiFlash 数据损坏的问题 [#8695](https://github.com/pingcap/tiflash/issues/8695) @[JaySon-Huang](https://github.com/JaySon-Huang) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 PITR 恢复任务或 `FLASHBACK CLUSTER TO` 后,TiFlash 副本数据可能被意外删除,导致数据异常的问题 [#8777](https://github.com/pingcap/tiflash/issues/8777) @[JaySon-Huang](https://github.com/JaySon-Huang) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 `ALTER TABLE ... MODIFY COLUMN ... NOT NULL` 时,将原本可为空的列修改为不可为空之后,导致 TiFlash panic 的问题 [#8419](https://github.com/pingcap/tiflash/issues/8419) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复存算分离架构下,出现网络隔离后查询可能会被永久阻塞的问题 [#8806](https://github.com/pingcap/tiflash/issues/8806) @[JinheLin](https://github.com/JinheLin) + - 修复存算分离架构下,TiFlash shutdown 过程中可能 panic 的问题 [#8837](https://github.com/pingcap/tiflash/issues/8837) @[JaySon-Huang](https://github.com/JaySon-Huang) + Tools + Backup & Restore (BR) - + - 修复在 Region 立刻成为 Leader 后立刻分裂或合并,导致的日志备份 Checkpoint 不推进的问题。 [#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) + - 修复在某些情况下,日志备份无法监听 Region 的问题。[#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) + - 修复在某些极端情况下,全量备份因找不到 peer 导致 TiKV panic 的问题。[#16394](https://github.com/tikv/tikv/issues/16394) @[Leavrth](https://github.com/Leavrth) - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复在同一节点上更改 TiKV IP 地址导致日志备份卡住的问题 [#50445](https://github.com/pingcap/tidb/issues/50445) @[3pointer](https://github.com/3pointer) @@ -562,4 +566,18 @@ TiDB 版本:8.0.0 感谢来自 TiDB 社区的贡献者们: -- [贡献者 GitHub ID]() +- [Aoang](https://github.com/Aoang) +- [bufferflies](https://github.com/bufferflies) +- [daemon365](https://github.com/daemon365) +- [eltociear](https://github.com/eltociear) +- [lichunzhu](https://github.com/lichunzhu) +- [jiyfhust](https://github.com/jiyfhust) +- [pingandb](https://github.com/pingandb) +- [renovate](https://github.com/renovate) +- [shenqidebaozi](https://github.com/shenqidebaozi) +- [Smityz ](https://github.com/Smityz) +- [songzhibin97](https://github.com/songzhibin97) +- [tangjingyu97](https://github.com/tangjingyu97) +- [Tema](https://github.com/Tema) +- [ub-3](https://github.com/ub-3) +- [yoshikipom](https://github.com/yoshikipom) From ac5389e6d322427d2479fb6124e7f7fdbbc20d84 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 20 Mar 2024 11:56:49 +0800 Subject: [PATCH 086/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 0342657d62db..0f69ec164ecc 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -148,9 +148,11 @@ TiDB 版本:8.0.0 TiDB 的[低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso)使用定期更新的 TSO 作为事务时间戳。在可以容忍读到旧数据的情况下,该功能通过牺牲一定的实时性,降低小的只读事务获取 TSO 的开销,从而提升高并发读的能力。 在 v8.0.0 之前,低精度 TSO 功能的 TSO 更新周期固定,无法根据实际业务需要进行调整。在 v8.0.0 中,TiDB 引入变量 `tidb_low_resolution_tso_update_interval` 来控制低精度 TSO 功能更新 TSO 的周期。该功能仅在低精度 TSO 功能启用时有效。 - + 更多信息,请参考[用户文档](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入)。 +* 默认开启 Titan 引擎 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) @[v01dstar](https://github.com/v01dstar) @[tonyxuqqi](https://github.com/tonyxuqqi) + ### 稳定性 * 支持根据 LRU 算法缓存所需的 schema 信息,以减少 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** @@ -160,7 +162,9 @@ TiDB 版本:8.0.0 从 v8.0.0 开始,TiDB 引入 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) 系统变量,允许设置缓存 schema 信息所能使用的内存上限,从而避免占用过多的内存。开启该功能后,TiDB 将使用 Least Recently Used (LRU) 算法缓存所需的表,有效降低 schema 信息占用的内存。 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 - + +* 跨数据库绑定执行计划 [#48875](https://github.com/pingcap/tidb/issues/48875) @[qw4990](https://github.com/qw4990) + ### 高可用 * 代理组件 TiProxy 成为正式功能 (GA) [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** @@ -262,6 +266,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_redact_log)。 ### 数据迁移 + * TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) **tw@lilin90** TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪 (in-band schema tracking)。 @@ -316,6 +321,8 @@ TiDB 版本:8.0.0 > > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 +- 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](https://docs.pingcap.com/zh/tidb/v7.5/system-variables#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) + ### 行为变更 * 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 并发数,该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** @@ -362,14 +369,11 @@ TiDB 版本:8.0.0 | TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | | TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | - ### 系统表 * 新增系统表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) 和 [`INFORMATION_SCHEMA.CLUSTER_TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md#cluster_tidb_index_usage) 用于记录 TiDB 节点中索引的访问统计信息。**tw@Oreoxmt** * 新增系统数据库 [`sys`](/sys-schema.md) 和 [`sys.schema_unused_index`](/sys-schema.md#schema_unused_index) 视图,用于记录自 TiDB 上次启动以来未被使用的索引信息。**tw@Oreoxmt** -## 离线包变更 - ## 废弃功能 * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** @@ -478,8 +482,6 @@ TiDB 版本:8.0.0 + PD - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `MergeLabels` 函数时存在数据竞争的问题 [#7535](https://github.com/tikv/pd/issues/7535) @[lhy1024](https://github.com/lhy1024) - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `evict-leader-scheduler` 接口时没有输出结果的问题 [#7672](https://github.com/tikv/pd/issues/7672) @[CabinfeverB](https://github.com/CabinfeverB) - (dup): release-7.5.1.md > 错误修复> PD - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) @@ -487,8 +489,6 @@ TiDB 版本:8.0.0 + TiFlash - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复副本迁移时,因 TiFlash 与 PD 之间网络连接不稳定可能引发的 TiFlash panic 的问题 [#8323](https://github.com/pingcap/tiflash/issues/8323) @[JaySon-Huang](https://github.com/JaySon-Huang) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复慢查询导致内存使用显著增加的问题 [#8564](https://github.com/pingcap/tiflash/issues/8564) @[JinheLin](https://github.com/JinheLin) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复移除 TiFlash 副本后重新添加可能导致 TiFlash 数据损坏的问题 [#8695](https://github.com/pingcap/tiflash/issues/8695) @[JaySon-Huang](https://github.com/JaySon-Huang) @@ -500,11 +500,10 @@ TiDB 版本:8.0.0 + Tools + Backup & Restore (BR) + - 修复在 Region 立刻成为 Leader 后立刻分裂或合并,导致的日志备份 Checkpoint 不推进的问题。 [#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) - 修复在某些情况下,日志备份无法监听 Region 的问题。[#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) - 修复在某些极端情况下,全量备份因找不到 peer 导致 TiKV panic 的问题。[#16394](https://github.com/tikv/tikv/issues/16394) @[Leavrth](https://github.com/Leavrth) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复在同一节点上更改 TiKV IP 地址导致日志备份卡住的问题 [#50445](https://github.com/pingcap/tidb/issues/50445) @[3pointer](https://github.com/3pointer) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复从 S3 读文件内容时出错后无法重试的问题 [#49942](https://github.com/pingcap/tidb/issues/49942) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复数据恢复失败后,使用断点重启报错 `the target cluster is not fresh` 的问题 [#50232](https://github.com/pingcap/tidb/issues/50232) @[Leavrth](https://github.com/Leavrth) @@ -514,8 +513,6 @@ TiDB 版本:8.0.0 + TiCDC - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复使用 storage sink 时,在存储服务生成的文件序号可能出现回退的问题 [#10352](https://github.com/pingcap/tiflow/issues/10352) @[CharlesCheung96](https://github.com/CharlesCheung96) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复并发创建多个 changefeed 时 TiCDC 返回 `ErrChangeFeedAlreadyExists` 错误的问题 [#10430](https://github.com/pingcap/tiflow/issues/10430) @[CharlesCheung96](https://github.com/CharlesCheung96) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复在 `ignore-event` 中设置了过滤掉 `add table partition` 事件后,TiCDC 未将相关分区的其它类型 DML 变更事件同步到下游的问题 [#10524](https://github.com/pingcap/tiflow/issues/10524) @[CharlesCheung96](https://github.com/CharlesCheung96) @@ -556,12 +553,6 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) -## Other dup notes - -- (dup): release-7.5.1.md > 兼容性变更 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](https://docs.pingcap.com/zh/tidb/v7.5/system-variables#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) -- (dup): release-7.6.0.md > # 稳定性 * 跨数据库绑定执行计划 [#48875](https://github.com/pingcap/tidb/issues/48875) @[qw4990](https://github.com/qw4990) -- (dup): release-7.6.0.md > # 性能> -log-file restorefull.log * 默认开启 Titan 引擎 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) @[v01dstar](https://github.com/v01dstar) @[tonyxuqqi](https://github.com/tonyxuqqi) - ## 贡献者 感谢来自 TiDB 社区的贡献者们: @@ -575,7 +566,7 @@ TiDB 版本:8.0.0 - [pingandb](https://github.com/pingandb) - [renovate](https://github.com/renovate) - [shenqidebaozi](https://github.com/shenqidebaozi) -- [Smityz ](https://github.com/Smityz) +- [Smityz](https://github.com/Smityz) - [songzhibin97](https://github.com/songzhibin97) - [tangjingyu97](https://github.com/tangjingyu97) - [Tema](https://github.com/Tema) From 0c4c5eef2e8c6d399b4f25163dda002f110a57df Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 20 Mar 2024 12:01:33 +0800 Subject: [PATCH 087/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 0f69ec164ecc..ef4cb226fb68 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -151,8 +151,6 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入)。 -* 默认开启 Titan 引擎 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) @[v01dstar](https://github.com/v01dstar) @[tonyxuqqi](https://github.com/tonyxuqqi) - ### 稳定性 * 支持根据 LRU 算法缓存所需的 schema 信息,以减少 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** @@ -163,8 +161,6 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 -* 跨数据库绑定执行计划 [#48875](https://github.com/pingcap/tidb/issues/48875) @[qw4990](https://github.com/qw4990) - ### 高可用 * 代理组件 TiProxy 成为正式功能 (GA) [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** From 9e73d09f78403970fbb2537d52cab2b29c28c3a6 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 20 Mar 2024 17:43:05 +0800 Subject: [PATCH 088/156] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index ef4cb226fb68..1b72fa17a4b3 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -257,7 +257,7 @@ TiDB 版本:8.0.0 * 增强 TiDB 日志脱敏 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@hfxsd** - TiDB 日志脱敏增强是基于对日志文件中 SQL 文本信息的数据进行标记,以便支持用户在查看时进行敏感数据的安全展示。你可以控制是否对日志信息进行脱敏,以实现在不同场景下的安全使用 TiDB 日志,提升了使用日志脱敏能力的安全性和灵活性。要使用此功能,可以将系统变量 `tidb_redact_log` 的值为 `MARKER`,此时 TiDB 的运行日志中的 SQL 文本会被标记,查看时将基于标记进行数据的安全展示,从而保护日志信息。 + TiDB 日志脱敏增强是通过对日志文件中的 SQL 文本信息进行标记,支持在查看时安全展示敏感数据。你可以控制是否对日志信息进行脱敏,以实现在不同场景下安全使用 TiDB 日志,提升了使用日志脱敏能力的安全性和灵活性。要使用此功能,可以将系统变量 `tidb_redact_log` 的值设置为 `MARKER`,此时 TiDB 的运行日志中的 SQL 文本会被标记,查看时将基于标记进行数据的安全展示,从而保护日志信息。 更多信息,请参考[用户文档](/system-variables.md#tidb_redact_log)。 @@ -321,7 +321,7 @@ TiDB 版本:8.0.0 ### 行为变更 -* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 并发数,该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** +* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** ### MySQL 兼容性 From 0ab63984813c15abfff3ec13a2e192f22369e46f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 21 Mar 2024 14:09:18 +0800 Subject: [PATCH 089/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1b72fa17a4b3..7209291ffa38 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -360,7 +360,7 @@ TiDB 版本:8.0.0 | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | | TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | -| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `96KiB`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | | TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | | TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | From 249978918d15d78d30e507f13f3a0229a3a627bc Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 21 Mar 2024 15:09:34 +0800 Subject: [PATCH 090/156] Apply suggestions from code review Co-authored-by: Elsa <111482174+elsa0520@users.noreply.github.com> Co-authored-by: Benjamin2037 --- releases/release-8.0.0.md | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7209291ffa38..409da423d6e2 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -339,7 +339,7 @@ TiDB 版本:8.0.0 | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | | [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | -| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 TiDB 加速建表执行 DDL 语句。 | +| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 [`CREATE TABLE`](/sql-statements/sql-statement-create-table.md) 加速建表。 | | [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制加载 binding 的超时时间。当加载 binding 的执行时间超过该值时,会停止加载。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| @@ -383,7 +383,17 @@ TiDB 版本:8.0.0 - 提升 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** + - 增强 Index merge 能力,使其能感知查询中的排序需求,并有能力选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid) - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** + - 优化 warning 日志,在遇到无法进行并发 apply 的情况下,warning 中显示阻碍并发的算子名称 [#50256](https://github.com/pingcap/tidb/issues/50256) @[hawkingrei](https://github.com/hawkingrei) + - 优化 point get 情况下的索引选择,在都是 point get 的索引的情况下选择一个最好的 point get index [#50184](https://github.com/pingcap/tidb/issues/50184) @[elsa0520](https://github.com/elsa0520) + - 将 sync load 统计信息任务的优先级暂时调整为 high,避免在 tikv 忙碌的情况下,sync load 大面积超时导致统计信息无法加载情况 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) + - prepare 时,在 warning 中显示无法 plan cache 的具体原因 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) + - 改进在多次更新同一行的情况下,查询估算偏差的问题 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) + - 支持使用 where 条件中的部分等值条件来构造 index join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) + - index merge 可以支持在 and 谓词中内嵌 mv index 和 OR 谓词 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) + - 修复在无数据变更情况下,auto analyze 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) + - 修复 auto analyze 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) @@ -430,10 +440,10 @@ TiDB 版本:8.0.0 + TiDB Data Migration (DM) - 在 MariaDB 主从复制的场景中,即 MariaDB 主实例 -> MariaDB 从实例 -> DM -> TiDB 的迁移场景,当 `gtid_strict_mode = off` 且 MariaDB 从实例的 GTID 不严格递增时(例如,有业务数据写入 MariaDB 从实例),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** - + - DM 丢失上游 binary 类型主键更新 [[#10672](https://github.com/pingcap/tiflow/issues/10672) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - Lightning 逻辑导入模式也支持批处理最大行数配置能力。[#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiUP @@ -456,6 +466,21 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> TiDB - 修复常量传播在处理 `ENUM` 或 `SET` 类型时结果出错的问题 [#49440](https://github.com/pingcap/tidb/issues/49440) @[winoros](https://github.com/winoros) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复包含 Apply 操作的查询在报错 `fatal error: concurrent map writes` 后导致 TiDB 崩溃的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用 `SET_VAR` 控制字符串类型的变量可能会失效的问题 [#50507](https://github.com/pingcap/tidb/issues/50507) @[qw4990](https://github.com/qw4990) + - 修复 “ tidb_sysdate_is_now” 设置为 1 的情况下, sysdate() 函数错误的使用了 plan cache 中缓存的时间的问题。[#49299](https://github.com/pingcap/tidb/issues/49299) @[hawkingrei](https://github.com/hawkingrei) + - 修复 universal binding 中,如果数据库名字为大写无法生效的问题 [#50646](https://github.com/pingcap/tidb/issues/50646) @[qw4990](https://github.com/qw4990) + - 修复 index merge 中,底层局部 index path 选中重复索引的问题 [#50496](https://github.com/pingcap/tidb/issues/50496) @[AilinKid](https://github.com/AilinKid) + - 修复 plan replayer,当 sql binding 中包含 in 语句是无法 load 的问题 [#43192](https://github.com/pingcap/tidb/issues/43192) @[King-Dylan](https://github.com/King-Dylan) + - 修复当多个 analyze 任务失败时,无法正确的显示 analyze 失败原因的问题 [#50481](https://github.com/pingcap/tidb/issues/50481) @[hi-rustin](https://github.com/hi-rustin) + - 修复 sync_load_timeout 设置不生效的问题 [#50872](https://github.com/pingcap/tidb/issues/50872) @[jiyfhust](https://github.com/jiyfhust) + - 修复 max_execute_time 多层设置相互影响的问题 [#50914](https://github.com/pingcap/tidb/issues/50914) @[jiyfhust](https://github.com/jiyfhust) + - 修复并发更新统计信息导致的线程安全问题 [#50835](https://github.com/pingcap/tidb/issues/50835) @[hi-rustin](https://github.com/hi-rustin) + - 修复 auto analyze 分区表可能导致的潜在 panic 问题 [#51187](https://github.com/pingcap/tidb/issues/51187) @[hi-rustin](https://github.com/hi-rustin) + - 修复 sql 中 in 谓词带不同个数的 values 时,可能导致 sql binding 不生效的问题 [#51222](https://github.com/pingcap/tidb/issues/51222) @[hawkingrei](https://github.com/hawkingrei) + - 修复 TiDB 无法正确转换表达式中系统变量类型的问题 [#43527](https://github.com/pingcap/tidb/issues/43527) @[hi-rustin](https://github.com/hi-rustin) + - 在 force_init_stats 生效情况下,不 listen 对应的端口 [#51473](https://github.com/pingcap/tidb/issues/51473) @[hawkingrei](https://github.com/hawkingrei) + - 修正 tablefullscan 在查询不带谓词情况下,不加载统计信息的问题 [#48257](https://github.com/pingcap/tidb/issues/48257) @[time-and-fate](https://github.com/time-and-fate) + - 修复 init_stats 流程中,可能存在的 panic 以及 panic 后导致 init stats 流程直接退出的问题 [#51581](https://github.com/pingcap/tidb/issues/51581) @[hawkingrei](https://github.com/hawkingrei) + - 修复 in 谓词中带 null 时,导致的查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 CTE 查询使用的内存超限时可能会导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) From 85767b8fc4782de3d1448905481453b952b99ab0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 21 Mar 2024 17:33:50 +0800 Subject: [PATCH 091/156] Apply suggestions from code review Co-authored-by: Benjamin2037 --- releases/release-8.0.0.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 409da423d6e2..b8b4342b0849 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -318,6 +318,7 @@ TiDB 版本:8.0.0 > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](https://docs.pingcap.com/zh/tidb/v7.5/system-variables#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) +- 移除 DM 硬编码密钥,同时支持用户自定义密钥 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) ### 行为变更 @@ -378,7 +379,7 @@ TiDB 版本:8.0.0 ## 改进提升 -+ TiDB ++ TiDB - 提升 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** @@ -396,8 +397,10 @@ TiDB 版本:8.0.0 - 修复 auto analyze 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) +- MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) +- 修复 7.5 multi-schema change 加多个索引优化引入的 bug [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) -+ TiKV ++ TiKV - 强化 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** @@ -414,7 +417,7 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.6.0.md > 改进提升> TiFlash - 支持在存算分离架构下通过合并相同数据的读取操作,提升多并发下的数据扫描性能 [#6834](https://github.com/pingcap/tiflash/issues/6834) @[JinheLin](https://github.com/JinheLin) -+ Tools ++ Tools + Backup & Restore (BR) @@ -444,7 +447,10 @@ TiDB 版本:8.0.0 + TiDB Lightning - Lightning 逻辑导入模式也支持批处理最大行数配置能力。[#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 区分导入空间检查节点是否是 TiFlash 节点 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) + - 修复 lightning 不能忽略 不匹配 symlink 规则 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) + - 优化 lightning 检查 TiKV 空间导致的性能回退 [#43636](https://github.com/pingcap/tidb/issues/43636) @[lance6716](https://github.com/lance6716) + - 修复在 NO_ZERO_IN_DATE sql-mode 下 lightning 不正确的 datetime 值编码 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) + TiUP @@ -453,7 +459,7 @@ TiDB 版本:8.0.0 ## 错误修复 -+ TiDB ++ TiDB - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) @@ -508,7 +514,7 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> PD - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) - (dup): release-7.1.4.md > 错误修复> PD - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) -+ TiFlash ++ TiFlash - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复副本迁移时,因 TiFlash 与 PD 之间网络连接不稳定可能引发的 TiFlash panic 的问题 [#8323](https://github.com/pingcap/tiflash/issues/8323) @[JaySon-Huang](https://github.com/JaySon-Huang) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复慢查询导致内存使用显著增加的问题 [#8564](https://github.com/pingcap/tiflash/issues/8564) @[JinheLin](https://github.com/JinheLin) @@ -520,7 +526,7 @@ TiDB 版本:8.0.0 + Tools - + Backup & Restore (BR) + + Backup & Restore (BR) - 修复在 Region 立刻成为 Leader 后立刻分裂或合并,导致的日志备份 Checkpoint 不推进的问题。 [#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) - 修复在某些情况下,日志备份无法监听 Region 的问题。[#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) @@ -532,7 +538,7 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复由于某个 TiKV 节点缺少 Leader 导致数据恢复变慢的问题 [#50566](https://github.com/pingcap/tidb/issues/50566) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复全量恢复指定 `--filter` 选项后,仍然要求目标集群为空的问题 [#51009](https://github.com/pingcap/tidb/issues/51009) @[3pointer](https://github.com/3pointer) - + TiCDC + + TiCDC - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复使用 storage sink 时,在存储服务生成的文件序号可能出现回退的问题 [#10352](https://github.com/pingcap/tiflow/issues/10352) @[CharlesCheung96](https://github.com/CharlesCheung96) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复并发创建多个 changefeed 时 TiCDC 返回 `ErrChangeFeedAlreadyExists` 错误的问题 [#10430](https://github.com/pingcap/tiflow/issues/10430) @[CharlesCheung96](https://github.com/CharlesCheung96) From 91d69bc41b43757dbe65a4e947e7001aa5c18df8 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Mar 2024 10:13:59 +0800 Subject: [PATCH 092/156] Apply suggestions from code review Co-authored-by: lhy1024 Co-authored-by: tonyxuqqi --- releases/release-8.0.0.md | 59 ++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index b8b4342b0849..f856736ee898 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -311,7 +311,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -## 兼容性变更 +## 兼容性变更 > **注意:** > @@ -319,7 +319,7 @@ TiDB 版本:8.0.0 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](https://docs.pingcap.com/zh/tidb/v7.5/system-variables#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) - 移除 DM 硬编码密钥,同时支持用户自定义密钥 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) - +- 移除未 GA 但默认启用的 witness 相关调度器 [#7765](https://github.com/tikv/pd/pull/7765) @[rleungx](https://github.com/rleungx) ### 行为变更 * 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** @@ -361,7 +361,7 @@ TiDB 版本:8.0.0 | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | | TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | -| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `96KiB`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | | TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | | TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | @@ -400,15 +400,34 @@ TiDB 版本:8.0.0 - MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - 修复 7.5 multi-schema change 加多个索引优化引入的 bug [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) -+ TiKV ++ TiKV - 强化 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响。可通过 [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) 禁用该优化 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** - -+ PD - - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - pd_client: 用元数据存储接口代替原来的全局配置[#14484](https://github.com/tikv/tikv/issues/14484) @[HuSharp](https://github.com/HuSharp) + - 用write cf stats来决定加载数据行为,提高扫描性能[#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) + - 增加Raft conf change中删除节点和Voter降级的最近一次心跳的检查,确保改行为不会导致该Region不可访问 [#15799](https://github.com/tikv/tikv/issues/15799) @[tonyxuqqi](https://github.com/tonyxuqqi) + - 为pipelined DML增加 Flush和 BufferBatchGet 接口 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) + - Cgroup CPU和内存限制的监控改进 [#16392](https://github.com/tikv/tikv/issues/16392)@[pingandb](https://github.com/pingandb) + - 引入RocksDB Block和Titan Blob的共享缓存 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) + - 增加参数initial_scan_rate_limit的范围检查,不能小于1024 [#16488](https://github.com/tikv/tikv/issues/16488) @[RidRisR](https://github.com/RidRisR) + - 增加Region worker和快照生成 worker的CPU监控 [#16562](https://github.com/tikv/tikv/issues/16562) @[Connor1996](https://github.com/Connor1996) + - 增加peer和store消息的slow log [#16600](https://github.com/tikv/tikv/issues/16600) @[Connor1996](https://github.com/Connor1996) + - 默认打开 `async-io` . [#16614](https://github.com/tikv/tikv/issues/16614) @[LykxSassinator](https://github.com/LykxSassinator) ++ PD + + - 增强 PD 客户端的服务发现功能,提升其高可用性和负载平衡 [#7576](https://github.com/tikv/pd/issues/7576) @[CabinfeverB](https://github.com/CabinfeverB) + - 增强 PD 客户端的重试机制[#7673](https://github.com/tikv/pd/issues/7673) @[JmPotato](https://github.com/JmPotato) + - 添加 Cgroup 的监控和告警 [#7716](https://github.com/tikv/pd/issues/7716) [#7918](https://github.com/tikv/pd/issues/7918) @[pingandb](https://github.com/pingandb) @[rleungx](https://github.com/rleungx) + - 提升使用 Etcd watch 的性能和高可用 [#7738](https://github.com/tikv/pd/issues/7738) [#7724](https://github.com/tikv/pd/issues/7724) [#7689](https://github.com/tikv/pd/issues/7689) @[lhy1024](https://github.com/lhy1024) + - 添加更多心跳监控以帮助分析瓶颈 [#7868](https://github.com/tikv/pd/issues/7868) @[nolouch](https://github.com/nolouch) + - 减少 Etcd leader 对于 PD leader 的影响 [#7499](https://github.com/tikv/pd/issues/7499) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) + - 增强对 Etcd 不健康节点的检测机制 [#7730](https://github.com/tikv/pd/issues/7730) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) + - 增强 pd-ctl 中 GcSafepoint 相关显示 [#7767](https://github.com/tikv/pd/issues/7767) @[nolouch](https://github.com/nolouch) + - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) + - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) + - 调整 Grpc 配置以提高可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash @@ -417,9 +436,9 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.6.0.md > 改进提升> TiFlash - 支持在存算分离架构下通过合并相同数据的读取操作,提升多并发下的数据扫描性能 [#6834](https://github.com/pingcap/tiflash/issues/6834) @[JinheLin](https://github.com/JinheLin) -+ Tools ++ Tools - + Backup & Restore (BR) + + Backup & Restore (BR) - 增加恢复参数 --load-stats 来控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) - 在粗粒度打散 region 恢复放法,实现自适应获取并发参数功能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @@ -432,7 +451,7 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 在日志备份过程中,增加了在日志和监控指标中打印影响 global checkpoint 推进的最慢的 Region 的信息 [#51046](https://github.com/pingcap/tidb/issues/51046) @[YuJuncen](https://github.com/YuJuncen) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 提升了 `RESTORE` 语句在大数据量表场景下的建表性能 [#48301](https://github.com/pingcap/tidb/issues/48301) @[Leavrth](https://github.com/Leavrth) - + TiCDC + + TiCDC - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) @@ -440,11 +459,12 @@ TiDB 版本:8.0.0 - 通过优化 `RowChangedEvent` 的内存占用,降低 TiCDC 同步数据时的内存消耗 [#10386](https://github.com/pingcap/tiflow/issues/10386) @[lidezhu](https://github.com/lidezhu) - 增加在创建和恢复 changefeed 任务时验证 start-ts 参数是否合法 [#10499](https://github.com/pingcap/tiflow/issues/10499) @[3AceShowHand](https://github.com/3AceShowHand) - + TiDB Data Migration (DM) + + TiDB Data Migration (DM) - 在 MariaDB 主从复制的场景中,即 MariaDB 主实例 -> MariaDB 从实例 -> DM -> TiDB 的迁移场景,当 `gtid_strict_mode = off` 且 MariaDB 从实例的 GTID 不严格递增时(例如,有业务数据写入 MariaDB 从实例),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** - DM 丢失上游 binary 类型主键更新 [[#10672](https://github.com/pingcap/tiflow/issues/10672) @[GMHDBJD](https://github.com/GMHDBJD) - + TiDB Lightning + + + TiDB Lightning - Lightning 逻辑导入模式也支持批处理最大行数配置能力。[#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - 区分导入空间检查节点是否是 TiFlash 节点 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) @@ -498,7 +518,7 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - 修复在 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) -+ TiKV ++ TiKV - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) @@ -506,13 +526,20 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> TiKV - 修复休眠的 Region 在异常情况下未被及时唤醒的问题 [#16368](https://github.com/tikv/tikv/issues/16368) @[LykxSassinator](https://github.com/LykxSassinator) - (dup): release-7.1.4.md > 错误修复> TiKV - 通过在执行下线节点操作前检查该 Region 所有副本的上一次心跳时间,修复下线一个副本导致整个 Region 不可用的问题 [#16465](https://github.com/tikv/tikv/issues/16465) @[tonyxuqqi](https://github.com/tonyxuqqi) - (dup): release-7.1.4.md > 错误修复> TiKV - 修复 JSON 整型数值在大于 `INT64` 最大值但小于 `UINT64` 最大值时会被 TiKV 解析成 `FLOAT64` 导致结果和 TiDB 不一致的问题 [#16512](https://github.com/tikv/tikv/issues/16512) @[YangKeao](https://github.com/YangKeao) - -+ PD + - 修复监控指标`tikv_unified_read_pool_thread_count`有时没有数据的bug。[#16629](https://github.com/tikv/tikv/issues/16629) @[YuJuncen](https://github.com/YuJuncen) ++ PD - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `MergeLabels` 函数时存在数据竞争的问题 [#7535](https://github.com/tikv/pd/issues/7535) @[lhy1024](https://github.com/lhy1024) - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `evict-leader-scheduler` 接口时没有输出结果的问题 [#7672](https://github.com/tikv/pd/issues/7672) @[CabinfeverB](https://github.com/CabinfeverB) - (dup): release-7.5.1.md > 错误修复> PD - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) - (dup): release-7.1.4.md > 错误修复> PD - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) + - (dup): release-7.1.4.md > 修复 TSO 部分日志没有打印报错原因的问题 [#7496](https://github.com/tikv/pd/issues/7496) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复重启后 PD 部分监控出现非预期的负数监控问题 [#4489](https://github.com/tikv/pd/issues/4489) @[lhy1024](https://github.com/lhy1024) + - 修复 leader lease 日志问题 [#7700](https://github.com/tikv/pd/issues/7700) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 PD 客户端 TLS 相关的问题 [#7900](https://github.com/tikv/pd/issues/7900) [#7902](https://github.com/tikv/pd/issues/7902) [#7916](https://github.com/tikv/pd/issues/7916) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 Goroutine 泄漏问题 [#7782](https://github.com/tikv/pd/issues/7782) @[HuSharp](https://github.com/HuSharp) + - 修复 pd-ctl 无法移除包含特殊字符的调度器的问题 [#7798](https://github.com/tikv/pd/issues/7798) @[JmPotato](https://github.com/JmPotato) + - 修复 PD 客户端获取 TSO 可能被阻塞的问题 [#7864](https://github.com/tikv/pd/issues/7864) @[CabinfeverB](https://github.com/CabinfeverB) + TiFlash From 3e34075318180ed94296d3842aaedb3e8ff8a331 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 22 Mar 2024 10:41:10 +0800 Subject: [PATCH 093/156] refine feature descriptions --- releases/release-8.0.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index f856736ee898..babe477e8b25 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -74,14 +74,14 @@ TiDB 版本:8.0.0 从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 性能瓶颈问题。 - - TSO 微服务:为整个集群提供单调递增的时间戳分配。 - - Scheduling 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 + - `tso` 微服务:为整个集群提供单调递增的时间戳分配。 + - `scheduling` 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 - 目前 PD 微服务仅支持通过 TiDB Operator 进行部署。当 PD 出现明显的性能瓶颈且无法升配的情况下,建议考虑使用该模式。 + 目前 PD 微服务仅支持通过 TiDB Operator 和 TiUP Playground 进行部署。当 PD 出现明显的性能瓶颈且无法升配的情况下,建议考虑使用该模式。 - 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb-in-kubernetes/dev/pd-microservices)。 + 更多信息,请参考[用户文档](pd-microservices.md)。 * 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** @@ -295,7 +295,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 -* TiDB Lightning 简化冲突处理策略,同时支持以 "replace" 方式处理冲突数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** +* TiDB Lightning 简化冲突处理策略,同时支持以 `replace` 方式处理冲突数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** 在之前的版本中,TiDB Lightning 逻辑导入模式有[一套数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md#冲突数据检测),物理导入模式时有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 @@ -303,11 +303,11 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](tidb-lightning/tidb-lightning-configuration.md)。 -* 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性,支持 40 TiB 的数据导入 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** +* 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** 在 v7.4.0 以前,当使用[分布式执行框架](/tidb-distributed-execution-framework.md) 执行 `IMPORT INTO` 任务时,由于本地存储空间有限,TiDB 只能对部分数据进行局部排序后再导入到 TiKV。这导致了导入到 TiKV 的数据存在较多的重叠,需要 TiKV 在导入过程中执行额外的 compaction 操作,影响了 TiKV 的性能和稳定性。 - 随着 v7.4.0 引入全局排序实验特性,TiDB 支持将需要导入的数据暂时存储在外部存储(如 Amazon S3)中进行全局排序后再导入到 TiKV 中,使 TiKV 无需在导入过程中执行 compaction 操作。全局排序在 v8.0.0 成为正式功能 (GA),可以降低 TiKV 对资源的额外消耗,显著提升 `IMPORT INTO` 的性能和稳定性。 + 随着 v7.4.0 引入全局排序实验特性,TiDB 支持将需要导入的数据暂时存储在外部存储(如 Amazon S3)中进行全局排序后再导入到 TiKV 中,使 TiKV 无需在导入过程中执行 compaction 操作。全局排序在 v8.0.0 成为正式功能 (GA),可以降低 TiKV 对资源的额外消耗,显著提升 `IMPORT INTO` 的性能和稳定性。启用全局排序后,单个 `IMPORT INTO` 任务支持导入 40 TiB 以内的数据。 更多信息,请参考[用户文档](/tidb-global-sort.md)。 From 400785df47e175867650d6ae1f386accdba55b5a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Mar 2024 11:43:47 +0800 Subject: [PATCH 094/156] Update releases/release-8.0.0.md Co-authored-by: Benjamin2037 --- releases/release-8.0.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index babe477e8b25..d385b4c6ddf1 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -399,6 +399,7 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) - MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - 修复 7.5 multi-schema change 加多个索引优化引入的 bug [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) + - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) + TiKV From 381b82070a0e47d3adc6c8c084ea985cc81aa2a7 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 22 Mar 2024 11:44:25 +0800 Subject: [PATCH 095/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d385b4c6ddf1..ca09b6ea16fd 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -379,7 +379,7 @@ TiDB 版本:8.0.0 ## 改进提升 -+ TiDB ++ TiDB - 提升 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** From 3c63527ece72e6401cb7774a018385d35b6c9d09 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 22 Mar 2024 13:52:04 +0800 Subject: [PATCH 096/156] Apply suggestions from code review --- releases/release-8.0.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index ca09b6ea16fd..7d400f86c94d 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -24,7 +24,7 @@ TiDB 版本:8.0.0 可扩展性与性能 - 支持拆分 PD 功能为微服务,提高可扩展性(实验特性)**tw@qiancai** + 支持拆分 PD 功能为微服务,提高可扩展性(实验特性)**tw@qiancai** Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。 @@ -70,7 +70,7 @@ TiDB 版本:8.0.0 ### 可扩展性 -- PD 支持微服务模式 [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** +- PD 支持微服务模式(实验特性)[#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** 从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 性能瓶颈问题。 @@ -247,7 +247,7 @@ TiDB 版本:8.0.0 ### 安全 -* TiKV 静态加密支持 Google [Key Management Service (Cloud KMS)](https://cloud.google.com/docs/security/key-management-deep-dive?hl=zh-cn) [#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@qiancai** +* TiKV 静态加密支持 Google [Key Management Service (Cloud KMS)](https://cloud.google.com/docs/security/key-management-deep-dive?hl=zh-cn)(实验特性)[#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@qiancai** TiKV 通过静态加密功能对存储的数据进行加密,以确保数据的安全性。静态加密的安全核心点在于密钥管理。从 v8.0.0 起,你可以通过 Google Cloud KMS 管理 TiKV 的主密钥,构建基于 Cloud KMS 的静态加密能力,从而提高用户数据的安全性。 @@ -287,7 +287,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 -* 支持 `IMPORT INTO ... FROM SELECT` 语法,增强 `IMPORT INTO` 功能(实验特性) [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 支持 `IMPORT INTO ... FROM SELECT` 语法(实验特性),增强 `IMPORT INTO` 功能[#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 在之前的 TiDB 版本中,将查询结果导入目标表只能通过 `INSERT INTO ... SELECT` 语句,但该语句在一些大数据量的场景中的导入效率较低。从 v8.0.0 开始,TiDB 新增支持通过 `IMPORT INTO ... FROM SELECT` 将 `SELECT` 的查询结果导入到一张空的 TiDB 目标表中,其性能最高可达 `INSERT INTO ... SELECT` 的 8 倍,可以大幅缩短导入所需的时间。 From b1e2816ddc4cabac2c8e88e8b804fd52b141b011 Mon Sep 17 00:00:00 2001 From: djshow832 Date: Fri, 22 Mar 2024 14:41:52 +0800 Subject: [PATCH 097/156] Update releases/release-8.0.0.md Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7d400f86c94d..d385b3771bf1 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -317,7 +317,7 @@ TiDB 版本:8.0.0 > > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 -- 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](https://docs.pingcap.com/zh/tidb/v7.5/system-variables#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) +- 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](/system-variables.md#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) - 移除 DM 硬编码密钥,同时支持用户自定义密钥 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) - 移除未 GA 但默认启用的 witness 相关调度器 [#7765](https://github.com/tikv/pd/pull/7765) @[rleungx](https://github.com/rleungx) ### 行为变更 From 236971db660da21755bdf201063bab600a95bc47 Mon Sep 17 00:00:00 2001 From: D3Hunter Date: Fri, 22 Mar 2024 15:44:46 +0800 Subject: [PATCH 098/156] Update releases/release-8.0.0.md Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d385b3771bf1..41d69f5dba90 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -318,7 +318,7 @@ TiDB 版本:8.0.0 > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](/system-variables.md#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) -- 移除 DM 硬编码密钥,同时支持用户自定义密钥 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) +- DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 里的升级步骤进行额外操作。 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) - 移除未 GA 但默认启用的 witness 相关调度器 [#7765](https://github.com/tikv/pd/pull/7765) @[rleungx](https://github.com/rleungx) ### 行为变更 From 890a9b1af17d32f3e811ab8508aab3a189b00ab7 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 22 Mar 2024 16:51:37 +0800 Subject: [PATCH 099/156] update improvements > PD --- releases/release-8.0.0.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 41d69f5dba90..7fe2e359e7a7 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -416,19 +416,19 @@ TiDB 版本:8.0.0 - 增加Region worker和快照生成 worker的CPU监控 [#16562](https://github.com/tikv/tikv/issues/16562) @[Connor1996](https://github.com/Connor1996) - 增加peer和store消息的slow log [#16600](https://github.com/tikv/tikv/issues/16600) @[Connor1996](https://github.com/Connor1996) - 默认打开 `async-io` . [#16614](https://github.com/tikv/tikv/issues/16614) @[LykxSassinator](https://github.com/LykxSassinator) -+ PD - - - 增强 PD 客户端的服务发现功能,提升其高可用性和负载平衡 [#7576](https://github.com/tikv/pd/issues/7576) @[CabinfeverB](https://github.com/CabinfeverB) - - 增强 PD 客户端的重试机制[#7673](https://github.com/tikv/pd/issues/7673) @[JmPotato](https://github.com/JmPotato) - - 添加 Cgroup 的监控和告警 [#7716](https://github.com/tikv/pd/issues/7716) [#7918](https://github.com/tikv/pd/issues/7918) @[pingandb](https://github.com/pingandb) @[rleungx](https://github.com/rleungx) - - 提升使用 Etcd watch 的性能和高可用 [#7738](https://github.com/tikv/pd/issues/7738) [#7724](https://github.com/tikv/pd/issues/7724) [#7689](https://github.com/tikv/pd/issues/7689) @[lhy1024](https://github.com/lhy1024) - - 添加更多心跳监控以帮助分析瓶颈 [#7868](https://github.com/tikv/pd/issues/7868) @[nolouch](https://github.com/nolouch) - - 减少 Etcd leader 对于 PD leader 的影响 [#7499](https://github.com/tikv/pd/issues/7499) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) ++ PD + + - 增强 PD 客户端的服务发现能力,提升其高可用性和负载平衡 [#7576](https://github.com/tikv/pd/issues/7576) @[CabinfeverB](https://github.com/CabinfeverB) + - 增强 PD 客户端的重试机制 [#7673](https://github.com/tikv/pd/issues/7673) @[JmPotato](https://github.com/JmPotato) + - 增加 cgroup 的监控和告警 [#7716](https://github.com/tikv/pd/issues/7716) [#7918](https://github.com/tikv/pd/issues/7918) @[pingandb](https://github.com/pingandb) @[rleungx](https://github.com/rleungx) + - 提升使用 Etcd watch 的性能和高可用性 [#7738](https://github.com/tikv/pd/issues/7738) [#7724](https://github.com/tikv/pd/issues/7724) [#7689](https://github.com/tikv/pd/issues/7689) @[lhy1024](https://github.com/lhy1024) + - 增加更多心跳监控,以便更好地分析性能瓶颈 [#7868](https://github.com/tikv/pd/issues/7868) @[nolouch](https://github.com/nolouch) + - 减少 Etcd leader 对 PD leader 的影响 [#7499](https://github.com/tikv/pd/issues/7499) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) - 增强对 Etcd 不健康节点的检测机制 [#7730](https://github.com/tikv/pd/issues/7730) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) - - 增强 pd-ctl 中 GcSafepoint 相关显示 [#7767](https://github.com/tikv/pd/issues/7767) @[nolouch](https://github.com/nolouch) + - 优化 pd-ctl 中 GC safepoint 的相关显示 [#7767](https://github.com/tikv/pd/issues/7767) @[nolouch](https://github.com/nolouch) - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) - - 调整 Grpc 配置以提高可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) + - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash From e1d4fb130dd8cbd28a7d0b7c01ddcbf673faf9f7 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 22 Mar 2024 17:38:26 +0800 Subject: [PATCH 100/156] move descriptions of 3 bugs from improvements to bug fixes --- releases/release-8.0.0.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7fe2e359e7a7..e497c7edf480 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -393,12 +393,9 @@ TiDB 版本:8.0.0 - 改进在多次更新同一行的情况下,查询估算偏差的问题 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - 支持使用 where 条件中的部分等值条件来构造 index join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) - index merge 可以支持在 and 谓词中内嵌 mv index 和 OR 谓词 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - - 修复在无数据变更情况下,auto analyze 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) - - 修复 auto analyze 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) - MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) -- 修复 7.5 multi-schema change 加多个索引优化引入的 bug [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) + TiKV @@ -482,8 +479,9 @@ TiDB 版本:8.0.0 + TiDB - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复在无数据变更情况下,auto analyze 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) + - 修复 auto analyze 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) + - 修复 7.5 multi-schema change 加多个索引优化引入的 bug [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复查询使用 `NATURAL JOIN` 时可能报错 `Column ... in from clause is ambiguous` 的问题 [#32044](https://github.com/pingcap/tidb/issues/32044) @[AilinKid](https://github.com/AilinKid) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 TiDB 错误地消除 `group by` 中的常量值导致查询结果出错的问题 [#38756](https://github.com/pingcap/tidb/issues/38756) @[hi-rustin](https://github.com/hi-rustin) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 `LEADING` hint 在 `UNION ALL` 语句中无法生效的问题 [#50067](https://github.com/pingcap/tidb/issues/50067) @[hawkingrei](https://github.com/hawkingrei) From 98a9a9a3aba973176ea35308b6764b4b02e9a701 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 25 Mar 2024 08:43:39 +0800 Subject: [PATCH 101/156] Apply suggestions from code review --- releases/release-8.0.0.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e497c7edf480..8dade1aaff33 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -318,7 +318,7 @@ TiDB 版本:8.0.0 > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](/system-variables.md#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) -- DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 里的升级步骤进行额外操作。 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) +- DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 里的升级步骤进行额外操作。[#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) - 移除未 GA 但默认启用的 witness 相关调度器 [#7765](https://github.com/tikv/pd/pull/7765) @[rleungx](https://github.com/rleungx) ### 行为变更 @@ -385,7 +385,6 @@ TiDB 版本:8.0.0 - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - 增强 Index merge 能力,使其能感知查询中的排序需求,并有能力选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid) - - Index Join 允许被连接的一侧为聚合数据集 [#37068](https://github.com/pingcap/tidb/issues/37068) @[elsa0520](https://github.com/elsa0520) **tw@Oreoxmt** - 优化 warning 日志,在遇到无法进行并发 apply 的情况下,warning 中显示阻碍并发的算子名称 [#50256](https://github.com/pingcap/tidb/issues/50256) @[hawkingrei](https://github.com/hawkingrei) - 优化 point get 情况下的索引选择,在都是 point get 的索引的情况下选择一个最好的 point get index [#50184](https://github.com/pingcap/tidb/issues/50184) @[elsa0520](https://github.com/elsa0520) - 将 sync load 统计信息任务的优先级暂时调整为 high,避免在 tikv 忙碌的情况下,sync load 大面积超时导致统计信息无法加载情况 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) @@ -395,7 +394,7 @@ TiDB 版本:8.0.0 - index merge 可以支持在 and 谓词中内嵌 mv index 和 OR 谓词 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) -- MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) + - MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) + TiKV From e1367cbacb1ab53b477bdb6342ad9b9ec36f37e9 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 25 Mar 2024 09:44:52 +0800 Subject: [PATCH 102/156] Apply suggestions from code review --- releases/release-8.0.0.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8dade1aaff33..4150c8ed89ac 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -399,19 +399,16 @@ TiDB 版本:8.0.0 + TiKV - - 强化 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - - 优化清理悲观锁逻辑,提升未提交事务处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** + - 增强 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** + - 优化清理悲观锁的逻辑,提高未提交事务的处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响。可通过 [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) 禁用该优化 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** - - pd_client: 用元数据存储接口代替原来的全局配置[#14484](https://github.com/tikv/tikv/issues/14484) @[HuSharp](https://github.com/HuSharp) - - 用write cf stats来决定加载数据行为,提高扫描性能[#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) - - 增加Raft conf change中删除节点和Voter降级的最近一次心跳的检查,确保改行为不会导致该Region不可访问 [#15799](https://github.com/tikv/tikv/issues/15799) @[tonyxuqqi](https://github.com/tonyxuqqi) - - 为pipelined DML增加 Flush和 BufferBatchGet 接口 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) - - Cgroup CPU和内存限制的监控改进 [#16392](https://github.com/tikv/tikv/issues/16392)@[pingandb](https://github.com/pingandb) - - 引入RocksDB Block和Titan Blob的共享缓存 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) - - 增加参数initial_scan_rate_limit的范围检查,不能小于1024 [#16488](https://github.com/tikv/tikv/issues/16488) @[RidRisR](https://github.com/RidRisR) - - 增加Region worker和快照生成 worker的CPU监控 [#16562](https://github.com/tikv/tikv/issues/16562) @[Connor1996](https://github.com/Connor1996) - - 增加peer和store消息的slow log [#16600](https://github.com/tikv/tikv/issues/16600) @[Connor1996](https://github.com/Connor1996) - - 默认打开 `async-io` . [#16614](https://github.com/tikv/tikv/issues/16614) @[LykxSassinator](https://github.com/LykxSassinator) + - PD client 使用元数据存储接口代替原有的全局配置 [#14484](https://github.com/tikv/tikv/issues/14484) @[HuSharp](https://github.com/HuSharp) + - 通过 write cf stats 决定数据加载行为,以提升扫描性能 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) + - 在 Raft conf change 过程中增加对删除节点和 Voter 降级的最近一次心跳检查,确保此行为不会导致该 Region 不可访问 [#15799](https://github.com/tikv/tikv/issues/15799) @[tonyxuqqi](https://github.com/tonyxuqqi) + - 为 Pipelined DML 增加 Flush 和 BufferBatchGet 接口 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) + - 改进 cgroup CPU 和内存限制的监控 [#16392](https://github.com/tikv/tikv/issues/16392) @[pingandb](https://github.com/pingandb) + - 增加 Region worker 和快照生成 worker 的 CPU 监控 [#16562](https://github.com/tikv/tikv/issues/16562) @[Connor1996](https://github.com/Connor1996) + - 增加 peer 和 store 消息的 slow log [#16600](https://github.com/tikv/tikv/issues/16600) @[Connor1996](https://github.com/Connor1996) + PD - 增强 PD 客户端的服务发现能力,提升其高可用性和负载平衡 [#7576](https://github.com/tikv/pd/issues/7576) @[CabinfeverB](https://github.com/CabinfeverB) From c777739950b6ee7a9a26d0b871b7f4fd207e7c66 Mon Sep 17 00:00:00 2001 From: 3pointer Date: Mon, 25 Mar 2024 10:39:43 +0800 Subject: [PATCH 103/156] Update releases/release-8.0.0.md Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4150c8ed89ac..88f94bc7f8be 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -434,11 +434,11 @@ TiDB 版本:8.0.0 + Backup & Restore (BR) - - 增加恢复参数 --load-stats 来控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) - - 在粗粒度打散 region 恢复放法,实现自适应获取并发参数功能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) - - 在 help 信息中显示 log 子命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) - - 在恢复过程中提前分配好 TableID,从而最大限度复用 Table ID,提升恢复性能。 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) - - 使用 BR 时,禁用 TiDB 内部的 gc memory limit tuner 功能。 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) + - 支持通过新增的恢复参数 `--load-stats` 控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) + - 粗粒度打散 Region 算法支持自适应获取并发参数,提升恢复性能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) + - 在 `br` 的命令行帮助信息中显示 `log` 命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) + - 支持在恢复过程中提前分配好 TableID,从而最大限度复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) + - 使用 BR 时,禁用 TiDB 内部的 gc memory limit tuner 功能,避免 OOM 问题 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) From 2f4ccf8af23294545274d143d97d226955fb24aa Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 25 Mar 2024 10:42:10 +0800 Subject: [PATCH 104/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 88f94bc7f8be..e1f924dcf51f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -57,7 +57,7 @@ TiDB 版本:8.0.0 TiCDC 支持 Simple 协议 **tw@lilin90** - TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪功能。 + TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪功能 (in-band schema tracking)。 TiCDC 支持 Debezium 协议 **tw@lilin90** From 9e83b07ad1e31c6b9460f1e846c0976d63ad54fa Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 25 Mar 2024 11:30:34 +0800 Subject: [PATCH 105/156] Apply suggestions from code review --- releases/release-8.0.0.md | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e1f924dcf51f..eab909bb73bf 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -360,8 +360,8 @@ TiDB 版本:8.0.0 | TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | -| TiDB Lightning | `logical-import-batch-rows` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | -| TiDB Lightning | `logical-import-batch-size` | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | +| TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | | TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | | TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | @@ -456,15 +456,11 @@ TiDB 版本:8.0.0 + TiDB Data Migration (DM) - 在 MariaDB 主从复制的场景中,即 MariaDB 主实例 -> MariaDB 从实例 -> DM -> TiDB 的迁移场景,当 `gtid_strict_mode = off` 且 MariaDB 从实例的 GTID 不严格递增时(例如,有业务数据写入 MariaDB 从实例),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** - - DM 丢失上游 binary 类型主键更新 [[#10672](https://github.com/pingcap/tiflow/issues/10672) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning - - Lightning 逻辑导入模式也支持批处理最大行数配置能力。[#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - - 区分导入空间检查节点是否是 TiFlash 节点 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) - - 修复 lightning 不能忽略 不匹配 symlink 规则 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) - - 优化 lightning 检查 TiKV 空间导致的性能回退 [#43636](https://github.com/pingcap/tidb/issues/43636) @[lance6716](https://github.com/lance6716) - - 修复在 NO_ZERO_IN_DATE sql-mode 下 lightning 不正确的 datetime 值编码 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) + - 逻辑导入模式下,支持使用 [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) 配置批处理的最大行数 [#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) + - 当 TiFlash 的导入空间不足时,会报错 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) + TiUP @@ -515,13 +511,12 @@ TiDB 版本:8.0.0 + TiKV - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 错误修复> TiKV - 修复开启 `tidb_enable_row_level_checksum` 可能导致 TiKV panic 的问题 [#16371](https://github.com/tikv/tikv/issues/16371) @[cfzjywxk](https://github.com/cfzjywxk) - (dup): release-7.1.4.md > 错误修复> TiKV - 修复休眠的 Region 在异常情况下未被及时唤醒的问题 [#16368](https://github.com/tikv/tikv/issues/16368) @[LykxSassinator](https://github.com/LykxSassinator) - (dup): release-7.1.4.md > 错误修复> TiKV - 通过在执行下线节点操作前检查该 Region 所有副本的上一次心跳时间,修复下线一个副本导致整个 Region 不可用的问题 [#16465](https://github.com/tikv/tikv/issues/16465) @[tonyxuqqi](https://github.com/tonyxuqqi) - (dup): release-7.1.4.md > 错误修复> TiKV - 修复 JSON 整型数值在大于 `INT64` 最大值但小于 `UINT64` 最大值时会被 TiKV 解析成 `FLOAT64` 导致结果和 TiDB 不一致的问题 [#16512](https://github.com/tikv/tikv/issues/16512) @[YangKeao](https://github.com/YangKeao) - - 修复监控指标`tikv_unified_read_pool_thread_count`有时没有数据的bug。[#16629](https://github.com/tikv/tikv/issues/16629) @[YuJuncen](https://github.com/YuJuncen) + - 修复监控指标 `tikv_unified_read_pool_thread_count` 有时没有数据的问题 [#16629](https://github.com/tikv/tikv/issues/16629) @[YuJuncen](https://github.com/YuJuncen) + + PD - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `MergeLabels` 函数时存在数据竞争的问题 [#7535](https://github.com/tikv/pd/issues/7535) @[lhy1024](https://github.com/lhy1024) @@ -550,9 +545,8 @@ TiDB 版本:8.0.0 + Backup & Restore (BR) - - 修复在 Region 立刻成为 Leader 后立刻分裂或合并,导致的日志备份 Checkpoint 不推进的问题。 [#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) - - 修复在某些情况下,日志备份无法监听 Region 的问题。[#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) - - 修复在某些极端情况下,全量备份因找不到 peer 导致 TiKV panic 的问题。[#16394](https://github.com/tikv/tikv/issues/16394) @[Leavrth](https://github.com/Leavrth) + - 修复在 Region 成为 Leader 后立刻分裂或合并,导致日志备份 Checkpoint 不推进的问题 [#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) + - 修复在某些极端情况下,全量备份因找不到 peer 导致 TiKV panic 的问题 [#16394](https://github.com/tikv/tikv/issues/16394) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复在同一节点上更改 TiKV IP 地址导致日志备份卡住的问题 [#50445](https://github.com/pingcap/tidb/issues/50445) @[3pointer](https://github.com/3pointer) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复从 S3 读文件内容时出错后无法重试的问题 [#49942](https://github.com/pingcap/tidb/issues/49942) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复数据恢复失败后,使用断点重启报错 `the target cluster is not fresh` 的问题 [#50232](https://github.com/pingcap/tidb/issues/50232) @[Leavrth](https://github.com/Leavrth) @@ -570,20 +564,20 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复 TiCDC 在开启单行数据正确性校验后由于时区不匹配导致 `TIMESTAMP` 类型 checksum 验证失败的问题 [#10573](https://github.com/pingcap/tiflow/issues/10573) @[3AceShowHand](https://github.com/3AceShowHand) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复 Syncpoint 表可能被错误同步的问题 [#10576](https://github.com/pingcap/tiflow/issues/10576) @[asddongmen](https://github.com/asddongmen) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复当使用 Apache Pulsar 作为下游时,无法正常启用 OAuth2.0、TLS 和 mTLS 的问题 [#10602](https://github.com/pingcap/tiflow/issues/10602) @[asddongmen](https://github.com/asddongmen) - - 修复 TiKV 重启时,kv client 处理异常导致 changefeed 延迟升高的问题 [#10584](https://github.com/pingcap/tiflow/issues/10584) @[asddongmen](https://github.com/asddongmen) - - 修复频繁 DDL 场景下由于错误的 BarrierTS 的导致数据被写入错误的 CSV 文件的问题[#10668](https://github.com/pingcap/tiflow/issues/10668) @[lidezhu](https://github.com/lidezhu) - - 修复 kv client 处理异常导致 TiCDC panic 的问题 [#10718](https://github.com/pingcap/tiflow/issues/10718) @[asddongmen](https://github.com/asddongmen) - - 修复表同步任务调度时导致 TiCDC panic 的问题 [#10613](https://github.com/pingcap/tiflow/issues/10613) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复当 TiKV 升级、重启、或驱逐 Leader 时,changefeed 可能卡住的问题 [#10584](https://github.com/pingcap/tiflow/issues/10584) @[asddongmen](https://github.com/asddongmen) + - 修复频繁执行 DDL 的场景中,由于错误的 BarrierTS 导致数据被写入到错误的 CSV 文件的问题 [#10668](https://github.com/pingcap/tiflow/issues/10668) @[lidezhu](https://github.com/lidezhu) + - 修复 KV Client 数据争用导致 TiCDC panic 的问题 [#10718](https://github.com/pingcap/tiflow/issues/10718) @[asddongmen](https://github.com/asddongmen) + - 修复调度表的同步任务时 TiCDC panic 的问题 [#10613](https://github.com/pingcap/tiflow/issues/10613) @[CharlesCheung96](https://github.com/CharlesCheung96) + TiDB Data Migration (DM) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复上游为 binary 类型主键时丢失数据的问题 [[#10672](https://github.com/pingcap/tiflow/issues/10672) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复检查 TiKV 空间导致的性能回退的问题 [#43636](https://github.com/pingcap/tidb/issues/43636) @[lance6716](https://github.com/lance6716) + - 修复在 `NO_ZERO_IN_DATE` SQL 模式下,`DATETIME` 值编码错误的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复导入数据时没有忽略不匹配的符号链接规则的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复在扫描数据文件时,遇到不合法符号链接文件而报错的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复当 `sql_mode` 中不包含 `NO_ZERO_IN_DATE` 时,TiDB Lightning 无法正确解析包含 `0` 的日期值的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) From 97df2c2f523a0d17c7182608673fd1157b049a98 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 25 Mar 2024 11:40:31 +0800 Subject: [PATCH 106/156] Update TiCDC descriptions to resolve dev comments --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index eab909bb73bf..fdaeadd11f79 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -57,11 +57,11 @@ TiDB 版本:8.0.0 TiCDC 支持 Simple 协议 **tw@lilin90** - TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪功能 (in-band schema tracking)。 + TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入模式信息,实现了动态的消息模式跟踪功能 (in-band schema tracking)。 TiCDC 支持 Debezium 协议 **tw@lilin90** - TiCDC 现在可以使用生成 Debezium 格式消息的协议向 Kafka sink 发布复制事件。 + TiCDC 支持了新的 Debezium 协议,现在可以使用生成 Debezium 格式消息的协议向 Kafka sink 发布复制事件。 @@ -265,7 +265,7 @@ TiDB 版本:8.0.0 * TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) **tw@lilin90** - TiCDC 引入了对新的 Simple 协议的支持,该协议支持带内模式跟踪 (in-band schema tracking)。 + TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入模式信息,实现了动态的消息模式跟踪功能 (in-band schema tracking)。 更多信息,请参考[用户文档](/ticdc/ticdc-simple-protocol.md)。 From 7c76efbccf359fc00330e403b5298aa6669adb6b Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 25 Mar 2024 14:40:37 +0800 Subject: [PATCH 107/156] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-8.0.0.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index fdaeadd11f79..ad046c409b20 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -399,30 +399,30 @@ TiDB 版本:8.0.0 + TiKV - - 增强 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) **tw@qiancai** - - 优化清理悲观锁的逻辑,提高未提交事务的处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) **tw@Oreoxmt** - - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响。可通过 [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) 禁用该优化 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) **tw@qiancai** - - PD client 使用元数据存储接口代替原有的全局配置 [#14484](https://github.com/tikv/tikv/issues/14484) @[HuSharp](https://github.com/HuSharp) + - 增强 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) + - 优化清理悲观锁的逻辑,提高未提交事务的处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) + - 增加 TiKV 统一健康控制,降低单个 TiKV 节点异常对集群访问性能的影响。可通过 [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) 禁用该优化 [#16297](https://github.com/tikv/tikv/issues/16297) [#1104](https://github.com/tikv/client-go/issues/1104) [#1167](https://github.com/tikv/client-go/issues/1167) @[MyonKeminta](https://github.com/MyonKeminta) @[zyguan](https://github.com/zyguan) @[crazycs520](https://github.com/crazycs520) + - PD client 使用元数据存储接口代替原有的全局配置接口 [#14484](https://github.com/tikv/tikv/issues/14484) @[HuSharp](https://github.com/HuSharp) - 通过 write cf stats 决定数据加载行为,以提升扫描性能 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) - - 在 Raft conf change 过程中增加对删除节点和 Voter 降级的最近一次心跳检查,确保此行为不会导致该 Region 不可访问 [#15799](https://github.com/tikv/tikv/issues/15799) @[tonyxuqqi](https://github.com/tonyxuqqi) + - 在 Raft conf change 过程中,增加了检查删除节点和 Voter 降级的最近一次心跳,确保此行为不会导致该 Region 不可访问 [#15799](https://github.com/tikv/tikv/issues/15799) @[tonyxuqqi](https://github.com/tonyxuqqi) - 为 Pipelined DML 增加 Flush 和 BufferBatchGet 接口 [#16291](https://github.com/tikv/tikv/issues/16291) @[ekexium](https://github.com/ekexium) - - 改进 cgroup CPU 和内存限制的监控 [#16392](https://github.com/tikv/tikv/issues/16392) @[pingandb](https://github.com/pingandb) + - 增加 cgroup CPU 和内存限制的监控 [#16392](https://github.com/tikv/tikv/issues/16392) @[pingandb](https://github.com/pingandb) - 增加 Region worker 和快照生成 worker 的 CPU 监控 [#16562](https://github.com/tikv/tikv/issues/16562) @[Connor1996](https://github.com/Connor1996) - 增加 peer 和 store 消息的 slow log [#16600](https://github.com/tikv/tikv/issues/16600) @[Connor1996](https://github.com/Connor1996) + + PD - 增强 PD 客户端的服务发现能力,提升其高可用性和负载平衡 [#7576](https://github.com/tikv/pd/issues/7576) @[CabinfeverB](https://github.com/CabinfeverB) - 增强 PD 客户端的重试机制 [#7673](https://github.com/tikv/pd/issues/7673) @[JmPotato](https://github.com/JmPotato) - - 增加 cgroup 的监控和告警 [#7716](https://github.com/tikv/pd/issues/7716) [#7918](https://github.com/tikv/pd/issues/7918) @[pingandb](https://github.com/pingandb) @[rleungx](https://github.com/rleungx) - - 提升使用 Etcd watch 的性能和高可用性 [#7738](https://github.com/tikv/pd/issues/7738) [#7724](https://github.com/tikv/pd/issues/7724) [#7689](https://github.com/tikv/pd/issues/7689) @[lhy1024](https://github.com/lhy1024) + - 增加 cgroup CPU 和内存的监控和告警 [#7716](https://github.com/tikv/pd/issues/7716) [#7918](https://github.com/tikv/pd/issues/7918) @[pingandb](https://github.com/pingandb) @[rleungx](https://github.com/rleungx) + - 提升使用 etcd watch 的性能和高可用性 [#7738](https://github.com/tikv/pd/issues/7738) [#7724](https://github.com/tikv/pd/issues/7724) [#7689](https://github.com/tikv/pd/issues/7689) @[lhy1024](https://github.com/lhy1024) - 增加更多心跳监控,以便更好地分析性能瓶颈 [#7868](https://github.com/tikv/pd/issues/7868) @[nolouch](https://github.com/nolouch) - - 减少 Etcd leader 对 PD leader 的影响 [#7499](https://github.com/tikv/pd/issues/7499) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) - - 增强对 Etcd 不健康节点的检测机制 [#7730](https://github.com/tikv/pd/issues/7730) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) + - 减少 etcd leader 对 PD leader 的影响 [#7499](https://github.com/tikv/pd/issues/7499) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) + - 增强对不健康的 etcd 节点的检测机制 [#7730](https://github.com/tikv/pd/issues/7730) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) - 优化 pd-ctl 中 GC safepoint 的相关显示 [#7767](https://github.com/tikv/pd/issues/7767) @[nolouch](https://github.com/nolouch) - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + TiFlash From d4a2b34f0b7ba63dd6fe5271f8b76f78f8da4ac2 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 25 Mar 2024 15:29:21 +0800 Subject: [PATCH 108/156] refine descriptions for TiDB improvements --- releases/release-8.0.0.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index ad046c409b20..dca7e97b1af4 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -381,20 +381,18 @@ TiDB 版本:8.0.0 + TiDB - - 提升 Sort 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** + - 提升 `Sort` 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - - 用多个等值条件做表连接时,支持利用匹配到部分条件的索引做 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - - 增强 Index merge 能力,使其能感知查询中的排序需求,并有能力选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid) - - 优化 warning 日志,在遇到无法进行并发 apply 的情况下,warning 中显示阻碍并发的算子名称 [#50256](https://github.com/pingcap/tidb/issues/50256) @[hawkingrei](https://github.com/hawkingrei) - - 优化 point get 情况下的索引选择,在都是 point get 的索引的情况下选择一个最好的 point get index [#50184](https://github.com/pingcap/tidb/issues/50184) @[elsa0520](https://github.com/elsa0520) - - 将 sync load 统计信息任务的优先级暂时调整为 high,避免在 tikv 忙碌的情况下,sync load 大面积超时导致统计信息无法加载情况 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) - - prepare 时,在 warning 中显示无法 plan cache 的具体原因 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) - - 改进在多次更新同一行的情况下,查询估算偏差的问题 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - - 支持使用 where 条件中的部分等值条件来构造 index join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) - - index merge 可以支持在 and 谓词中内嵌 mv index 和 OR 谓词 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) + - 在处理包含多个等值条件的表连接查询时,支持使用匹配部分条件的索引构造 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** + - 增强 Index Merge 能力,使其能识别查询中的排序需求,并能选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid + - 当 `Apply` 算子没有并发执行时,支持通过执行 `SHOW WARNINGS` 查看阻碍并发的算子名 [#50256](https://github.com/pingcap/tidb/issues/50256) @[hawkingrei](https://github.com/hawkingrei) + - 优化点查的索引选择,在所有的索引都支持点查时选择其中性能最优的一个用于查询 [#50184](https://github.com/pingcap/tidb/issues/50184) @[elsa0520](https://github.com/elsa0520) + - 将统计信息同步加载任务的优先级暂时调整为 high,避免在 TiKV 高负载时同步加载任务大面积超时,从而导致统计信息无法加载 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) + - 在 `PREPARE` 语句无法命中执行计划缓存时,支持通过执行 `SHOW WARNINGS` 查看原因 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) + - 提升当多次更新同一行的数据时查询估算信息的准确性 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) + - Index Merge 支持在 `AND` 谓词中内嵌多值索引和 `OR` 操作符 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) - - MDL View 中不显示 blocked DDL,当 DDL 任务中包含多张表 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) + TiKV @@ -498,6 +496,7 @@ TiDB 版本:8.0.0 - 修正 tablefullscan 在查询不带谓词情况下,不加载统计信息的问题 [#48257](https://github.com/pingcap/tidb/issues/48257) @[time-and-fate](https://github.com/time-and-fate) - 修复 init_stats 流程中,可能存在的 panic 以及 panic 后导致 init stats 流程直接退出的问题 [#51581](https://github.com/pingcap/tidb/issues/51581) @[hawkingrei](https://github.com/hawkingrei) - 修复 in 谓词中带 null 时,导致的查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) + - 修复当 DDL 任务中包含多张表时,MDL View 中不显示 blocked DDL 的问题[#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 CTE 查询使用的内存超限时可能会导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) From 28e396b0e77aa812b95aa8ba4a476177c9e04d8b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 25 Mar 2024 15:31:22 +0800 Subject: [PATCH 109/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index dca7e97b1af4..0a3c6898f908 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -448,7 +448,7 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) - (dup): release-7.5.1.md > 改进提升> Tools> TiCDC - 支持[查询 changefeed 的下游同步状态](https://docs.pingcap.com/zh/tidb/v7.5/ticdc-open-api-v2#查询特定同步任务是否完成),以确认 TiCDC 是否已将所接收到的上游变更完全同步到下游 [#10289](https://github.com/pingcap/tiflow/issues/10289) @[hongyunyan](https://github.com/hongyunyan) - - 通过优化 `RowChangedEvent` 的内存占用,降低 TiCDC 同步数据时的内存消耗 [#10386](https://github.com/pingcap/tiflow/issues/10386) @[lidezhu](https://github.com/lidezhu) + - 优化 `RowChangedEvent` 的内存占用,降低 TiCDC 同步数据时的内存消耗 [#10386](https://github.com/pingcap/tiflow/issues/10386) @[lidezhu](https://github.com/lidezhu) - 增加在创建和恢复 changefeed 任务时验证 start-ts 参数是否合法 [#10499](https://github.com/pingcap/tiflow/issues/10499) @[3AceShowHand](https://github.com/3AceShowHand) + TiDB Data Migration (DM) From 71a7ec9c55137c1498712bfb959ec47ef35463d9 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 25 Mar 2024 15:32:21 +0800 Subject: [PATCH 110/156] adjust sequences in TiDB improvements --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 0a3c6898f908..6af7eb1ba957 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -381,6 +381,8 @@ TiDB 版本:8.0.0 + TiDB + - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) + - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 提升 `Sort` 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 在处理包含多个等值条件的表连接查询时,支持使用匹配部分条件的索引构造 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** @@ -391,9 +393,7 @@ TiDB 版本:8.0.0 - 在 `PREPARE` 语句无法命中执行计划缓存时,支持通过执行 `SHOW WARNINGS` 查看原因 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) - 提升当多次更新同一行的数据时查询估算信息的准确性 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - Index Merge 支持在 `AND` 谓词中内嵌多值索引和 `OR` 操作符 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) - - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) + TiKV From b0fdd67702c9db83a9355321194c3312fcc439ce Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 25 Mar 2024 17:53:32 +0800 Subject: [PATCH 111/156] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-8.0.0.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 6af7eb1ba957..ba3280f6f063 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -340,7 +340,7 @@ TiDB 版本:8.0.0 | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | | [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | -| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/fast-create-table.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 [`CREATE TABLE`](/sql-statements/sql-statement-create-table.md) 加速建表。 | +| [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/accelerated-table-creation.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 [`CREATE TABLE`](/sql-statements/sql-statement-create-table.md) 加速建表。 | | [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制加载 binding 的超时时间。当加载 binding 的执行时间超过该值时,会停止加载。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| @@ -447,9 +447,8 @@ TiDB 版本:8.0.0 - note [#issue](链接) @[贡献者 GitHub ID](链接) - note [#issue](链接) @[贡献者 GitHub ID](链接) - - (dup): release-7.5.1.md > 改进提升> Tools> TiCDC - 支持[查询 changefeed 的下游同步状态](https://docs.pingcap.com/zh/tidb/v7.5/ticdc-open-api-v2#查询特定同步任务是否完成),以确认 TiCDC 是否已将所接收到的上游变更完全同步到下游 [#10289](https://github.com/pingcap/tiflow/issues/10289) @[hongyunyan](https://github.com/hongyunyan) - 优化 `RowChangedEvent` 的内存占用,降低 TiCDC 同步数据时的内存消耗 [#10386](https://github.com/pingcap/tiflow/issues/10386) @[lidezhu](https://github.com/lidezhu) - - 增加在创建和恢复 changefeed 任务时验证 start-ts 参数是否合法 [#10499](https://github.com/pingcap/tiflow/issues/10499) @[3AceShowHand](https://github.com/3AceShowHand) + - 增加在创建和恢复 changefeed 任务时验证 `start-ts` 参数是否合法 [#10499](https://github.com/pingcap/tiflow/issues/10499) @[3AceShowHand](https://github.com/3AceShowHand) + TiDB Data Migration (DM) @@ -457,8 +456,8 @@ TiDB 版本:8.0.0 + TiDB Lightning - - 逻辑导入模式下,支持使用 [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) 配置批处理的最大行数 [#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - - 当 TiFlash 的导入空间不足时,会报错 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) + - 在逻辑导入模式下,支持使用 [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) 配置批处理的最大行数 [#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) + - 当 TiFlash 的导入空间不足时,TiDB Lightning 会报错 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) + TiUP @@ -538,7 +537,7 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 PITR 恢复任务或 `FLASHBACK CLUSTER TO` 后,TiFlash 副本数据可能被意外删除,导致数据异常的问题 [#8777](https://github.com/pingcap/tiflash/issues/8777) @[JaySon-Huang](https://github.com/JaySon-Huang) - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 `ALTER TABLE ... MODIFY COLUMN ... NOT NULL` 时,将原本可为空的列修改为不可为空之后,导致 TiFlash panic 的问题 [#8419](https://github.com/pingcap/tiflash/issues/8419) @[JaySon-Huang](https://github.com/JaySon-Huang) - 修复存算分离架构下,出现网络隔离后查询可能会被永久阻塞的问题 [#8806](https://github.com/pingcap/tiflash/issues/8806) @[JinheLin](https://github.com/JinheLin) - - 修复存算分离架构下,TiFlash shutdown 过程中可能 panic 的问题 [#8837](https://github.com/pingcap/tiflash/issues/8837) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复存算分离架构下,TiFlash 关闭过程中可能 panic 的问题 [#8837](https://github.com/pingcap/tiflash/issues/8837) @[JaySon-Huang](https://github.com/JaySon-Huang) + Tools @@ -563,20 +562,18 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复 TiCDC 在开启单行数据正确性校验后由于时区不匹配导致 `TIMESTAMP` 类型 checksum 验证失败的问题 [#10573](https://github.com/pingcap/tiflow/issues/10573) @[3AceShowHand](https://github.com/3AceShowHand) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复 Syncpoint 表可能被错误同步的问题 [#10576](https://github.com/pingcap/tiflow/issues/10576) @[asddongmen](https://github.com/asddongmen) - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复当使用 Apache Pulsar 作为下游时,无法正常启用 OAuth2.0、TLS 和 mTLS 的问题 [#10602](https://github.com/pingcap/tiflow/issues/10602) @[asddongmen](https://github.com/asddongmen) - - 修复当 TiKV 升级、重启、或驱逐 Leader 时,changefeed 可能卡住的问题 [#10584](https://github.com/pingcap/tiflow/issues/10584) @[asddongmen](https://github.com/asddongmen) - - 修复频繁执行 DDL 的场景中,由于错误的 BarrierTS 导致数据被写入到错误的 CSV 文件的问题 [#10668](https://github.com/pingcap/tiflow/issues/10668) @[lidezhu](https://github.com/lidezhu) + - 修复当 TiKV 升级、重启或驱逐 Leader 时,changefeed 可能卡住的问题 [#10584](https://github.com/pingcap/tiflow/issues/10584) @[asddongmen](https://github.com/asddongmen) + - 修复在频繁执行 DDL 的场景中,由于错误的 BarrierTS 导致数据被写入到错误的 CSV 文件的问题 [#10668](https://github.com/pingcap/tiflow/issues/10668) @[lidezhu](https://github.com/lidezhu) - 修复 KV Client 数据争用导致 TiCDC panic 的问题 [#10718](https://github.com/pingcap/tiflow/issues/10718) @[asddongmen](https://github.com/asddongmen) - - 修复调度表的同步任务时 TiCDC panic 的问题 [#10613](https://github.com/pingcap/tiflow/issues/10613) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复在调度表的同步任务时 TiCDC panic 的问题 [#10613](https://github.com/pingcap/tiflow/issues/10613) @[CharlesCheung96](https://github.com/CharlesCheung96) + TiDB Data Migration (DM) - - 修复上游为 binary 类型主键时丢失数据的问题 [[#10672](https://github.com/pingcap/tiflow/issues/10672) @[GMHDBJD](https://github.com/GMHDBJD) + - 修复上游为 binary 类型主键时丢失数据的问题 [#10672](https://github.com/pingcap/tiflow/issues/10672) @[GMHDBJD](https://github.com/GMHDBJD) + TiDB Lightning - 修复检查 TiKV 空间导致的性能回退的问题 [#43636](https://github.com/pingcap/tidb/issues/43636) @[lance6716](https://github.com/lance6716) - - 修复在 `NO_ZERO_IN_DATE` SQL 模式下,`DATETIME` 值编码错误的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) - - 修复导入数据时没有忽略不匹配的符号链接规则的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复在扫描数据文件时,遇到不合法符号链接文件而报错的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复当 `sql_mode` 中不包含 `NO_ZERO_IN_DATE` 时,TiDB Lightning 无法正确解析包含 `0` 的日期值的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) From 6b4fe1bad18674ecbba3e73594f962ef5e1a5395 Mon Sep 17 00:00:00 2001 From: long0712 <87366891+ljun0712@users.noreply.github.com> Date: Tue, 26 Mar 2024 11:59:19 +0800 Subject: [PATCH 112/156] Update releases/release-8.0.0.md Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index ba3280f6f063..df45586ca9eb 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -357,7 +357,8 @@ TiDB 版本:8.0.0 | TiDB | [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) | 新增 | 控制是否使用 replica selector v2 版本,默认值为 `true`。 | | TiKV | [`log-backup.initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值为 `1MiB` 的限制。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| -| TiKV | [`security.encryption.master-key.vendor`] | 新增 | 指定住密钥的服务商类型,支持可选值为 `gcp`、`azure` | +| TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | +| TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | | TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | From d617f3d359477e679321f18f08ff50449ba90526 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 26 Mar 2024 13:24:59 +0800 Subject: [PATCH 113/156] update parameter changes --- releases/release-8.0.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index df45586ca9eb..d67cd81cc6e6 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -354,13 +354,15 @@ TiDB 版本:8.0.0 | TiDB | [`tls-version`](/tidb-configuration-file.md#tls-version) | 修改 | 该参数不再支持 `"TLSv1.0"` 和 `"TLSv1.1"`,只支持 `"TLSv1.2"` 和 `"TLSv1.3"`。 | | TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB | [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | -| TiDB | [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) | 新增 | 控制是否使用 replica selector v2 版本,默认值为 `true`。 | +| TiDB | [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) | 新增 | 控制给 TiKV 发送 RPC 请求时,是否使用新版本的 Region 副本选择器。默认值为 `true`。 | | TiKV | [`log-backup.initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值为 `1MiB` 的限制。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| +| TiKV | [`rocksdb.defaultcf.titan.blob-cache-size`](/tikv-configuration-file.md#blob-cache-size) | 修改 | 从 v8.0.0 开始,TiKV 引入了 `shared-blob-cache` 配置项并默认开启,因此无需再单独设置 `blob-cache-size`。只有当 `shared-blob-cache` 设置为 `false` 时,`blob-cache-size` 的设置才生效。| +| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| | TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | | TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| -| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用新参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | -| TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该配置项。 | +| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该参数。 | | TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | | TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | From 17a54ad5fec2050400cf7620d752609bd5fe06d0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Mar 2024 14:23:38 +0800 Subject: [PATCH 114/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index d67cd81cc6e6..08dec5f34751 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -24,16 +24,16 @@ TiDB 版本:8.0.0 可扩展性与性能 - 支持拆分 PD 功能为微服务,提高可扩展性(实验特性)**tw@qiancai** + 支持拆分 PD 功能为微服务,提高可扩展性(实验特性) Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。 - 用于处理更大事务的批量 DML 执行方式(实验特性)**tw@Oreoxmt** + 用于处理更大事务的批量 DML 执行方式(实验特性) 大批量的 DML 任务,例如大规模的清理任务、连接或聚合,可能会消耗大量内存,并且在非常大的规模上受到限制。批量 DML (tidb_dml_type = "bulk") 是一种新的 DML 类型,用于更高效地处理大批量 DML 任务,同时提供事务保证并减轻 OOM 问题。该功能与用于数据加载的导入、加载和恢复操作不同。 - Acceleration of cluster snapshot restore speed **tw@qiancai** - An optimization to involve all TiKV nodes in the preparation step for cluster restores was introduced to leverage scale such that restore speeds for a cluster are much faster for larger sets of data on larger clusters. Real world tests exhibit restore acceleration of ~300% in slower cases. + 提升 BR 快照恢复速度 (GA) + 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,在恢复较慢的情况下,该功能可将恢复速度提升大约 3 倍。 增强在有大量表时缓存 schema 信息的稳定性**tw@hfxsd** @@ -46,21 +46,16 @@ TiDB 版本:8.0.0 数据库管理与可观测性 - 支持观测索引使用情况 **tw@Oreoxmt** + 支持观测索引使用情况 TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。 - 数据迁移 - TiCDC 支持在双向复制 (Bidirectional replication, BDR) 模式下同步 DDL 语句 (GA) **tw@hfxsd** - TiCDC 支持将集群指定为 PRIMARY BDR role,并且可以将 DDL 语句从该集群同步到下游集群。 - - - - TiCDC 支持 Simple 协议 **tw@lilin90** + 数据迁移 + TiCDC 支持 Simple 协议 TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入模式信息,实现了动态的消息模式跟踪功能 (in-band schema tracking)。 - TiCDC 支持 Debezium 协议 **tw@lilin90** + TiCDC 支持 Debezium 协议 TiCDC 支持了新的 Debezium 协议,现在可以使用生成 Debezium 格式消息的协议向 Kafka sink 发布复制事件。 @@ -275,12 +270,6 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/ticdc/ticdc-debezium.md)。 -* TiCDC 支持通过双向复制模式 (Bi-Directional Replication, BDR) 同步 DDL 语句 (GA) [#10301](https://github.com/pingcap/tiflow/issues/10301) [#48519](https://github.com/pingcap/tidb/issues/48519) @[okJiang](https://github.com/okJiang) @[asddongmen](https://github.com/asddongmen) **tw@hfxsd** - - TiDB v7.6.0 引入了通过双向复制模式同步 DDL 语句的功能作为实验特性。以前,TiCDC 不支持复制 DDL 语句,因此要使用 TiCDC 双向复制必须将 DDL 语句分别应用到两个 TiDB 集群。有了该特性,TiCDC 可以为一个集群分配 `PRIMARY` BDR role,并将该集群的 DDL 语句复制到下游集群。该功能在 v8.0.0 成为正式功能。 - - 更多信息,请参考[用户文档](/ticdc/ticdc-bidirectional-replication.md)。 - * DM 支持使用用户提供的密钥对源数据库和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 在之前的版本中,DM 使用了一个内置的一个固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 @@ -438,9 +427,8 @@ TiDB 版本:8.0.0 - 支持通过新增的恢复参数 `--load-stats` 控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) - 粗粒度打散 Region 算法支持自适应获取并发参数,提升恢复性能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) - 在 `br` 的命令行帮助信息中显示 `log` 命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) - - 支持在恢复过程中提前分配好 TableID,从而最大限度复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) - - 使用 BR 时,禁用 TiDB 内部的 gc memory limit tuner 功能,避免 OOM 问题 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 支持在恢复过程中提前分配好 Table ID,从而最大限度复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) + - 使用 BR 时,禁用 TiDB 内部的 GC memory limit tuner 功能,避免 OOM 问题 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 在日志备份过程中,增加了在日志和监控指标中打印影响 global checkpoint 推进的最慢的 Region 的信息 [#51046](https://github.com/pingcap/tidb/issues/51046) @[YuJuncen](https://github.com/YuJuncen) @@ -471,9 +459,9 @@ TiDB 版本:8.0.0 + TiDB - - 修复在无数据变更情况下,auto analyze 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) - - 修复 auto analyze 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) - - 修复 7.5 multi-schema change 加多个索引优化引入的 bug [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) + - 修复在无数据变更情况下,`auto analyze` 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) + - 修复 `auto analyze` 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) + - 修复使用单个 SQL 语句添加多个索引导致的索引不一致问题 [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复查询使用 `NATURAL JOIN` 时可能报错 `Column ... in from clause is ambiguous` 的问题 [#32044](https://github.com/pingcap/tidb/issues/32044) @[AilinKid](https://github.com/AilinKid) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 TiDB 错误地消除 `group by` 中的常量值导致查询结果出错的问题 [#38756](https://github.com/pingcap/tidb/issues/38756) @[hi-rustin](https://github.com/hi-rustin) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 `LEADING` hint 在 `UNION ALL` 语句中无法生效的问题 [#50067](https://github.com/pingcap/tidb/issues/50067) @[hawkingrei](https://github.com/hawkingrei) From ddd536fff3a6eabcd152596b9fdd1633e56604b3 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Mar 2024 14:24:20 +0800 Subject: [PATCH 115/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 08dec5f34751..3b5a2f006080 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -36,7 +36,7 @@ TiDB 版本:8.0.0 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,在恢复较慢的情况下,该功能可将恢复速度提升大约 3 倍。 - 增强在有大量表时缓存 schema 信息的稳定性**tw@hfxsd** + 增强在有大量表时缓存 schema 信息的稳定性 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,尽管支持处理百万级或更大数量的表,但可能会影响用户体验。TiDB v8.0.0 通过以下增强功能改善了这一问题:
  • 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
  • From 15eb09c7a250f9acbdd850d2066ade2594b67236 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 26 Mar 2024 14:56:47 +0800 Subject: [PATCH 116/156] fix build failure --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 3b5a2f006080..2ae57d3ca0ff 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -24,7 +24,7 @@ TiDB 版本:8.0.0 可扩展性与性能 - 支持拆分 PD 功能为微服务,提高可扩展性(实验特性) + 支持拆分 PD 功能为微服务,提高可扩展性(实验特性) Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。 @@ -32,7 +32,7 @@ TiDB 版本:8.0.0 大批量的 DML 任务,例如大规模的清理任务、连接或聚合,可能会消耗大量内存,并且在非常大的规模上受到限制。批量 DML (tidb_dml_type = "bulk") 是一种新的 DML 类型,用于更高效地处理大批量 DML 任务,同时提供事务保证并减轻 OOM 问题。该功能与用于数据加载的导入、加载和恢复操作不同。 - 提升 BR 快照恢复速度 (GA) + 提升 BR 快照恢复速度 (GA) 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,在恢复较慢的情况下,该功能可将恢复速度提升大约 3 倍。 From a643349d30ff7ba1838f80d15aa14fcda517d3e0 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 26 Mar 2024 15:23:32 +0800 Subject: [PATCH 117/156] fix build failure --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 2ae57d3ca0ff..e768ce7e4dc2 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -25,7 +25,7 @@ TiDB 版本:8.0.0 可扩展性与性能 支持拆分 PD 功能为微服务,提高可扩展性(实验特性) - Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。 + Placement Driver (PD) 包含了多个确保 TiDB 集群能正常运行的关键模块。当集群的工作负载增加时,PD 中各模块的资源消耗也会随之增加,造成这些模块间功能的相互干扰,进而影响整个集群的服务质量。为了解决该问题,从 v8.0.0 起,TiDB 支持将 PD 的 TSO 和调度模块拆分成可独立部署的微服务,可以显著降低当集群规模扩大时模块间的互相影响。通过这种架构,TiDB 能够支持更大规模、更高负载的集群。 用于处理更大事务的批量 DML 执行方式(实验特性) From 9c4a219c79ab9e8a6674c615667b1333fe002e16 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Mar 2024 16:34:18 +0800 Subject: [PATCH 118/156] Apply suggestions from code review --- releases/release-8.0.0.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e768ce7e4dc2..aba22aef635a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -459,7 +459,7 @@ TiDB 版本:8.0.0 + TiDB - - 修复在无数据变更情况下,`auto analyze` 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) + - 修复在无数据变更的情况下,`auto analyze` 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) - 修复 `auto analyze` 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) - 修复使用单个 SQL 语句添加多个索引导致的索引不一致问题 [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复查询使用 `NATURAL JOIN` 时可能报错 `Column ... in from clause is ambiguous` 的问题 [#32044](https://github.com/pingcap/tidb/issues/32044) @[AilinKid](https://github.com/AilinKid) @@ -471,21 +471,21 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> TiDB - 修复常量传播在处理 `ENUM` 或 `SET` 类型时结果出错的问题 [#49440](https://github.com/pingcap/tidb/issues/49440) @[winoros](https://github.com/winoros) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复包含 Apply 操作的查询在报错 `fatal error: concurrent map writes` 后导致 TiDB 崩溃的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用 `SET_VAR` 控制字符串类型的变量可能会失效的问题 [#50507](https://github.com/pingcap/tidb/issues/50507) @[qw4990](https://github.com/qw4990) - - 修复 “ tidb_sysdate_is_now” 设置为 1 的情况下, sysdate() 函数错误的使用了 plan cache 中缓存的时间的问题。[#49299](https://github.com/pingcap/tidb/issues/49299) @[hawkingrei](https://github.com/hawkingrei) - - 修复 universal binding 中,如果数据库名字为大写无法生效的问题 [#50646](https://github.com/pingcap/tidb/issues/50646) @[qw4990](https://github.com/qw4990) - - 修复 index merge 中,底层局部 index path 选中重复索引的问题 [#50496](https://github.com/pingcap/tidb/issues/50496) @[AilinKid](https://github.com/AilinKid) - - 修复 plan replayer,当 sql binding 中包含 in 语句是无法 load 的问题 [#43192](https://github.com/pingcap/tidb/issues/43192) @[King-Dylan](https://github.com/King-Dylan) - - 修复当多个 analyze 任务失败时,无法正确的显示 analyze 失败原因的问题 [#50481](https://github.com/pingcap/tidb/issues/50481) @[hi-rustin](https://github.com/hi-rustin) - - 修复 sync_load_timeout 设置不生效的问题 [#50872](https://github.com/pingcap/tidb/issues/50872) @[jiyfhust](https://github.com/jiyfhust) - - 修复 max_execute_time 多层设置相互影响的问题 [#50914](https://github.com/pingcap/tidb/issues/50914) @[jiyfhust](https://github.com/jiyfhust) + - 修复当 `tidb_sysdate_is_now` 设置为 `1` 时,`SYSDATE()` 函数错误的使用了计划缓存中的时间的问题 [#49299](https://github.com/pingcap/tidb/issues/49299) @[hawkingrei](https://github.com/hawkingrei) + - 修复执行 `CREATE GLOBAL BINDING` 语句时,如果数据库名字为大写,则绑定不生效的问题 [#50646](https://github.com/pingcap/tidb/issues/50646) @[qw4990](https://github.com/qw4990) + - 修复 `Index Path` 选中重复索引的问题 [#50496](https://github.com/pingcap/tidb/issues/50496) @[AilinKid](https://github.com/AilinKid) + - 修复当 `CREATE GLOBAL BINDING` 语句中包含 `IN()` 时,`PLAN REPLAYER` 无法加载绑定的问题 [#43192](https://github.com/pingcap/tidb/issues/43192) @[King-Dylan](https://github.com/King-Dylan) + - 修复当多个 `analyze` 任务失败时,没有正确记录失败原因的问题 [#50481](https://github.com/pingcap/tidb/issues/50481) @[hi-rustin](https://github.com/hi-rustin) + - 修复系统变量 `tidb_stats_load_sync_wait` 设置不生效的问题 [#50872](https://github.com/pingcap/tidb/issues/50872) @[jiyfhust](https://github.com/jiyfhust) + - 修复 `max_execute_time` 多层设置相互影响的问题 [#50914](https://github.com/pingcap/tidb/issues/50914) @[jiyfhust](https://github.com/jiyfhust) - 修复并发更新统计信息导致的线程安全问题 [#50835](https://github.com/pingcap/tidb/issues/50835) @[hi-rustin](https://github.com/hi-rustin) - - 修复 auto analyze 分区表可能导致的潜在 panic 问题 [#51187](https://github.com/pingcap/tidb/issues/51187) @[hi-rustin](https://github.com/hi-rustin) - - 修复 sql 中 in 谓词带不同个数的 values 时,可能导致 sql binding 不生效的问题 [#51222](https://github.com/pingcap/tidb/issues/51222) @[hawkingrei](https://github.com/hawkingrei) + - 修复对分区表执行 `auto analyze` 可能导致 TiDB panic 的问题 [#51187](https://github.com/pingcap/tidb/issues/51187) @[hi-rustin](https://github.com/hi-rustin) + - 修复 SQL 语句中 `IN()` 谓词包含不同个数的值时,可能导致 SQL 绑定不生效的问题 [#51222](https://github.com/pingcap/tidb/issues/51222) @[hawkingrei](https://github.com/hawkingrei) - 修复 TiDB 无法正确转换表达式中系统变量类型的问题 [#43527](https://github.com/pingcap/tidb/issues/43527) @[hi-rustin](https://github.com/hi-rustin) - - 在 force_init_stats 生效情况下,不 listen 对应的端口 [#51473](https://github.com/pingcap/tidb/issues/51473) @[hawkingrei](https://github.com/hawkingrei) - - 修正 tablefullscan 在查询不带谓词情况下,不加载统计信息的问题 [#48257](https://github.com/pingcap/tidb/issues/48257) @[time-and-fate](https://github.com/time-and-fate) - - 修复 init_stats 流程中,可能存在的 panic 以及 panic 后导致 init stats 流程直接退出的问题 [#51581](https://github.com/pingcap/tidb/issues/51581) @[hawkingrei](https://github.com/hawkingrei) - - 修复 in 谓词中带 null 时,导致的查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) + - 修复在配置 `force_init_stats` 的情况下,TiDB 没有监听对应端口的问题 [#51473](https://github.com/pingcap/tidb/issues/51473) @[hawkingrei](https://github.com/hawkingrei) + - 修复在 `determinate` 模式下 (`tidb_opt_objective='determinate'`),如果查询不包含谓词,可能无法加载统计信息的问题 [#48257](https://github.com/pingcap/tidb/issues/48257) @[time-and-fate](https://github.com/time-and-fate) + - 修复 `init-stats` 流程可能导致 TiDB panic 以及 `load stats` 流程直接退出的问题 [#51581](https://github.com/pingcap/tidb/issues/51581) @[hawkingrei](https://github.com/hawkingrei) + - 修复 `IN()` 谓词中包含 null 时,查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) - 修复当 DDL 任务中包含多张表时,MDL View 中不显示 blocked DDL 的问题[#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) @@ -496,7 +496,7 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> TiDB - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei] - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - - 修复在 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) + - 修复 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) + TiKV @@ -514,9 +514,9 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 错误修复> PD - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) - (dup): release-7.1.4.md > 修复 TSO 部分日志没有打印报错原因的问题 [#7496](https://github.com/tikv/pd/issues/7496) @[CabinfeverB](https://github.com/CabinfeverB) - 修复重启后 PD 部分监控出现非预期的负数监控问题 [#4489](https://github.com/tikv/pd/issues/4489) @[lhy1024](https://github.com/lhy1024) - - 修复 leader lease 日志问题 [#7700](https://github.com/tikv/pd/issues/7700) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 Leader 租约的过期时间晚于日志时间的问题 [#7700](https://github.com/tikv/pd/issues/7700) @[CabinfeverB](https://github.com/CabinfeverB) - 修复 PD 客户端 TLS 相关的问题 [#7900](https://github.com/tikv/pd/issues/7900) [#7902](https://github.com/tikv/pd/issues/7902) [#7916](https://github.com/tikv/pd/issues/7916) @[CabinfeverB](https://github.com/CabinfeverB) - - 修复 Goroutine 泄漏问题 [#7782](https://github.com/tikv/pd/issues/7782) @[HuSharp](https://github.com/HuSharp) + - 修复 Goroutine 由于没有正确关闭而泄露的问题 [#7782](https://github.com/tikv/pd/issues/7782) @[HuSharp](https://github.com/HuSharp) - 修复 pd-ctl 无法移除包含特殊字符的调度器的问题 [#7798](https://github.com/tikv/pd/issues/7798) @[JmPotato](https://github.com/JmPotato) - 修复 PD 客户端获取 TSO 可能被阻塞的问题 [#7864](https://github.com/tikv/pd/issues/7864) @[CabinfeverB](https://github.com/CabinfeverB) From e0bcb67a5ddadc1f8212a810ab5534cecdaa3a1a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Mar 2024 20:03:07 +0800 Subject: [PATCH 119/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index aba22aef635a..c803cbb312cf 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -471,8 +471,8 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> TiDB - 修复常量传播在处理 `ENUM` 或 `SET` 类型时结果出错的问题 [#49440](https://github.com/pingcap/tidb/issues/49440) @[winoros](https://github.com/winoros) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复包含 Apply 操作的查询在报错 `fatal error: concurrent map writes` 后导致 TiDB 崩溃的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用 `SET_VAR` 控制字符串类型的变量可能会失效的问题 [#50507](https://github.com/pingcap/tidb/issues/50507) @[qw4990](https://github.com/qw4990) - - 修复当 `tidb_sysdate_is_now` 设置为 `1` 时,`SYSDATE()` 函数错误的使用了计划缓存中的时间的问题 [#49299](https://github.com/pingcap/tidb/issues/49299) @[hawkingrei](https://github.com/hawkingrei) - - 修复执行 `CREATE GLOBAL BINDING` 语句时,如果数据库名字为大写,则绑定不生效的问题 [#50646](https://github.com/pingcap/tidb/issues/50646) @[qw4990](https://github.com/qw4990) + - 修复当 `tidb_sysdate_is_now` 设置为 `1` 时,`SYSDATE()` 函数错误地使用了计划缓存中的时间的问题 [#49299](https://github.com/pingcap/tidb/issues/49299) @[hawkingrei](https://github.com/hawkingrei) + - 修复执行 `CREATE GLOBAL BINDING` 语句时,如果数据库名为大写,则绑定不生效的问题 [#50646](https://github.com/pingcap/tidb/issues/50646) @[qw4990](https://github.com/qw4990) - 修复 `Index Path` 选中重复索引的问题 [#50496](https://github.com/pingcap/tidb/issues/50496) @[AilinKid](https://github.com/AilinKid) - 修复当 `CREATE GLOBAL BINDING` 语句中包含 `IN()` 时,`PLAN REPLAYER` 无法加载绑定的问题 [#43192](https://github.com/pingcap/tidb/issues/43192) @[King-Dylan](https://github.com/King-Dylan) - 修复当多个 `analyze` 任务失败时,没有正确记录失败原因的问题 [#50481](https://github.com/pingcap/tidb/issues/50481) @[hi-rustin](https://github.com/hi-rustin) @@ -480,7 +480,7 @@ TiDB 版本:8.0.0 - 修复 `max_execute_time` 多层设置相互影响的问题 [#50914](https://github.com/pingcap/tidb/issues/50914) @[jiyfhust](https://github.com/jiyfhust) - 修复并发更新统计信息导致的线程安全问题 [#50835](https://github.com/pingcap/tidb/issues/50835) @[hi-rustin](https://github.com/hi-rustin) - 修复对分区表执行 `auto analyze` 可能导致 TiDB panic 的问题 [#51187](https://github.com/pingcap/tidb/issues/51187) @[hi-rustin](https://github.com/hi-rustin) - - 修复 SQL 语句中 `IN()` 谓词包含不同个数的值时,可能导致 SQL 绑定不生效的问题 [#51222](https://github.com/pingcap/tidb/issues/51222) @[hawkingrei](https://github.com/hawkingrei) + - 修复 SQL 语句中 `IN()` 谓词包含的值的个数不同时,可能导致 SQL 绑定不生效的问题 [#51222](https://github.com/pingcap/tidb/issues/51222) @[hawkingrei](https://github.com/hawkingrei) - 修复 TiDB 无法正确转换表达式中系统变量类型的问题 [#43527](https://github.com/pingcap/tidb/issues/43527) @[hi-rustin](https://github.com/hi-rustin) - 修复在配置 `force_init_stats` 的情况下,TiDB 没有监听对应端口的问题 [#51473](https://github.com/pingcap/tidb/issues/51473) @[hawkingrei](https://github.com/hawkingrei) - 修复在 `determinate` 模式下 (`tidb_opt_objective='determinate'`),如果查询不包含谓词,可能无法加载统计信息的问题 [#48257](https://github.com/pingcap/tidb/issues/48257) @[time-and-fate](https://github.com/time-and-fate) From bb50245a00160d0ed6f858f7b49daa83fa8644dd Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 26 Mar 2024 22:14:15 +0800 Subject: [PATCH 120/156] Apply suggestions from code review --- releases/release-8.0.0.md | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c803cbb312cf..edc2109be051 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -39,7 +39,7 @@ TiDB 版本:8.0.0 增强在有大量表时缓存 schema 信息的稳定性 对于使用 TiDB 作为多租户应用程序记录系统的 SaaS 公司,经常需要存储大量的表。在以前的版本中,尽管支持处理百万级或更大数量的表,但可能会影响用户体验。TiDB v8.0.0 通过以下增强功能改善了这一问题:
      -
    • 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
    • +
    • 引入新的 schema 缓存系统,为表元数据提供了懒加载的 LRU (Least Recently Used) 缓存,并更有效地管理 schema 版本变更。
    • 支持在 auto analyze 中配置优先队列,使流程更加流畅,并在大量表的情况下提高稳定性。
    @@ -47,7 +47,7 @@ TiDB 版本:8.0.0 数据库管理与可观测性 支持观测索引使用情况 - TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。 + TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。 数据迁移 @@ -72,7 +72,7 @@ TiDB 版本:8.0.0 - `tso` 微服务:为整个集群提供单调递增的时间戳分配。 - `scheduling` 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 - 每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 + 每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 目前 PD 微服务仅支持通过 TiDB Operator 和 TiUP Playground 进行部署。当 PD 出现明显的性能瓶颈且无法升配的情况下,建议考虑使用该模式。 @@ -83,7 +83,7 @@ TiDB 版本:8.0.0 - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升使用 Titan 引擎时的性能和灵活性。 - 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 + 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 ### 性能 @@ -276,7 +276,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 -* 支持 `IMPORT INTO ... FROM SELECT` 语法(实验特性),增强 `IMPORT INTO` 功能[#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 支持 `IMPORT INTO ... FROM SELECT` 语法(实验特性),增强 `IMPORT INTO` 功能 [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** 在之前的 TiDB 版本中,将查询结果导入目标表只能通过 `INSERT INTO ... SELECT` 语句,但该语句在一些大数据量的场景中的导入效率较低。从 v8.0.0 开始,TiDB 新增支持通过 `IMPORT INTO ... FROM SELECT` 将 `SELECT` 的查询结果导入到一张空的 TiDB 目标表中,其性能最高可达 `INSERT INTO ... SELECT` 的 8 倍,可以大幅缩短导入所需的时间。 @@ -284,9 +284,9 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 -* TiDB Lightning 简化冲突处理策略,同时支持以 `replace` 方式处理冲突数据(实验特性) [#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** +* TiDB Lightning 简化冲突处理策略,同时支持以 `replace` 方式处理冲突数据(实验特性)[#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** - 在之前的版本中,TiDB Lightning 逻辑导入模式有[一套数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md#冲突数据检测),物理导入模式时有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 + 在之前的版本中,TiDB Lightning 逻辑导入模式有[一套数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md#冲突数据检测),而物理导入模式有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略,并简化了该参数的配置。此外,在物理导入模式下,当导入遇到主键或唯一键冲突的数据时,`replace` 策略支持保留最新的数据、覆盖旧的数据。 @@ -307,8 +307,9 @@ TiDB 版本:8.0.0 > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 - 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](/system-variables.md#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) -- DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 里的升级步骤进行额外操作。[#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) +- DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 中的升级步骤进行额外操作。[#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) - 移除未 GA 但默认启用的 witness 相关调度器 [#7765](https://github.com/tikv/pd/pull/7765) @[rleungx](https://github.com/rleungx) + ### 行为变更 * 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** @@ -319,10 +320,10 @@ TiDB 版本:8.0.0 ### 系统变量 -| 变量名 | 修改类型(包括新增/修改/删除/更名) | 描述 | +| 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| | [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | -| `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该参数更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) 。 | +| `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该变量更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入)。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | | [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。 | | [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定使用运算符 `/` 执行除法操作时,结果增加的小数位数。该功能与 MySQL 保持一致。 | @@ -330,10 +331,10 @@ TiDB 版本:8.0.0 | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | | [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/accelerated-table-creation.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 [`CREATE TABLE`](/sql-statements/sql-statement-create-table.md) 加速建表。 | -| [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制加载 binding 的超时时间。当加载 binding 的执行时间超过该值时,会停止加载。 | +| [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制加载绑定的超时时间。当加载绑定的执行时间超过该值时,会停止加载。 | | [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | | [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| -| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减小 schema 信息占用的内存。 | +| [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减少 schema 信息占用的内存。 | ### 配置文件参数 @@ -347,8 +348,8 @@ TiDB 版本:8.0.0 | TiKV | [`log-backup.initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值为 `1MiB` 的限制。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`rocksdb.defaultcf.titan.blob-cache-size`](/tikv-configuration-file.md#blob-cache-size) | 修改 | 从 v8.0.0 开始,TiKV 引入了 `shared-blob-cache` 配置项并默认开启,因此无需再单独设置 `blob-cache-size`。只有当 `shared-blob-cache` 设置为 `false` 时,`blob-cache-size` 的设置才生效。| -| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| | TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | +| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| | TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该参数。 | @@ -367,7 +368,7 @@ TiDB 版本:8.0.0 * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** * 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 -* [执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution) 计划在后续版本被重新设计,相关的变量和行为会发生变化。 +* 计划在后续版本重新设计[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution),相关的变量和行为会发生变化。 ## 改进提升 @@ -378,10 +379,10 @@ TiDB 版本:8.0.0 - 提升 `Sort` 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - 在处理包含多个等值条件的表连接查询时,支持使用匹配部分条件的索引构造 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** - - 增强 Index Merge 能力,使其能识别查询中的排序需求,并能选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid + - 增强 Index Merge 能力,使其能识别查询中的排序需求,并能选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid) - 当 `Apply` 算子没有并发执行时,支持通过执行 `SHOW WARNINGS` 查看阻碍并发的算子名 [#50256](https://github.com/pingcap/tidb/issues/50256) @[hawkingrei](https://github.com/hawkingrei) - 优化点查的索引选择,在所有的索引都支持点查时选择其中性能最优的一个用于查询 [#50184](https://github.com/pingcap/tidb/issues/50184) @[elsa0520](https://github.com/elsa0520) - - 将统计信息同步加载任务的优先级暂时调整为 high,避免在 TiKV 高负载时同步加载任务大面积超时,从而导致统计信息无法加载 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) + - 将统计信息同步加载任务的优先级暂时调整为 `High`,避免在 TiKV 高负载时同步加载任务大面积超时,从而导致统计信息无法加载 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) - 在 `PREPARE` 语句无法命中执行计划缓存时,支持通过执行 `SHOW WARNINGS` 查看原因 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) - 提升当多次更新同一行的数据时查询估算信息的准确性 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - Index Merge 支持在 `AND` 谓词中内嵌多值索引和 `OR` 操作符 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) @@ -493,7 +494,7 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用聚合函数分组计算时可能报错 `Can't find column ...` 的问题 [#50926](https://github.com/pingcap/tidb/issues/50926) @[qw4990](https://github.com/qw4990) - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当 `CREATE TABLE` 语句中包含特定分区或约束的表达式时,表名变更等 DDL 操作会卡住的问题 [#50972](https://github.com/pingcap/tidb/issues/50972) @[lcwangchao](https://github.com/lcwangchao) - (dup): release-7.1.4.md > 错误修复> TiDB - 修复 Grafana 监控指标 `tidb_statistics_auto_analyze_total` 没有显示为整数的问题 [#51051](https://github.com/pingcap/tidb/issues/51051) @[hawkingrei](https://github.com/hawkingrei) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei] + - (dup): release-7.1.4.md > 错误修复> TiDB - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei](https://github.com/hawkingrei) - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - 修复 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) @@ -513,7 +514,7 @@ TiDB 版本:8.0.0 - (dup): release-7.5.1.md > 错误修复> PD - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) - (dup): release-7.1.4.md > 错误修复> PD - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) - (dup): release-7.1.4.md > 修复 TSO 部分日志没有打印报错原因的问题 [#7496](https://github.com/tikv/pd/issues/7496) @[CabinfeverB](https://github.com/CabinfeverB) - - 修复重启后 PD 部分监控出现非预期的负数监控问题 [#4489](https://github.com/tikv/pd/issues/4489) @[lhy1024](https://github.com/lhy1024) + - 修复重启后 PD 部分监控出现非预期负数的问题 [#4489](https://github.com/tikv/pd/issues/4489) @[lhy1024](https://github.com/lhy1024) - 修复 Leader 租约的过期时间晚于日志时间的问题 [#7700](https://github.com/tikv/pd/issues/7700) @[CabinfeverB](https://github.com/CabinfeverB) - 修复 PD 客户端 TLS 相关的问题 [#7900](https://github.com/tikv/pd/issues/7900) [#7902](https://github.com/tikv/pd/issues/7902) [#7916](https://github.com/tikv/pd/issues/7916) @[CabinfeverB](https://github.com/CabinfeverB) - 修复 Goroutine 由于没有正确关闭而泄露的问题 [#7782](https://github.com/tikv/pd/issues/7782) @[HuSharp](https://github.com/HuSharp) From aa9af7d38c07291a767f01fe0a5ec2c798e87927 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 27 Mar 2024 10:45:31 +0800 Subject: [PATCH 121/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index edc2109be051..accac253823f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -52,11 +52,11 @@ TiDB 版本:8.0.0 数据迁移 TiCDC 支持 Simple 协议 - TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入模式信息,实现了动态的消息模式跟踪功能 (in-band schema tracking)。 + TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入表的 schema 信息,实现了对 schema 信息的动态追踪 (in-band schema tracking)。 TiCDC 支持 Debezium 协议 - TiCDC 支持了新的 Debezium 协议,现在可以使用生成 Debezium 格式消息的协议向 Kafka sink 发布复制事件。 + TiCDC 支持了新的 Debezium 协议,TiCDC 可以使用该协议生成 Debezium 格式的数据变更事件并发送给 Kafka sink。 @@ -201,7 +201,7 @@ TiDB 版本:8.0.0 * PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** - Amazon S3 对象锁定功能支持用户通过设置留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。从 v6.3.0 起,BR 为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 起,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量备份还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足了监管方面的需求。 + Amazon S3 对象锁定功能支持用户通过设置数据留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。从 v6.3.0 起,BR 为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 起,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量备份还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足了监管方面的需求。 更多信息,请参考[用户文档](/br/backup-and-restore-storages.md#存储服务其他功能支持)。 @@ -260,13 +260,13 @@ TiDB 版本:8.0.0 * TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) **tw@lilin90** - TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入模式信息,实现了动态的消息模式跟踪功能 (in-band schema tracking)。 + TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入表的 schema 信息,实现了对 schema 信息的动态追踪 (in-band schema tracking)。 更多信息,请参考[用户文档](/ticdc/ticdc-simple-protocol.md)。 * TiCDC 支持 Debezium 协议 [#1799](https://github.com/pingcap/tiflow/issues/1799) @[breezewish](https://github.com/breezewish) **tw@lilin90** - TiCDC 现在可以使用一种生成 Debezium 格式的事件消息的协议,将复制事件发布到 Kafka sink。这有助于简化那些当前使用 Debezium 从 MySQL 拉取数据进行下游处理的用户从 MySQL 迁移到 TiDB 的过程。 + 通过 Debezium 协议,TiCDC 可以生成 Debezium 格式的数据变更事件,并将这些事件发送到 Kafka sink。这有助于为当前使用 Debezium 从 MySQL 拉取数据进行下游处理的用户简化从 MySQL 迁移到 TiDB 的过程。 更多信息,请参考[用户文档](/ticdc/ticdc-debezium.md)。 From e0a9d7d0412499105ddcc55f4cd938c333518900 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Mar 2024 10:53:27 +0800 Subject: [PATCH 122/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index accac253823f..33024fcb85ab 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -272,7 +272,7 @@ TiDB 版本:8.0.0 * DM 支持使用用户提供的密钥对源数据库和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - 在之前的版本中,DM 使用了一个内置的一个固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 + 在之前的版本中,DM 使用了一个内置的固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 @@ -483,11 +483,11 @@ TiDB 版本:8.0.0 - 修复对分区表执行 `auto analyze` 可能导致 TiDB panic 的问题 [#51187](https://github.com/pingcap/tidb/issues/51187) @[hi-rustin](https://github.com/hi-rustin) - 修复 SQL 语句中 `IN()` 谓词包含的值的个数不同时,可能导致 SQL 绑定不生效的问题 [#51222](https://github.com/pingcap/tidb/issues/51222) @[hawkingrei](https://github.com/hawkingrei) - 修复 TiDB 无法正确转换表达式中系统变量类型的问题 [#43527](https://github.com/pingcap/tidb/issues/43527) @[hi-rustin](https://github.com/hi-rustin) - - 修复在配置 `force_init_stats` 的情况下,TiDB 没有监听对应端口的问题 [#51473](https://github.com/pingcap/tidb/issues/51473) @[hawkingrei](https://github.com/hawkingrei) + - 修复在配置 `force-init-stats` 的情况下,TiDB 没有监听对应端口的问题 [#51473](https://github.com/pingcap/tidb/issues/51473) @[hawkingrei](https://github.com/hawkingrei) - 修复在 `determinate` 模式下 (`tidb_opt_objective='determinate'`),如果查询不包含谓词,可能无法加载统计信息的问题 [#48257](https://github.com/pingcap/tidb/issues/48257) @[time-and-fate](https://github.com/time-and-fate) - 修复 `init-stats` 流程可能导致 TiDB panic 以及 `load stats` 流程直接退出的问题 [#51581](https://github.com/pingcap/tidb/issues/51581) @[hawkingrei](https://github.com/hawkingrei) - - 修复 `IN()` 谓词中包含 null 时,查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) - - 修复当 DDL 任务中包含多张表时,MDL View 中不显示 blocked DDL 的问题[#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) + - 修复 `IN()` 谓词中包含 `NULL` 时,查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) + - 修复当 DDL 任务中包含多张表时,MDL View 中不显示 blocked DDL 的问题 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 CTE 查询使用的内存超限时可能会导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) From 76b26040d3aa65436d16e696b23abfbb934cbe07 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 27 Mar 2024 11:24:33 +0800 Subject: [PATCH 123/156] Implement comments of BR restore speed improvement Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 33024fcb85ab..96396b73b987 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -87,11 +87,11 @@ TiDB 版本:8.0.0 ### 性能 -* BR 快照恢复速度最高提升 10 倍 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** +* BR 快照恢复速度提升 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** - 从 TiDB v8.0.0 起,快照恢复提速正式发布,并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,在保持数据充分打散的前提下,快照恢复的速度最高提升约 10 倍。该功能充分利用了每个 TiKV 节点的所有资源,实现并行快速恢复。根据实际案例的测试结果,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,能够在 1 小时内完成对 100 TB 数据的恢复。 + 从 TiDB v8.0.0 版本开始,通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。这项改进功能已在 TiDB v8.0.0 版本正式发布并默认启用。 - 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。 + 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。需要注意的是,恢复速度的提升是因为使用了大量的 goroutine 来并行工作,会有比较大的内存消耗,特别是在表或者 Region 数很多的时候,推荐使用内存规格较高的机器来运行 BR 的客户端。如果机器的内存规格较小,建议改用细粒度的 Region 分裂打散策略。 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 From 387e761d48f784582b35035c22a954fdc391a038 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 27 Mar 2024 11:44:30 +0800 Subject: [PATCH 124/156] Update releases/release-8.0.0.md Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 96396b73b987..50d6a3694c6d 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -33,7 +33,7 @@ TiDB 版本:8.0.0 提升 BR 快照恢复速度 (GA) - 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,在恢复较慢的情况下,该功能可将恢复速度提升大约 3 倍。 + 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,该功能可将下载带宽打满,下载速度可提升 8 到 10 倍, 端到端恢复速度大约提升 1.5 到 3 倍。 增强在有大量表时缓存 schema 信息的稳定性 From 535dc7e9f504145f5d81ec6357c7efb8eaac5428 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 27 Mar 2024 12:29:18 +0800 Subject: [PATCH 125/156] Apply suggestions from code review Co-authored-by: Lilian Lee --- releases/release-8.0.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 50d6a3694c6d..7c804a27551a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -67,16 +67,16 @@ TiDB 版本:8.0.0 - PD 支持微服务模式(实验特性)[#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** - 从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 性能瓶颈问题。 + 从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 - `tso` 微服务:为整个集群提供单调递增的时间戳分配。 - `scheduling` 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 - 目前 PD 微服务仅支持通过 TiDB Operator 和 TiUP Playground 进行部署。当 PD 出现明显的性能瓶颈且无法升配的情况下,建议考虑使用该模式。 + 目前 PD 微服务仅支持通过 TiDB Operator 和 TiUP Playground 进行部署。当 PD 出现明显的性能瓶颈且无法升级配置的情况下,建议考虑使用该模式。 - 更多信息,请参考[用户文档](pd-microservices.md)。 + 更多信息,请参考[用户文档](/pd-microservices.md)。 * 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** @@ -89,7 +89,7 @@ TiDB 版本:8.0.0 * BR 快照恢复速度提升 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** - 从 TiDB v8.0.0 版本开始,通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。这项改进功能已在 TiDB v8.0.0 版本正式发布并默认启用。 + TiDB v8.0.0 版本正式发布并默认启用新的快照恢复算法,通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GiB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。需要注意的是,恢复速度的提升是因为使用了大量的 goroutine 来并行工作,会有比较大的内存消耗,特别是在表或者 Region 数很多的时候,推荐使用内存规格较高的机器来运行 BR 的客户端。如果机器的内存规格较小,建议改用细粒度的 Region 分裂打散策略。 @@ -294,7 +294,7 @@ TiDB 版本:8.0.0 * 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** - 在 v7.4.0 以前,当使用[分布式执行框架](/tidb-distributed-execution-framework.md) 执行 `IMPORT INTO` 任务时,由于本地存储空间有限,TiDB 只能对部分数据进行局部排序后再导入到 TiKV。这导致了导入到 TiKV 的数据存在较多的重叠,需要 TiKV 在导入过程中执行额外的 compaction 操作,影响了 TiKV 的性能和稳定性。 + 在 v7.4.0 以前,当使用[分布式执行框架](/tidb-distributed-execution-framework.md)执行 `IMPORT INTO` 任务时,由于本地存储空间有限,TiDB 只能对部分数据进行局部排序后再导入到 TiKV。这导致了导入到 TiKV 的数据存在较多的重叠,需要 TiKV 在导入过程中执行额外的 compaction 操作,影响了 TiKV 的性能和稳定性。 随着 v7.4.0 引入全局排序实验特性,TiDB 支持将需要导入的数据暂时存储在外部存储(如 Amazon S3)中进行全局排序后再导入到 TiKV 中,使 TiKV 无需在导入过程中执行 compaction 操作。全局排序在 v8.0.0 成为正式功能 (GA),可以降低 TiKV 对资源的额外消耗,显著提升 `IMPORT INTO` 的性能和稳定性。启用全局排序后,单个 `IMPORT INTO` 任务支持导入 40 TiB 以内的数据。 @@ -428,7 +428,7 @@ TiDB 版本:8.0.0 - 支持通过新增的恢复参数 `--load-stats` 控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) - 粗粒度打散 Region 算法支持自适应获取并发参数,提升恢复性能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) - 在 `br` 的命令行帮助信息中显示 `log` 命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) - - 支持在恢复过程中提前分配好 Table ID,从而最大限度复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) + - 支持在恢复过程中提前分配好 Table ID,从而最大限度地复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) - 使用 BR 时,禁用 TiDB 内部的 GC memory limit tuner 功能,避免 OOM 问题 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) From 236dd1847a38f2cf9c8f5c09d5caf36d86c10897 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Mar 2024 14:51:30 +0800 Subject: [PATCH 126/156] Apply suggestions from code review --- releases/release-8.0.0.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 7c804a27551a..15846156929a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -415,12 +415,6 @@ TiDB 版本:8.0.0 - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) -+ TiFlash - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - (dup): release-7.6.0.md > 改进提升> TiFlash - 支持在存算分离架构下通过合并相同数据的读取操作,提升多并发下的数据扫描性能 [#6834](https://github.com/pingcap/tiflash/issues/6834) @[JinheLin](https://github.com/JinheLin) - + Tools + Backup & Restore (BR) @@ -516,7 +510,7 @@ TiDB 版本:8.0.0 - (dup): release-7.1.4.md > 修复 TSO 部分日志没有打印报错原因的问题 [#7496](https://github.com/tikv/pd/issues/7496) @[CabinfeverB](https://github.com/CabinfeverB) - 修复重启后 PD 部分监控出现非预期负数的问题 [#4489](https://github.com/tikv/pd/issues/4489) @[lhy1024](https://github.com/lhy1024) - 修复 Leader 租约的过期时间晚于日志时间的问题 [#7700](https://github.com/tikv/pd/issues/7700) @[CabinfeverB](https://github.com/CabinfeverB) - - 修复 PD 客户端 TLS 相关的问题 [#7900](https://github.com/tikv/pd/issues/7900) [#7902](https://github.com/tikv/pd/issues/7902) [#7916](https://github.com/tikv/pd/issues/7916) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复在 TiDB(PD 客户端)和 PD 之间的 TLS 开关不一致时,TiDB panic 的问题 [#7900](https://github.com/tikv/pd/issues/7900) [#7902](https://github.com/tikv/pd/issues/7902) [#7916](https://github.com/tikv/pd/issues/7916) @[CabinfeverB](https://github.com/CabinfeverB) - 修复 Goroutine 由于没有正确关闭而泄露的问题 [#7782](https://github.com/tikv/pd/issues/7782) @[HuSharp](https://github.com/HuSharp) - 修复 pd-ctl 无法移除包含特殊字符的调度器的问题 [#7798](https://github.com/tikv/pd/issues/7798) @[JmPotato](https://github.com/JmPotato) - 修复 PD 客户端获取 TSO 可能被阻塞的问题 [#7864](https://github.com/tikv/pd/issues/7864) @[CabinfeverB](https://github.com/CabinfeverB) From 13211ac93f38248a4bf07eb2795207164c919156 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 27 Mar 2024 14:57:30 +0800 Subject: [PATCH 127/156] Apply suggestions from code review Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> Co-authored-by: Jianjun Liao <36503113+Leavrth@users.noreply.github.com> --- releases/release-8.0.0.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 15846156929a..be38534f9d27 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -89,9 +89,9 @@ TiDB 版本:8.0.0 * BR 快照恢复速度提升 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** - TiDB v8.0.0 版本正式发布并默认启用新的快照恢复算法,通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GiB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。 + 从 TiDB v8.0.0 版本起,BR 快照恢复提速功能正式发布并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GiB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。 - 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。需要注意的是,恢复速度的提升是因为使用了大量的 goroutine 来并行工作,会有比较大的内存消耗,特别是在表或者 Region 数很多的时候,推荐使用内存规格较高的机器来运行 BR 的客户端。如果机器的内存规格较小,建议改用细粒度的 Region 分裂打散策略。 + 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。需要注意的是,恢复速度的提升是因为使用了大量的 goroutine 来并行工作,会有比较大的内存消耗,特别是在表或者 Region 数很多的时候,推荐使用内存规格较高的机器来运行 BR 的客户端。如果机器的内存规格较小,建议改用细粒度的 Region 分裂打散策略。此外,因为粗粒度打散 Region 算法会占用大量的外部存储带宽,请避免因为外部带宽不足导致的对其他业务的影响。 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 @@ -419,7 +419,8 @@ TiDB 版本:8.0.0 + Backup & Restore (BR) - - 支持通过新增的恢复参数 `--load-stats` 控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) + - 支持通过 `br` 命令行工具新增的恢复参数 `--load-stats` 控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) + - 支持通过 `br` 命令行工具新增的恢复参数 `--tikv-max-restore-concurrency` 控制每个 TiKV 节点的最大 download 和 ingest 文件数量,并通过控制作业队列的最大长度,进而控制 BR 节点的内存消耗 [#51621](https://github.com/pingcap/tidb/issues/51621) @[3pointer](https://github.com/3pointer) - 粗粒度打散 Region 算法支持自适应获取并发参数,提升恢复性能 [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) - 在 `br` 的命令行帮助信息中显示 `log` 命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) - 支持在恢复过程中提前分配好 Table ID,从而最大限度地复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) From 60d043e24ffef90758b558a6a6f77fc96c7ca0c6 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 15:50:25 +0800 Subject: [PATCH 128/156] removed redundant info --- releases/release-8.0.0.md | 282 ++++++++++++++++++-------------------- 1 file changed, 130 insertions(+), 152 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index be38534f9d27..a2087ac5ef23 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -65,7 +65,7 @@ TiDB 版本:8.0.0 ### 可扩展性 -- PD 支持微服务模式(实验特性)[#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) **tw@qiancai** +- PD 支持微服务模式(实验特性)[#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) 从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 @@ -78,31 +78,31 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/pd-microservices.md)。 -* 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) **tw@qiancai** +* 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升使用 Titan 引擎时的性能和灵活性。 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 - + ### 性能 -* BR 快照恢复速度提升 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) **tw@qiancai** +* BR 快照恢复速度提升 GA [#50701](https://github.com/pingcap/tidb/issues/50701) @[3pointer](https://github.com/3pointer) @[Leavrth](https://github.com/Leavrth) 从 TiDB v8.0.0 版本起,BR 快照恢复提速功能正式发布并默认启用。通过采用粗粒度打散 Region 算法、批量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 GiB/s,并且能够在 1 小时内完成对 100 TiB 数据的恢复。 - + 这意味着即使在高负载环境下,BR 工具也能够充分利用每个 TiKV 节点的资源,显著减少数据库恢复时间,增强数据库的可用性和可靠性,减少因数据丢失或系统故障引起的停机时间和业务损失。需要注意的是,恢复速度的提升是因为使用了大量的 goroutine 来并行工作,会有比较大的内存消耗,特别是在表或者 Region 数很多的时候,推荐使用内存规格较高的机器来运行 BR 的客户端。如果机器的内存规格较小,建议改用细粒度的 Region 分裂打散策略。此外,因为粗粒度打散 Region 算法会占用大量的外部存储带宽,请避免因为外部带宽不足导致的对其他业务的影响。 - + 更多信息,请参考[用户文档](/br/br-snapshot-guide.md#恢复快照备份数据)。 - -* 新增支持下推以下函数到 TiFlash [#50975](https://github.com/pingcap/tidb/issues/50975) [#50485](https://github.com/pingcap/tidb/issues/50485) @[yibin87](https://github.com/yibin87) @[windtalker](https://github.com/windtalker) **tw@Oreoxmt** + +* 新增支持下推以下函数到 TiFlash [#50975](https://github.com/pingcap/tidb/issues/50975) [#50485](https://github.com/pingcap/tidb/issues/50485) @[yibin87](https://github.com/yibin87) @[windtalker](https://github.com/windtalker) * `CAST(DECIMAL AS DOUBLE)` * `POWER()` 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* TiDB 的并发 HashAgg 算法支持数据落盘(实验特性)[#35637](https://github.com/pingcap/tidb/issues/35637) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** +* TiDB 的并发 HashAgg 算法支持数据落盘(实验特性)[#35637](https://github.com/pingcap/tidb/issues/35637) @[xzhangxian1008](https://github.com/xzhangxian1008) 在之前的 TiDB 版本中,HashAgg 算子的并发算法不支持数据落盘。当 SQL 语句的执行计划包含并发的 HashAgg 算子时,该 SQL 语句的所有数据都只能在内存中进行处理。这导致内存需要处理大量数据,当超过内存限制时,TiDB 只能选择非并发 HashAgg 算法,无法通过并发提升性能。 @@ -110,7 +110,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入)。 -* 自动统计信息收集引入优先级队列 [#50132](https://github.com/pingcap/tidb/issues/50132) @[hi-rustin](https://github.com/hi-rustin) **tw@hfxsd** +* 自动统计信息收集引入优先级队列 [#50132](https://github.com/pingcap/tidb/issues/50132) @[hi-rustin](https://github.com/hi-rustin) 维持优化器统计信息的时效性是稳定数据库性能的关键,绝大多数用户依赖 TiDB 提供的[自动统计信息收集](/statistics.md#自动更新)来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对象加入队列,逐个收集并更新。在之前的版本中,这些对象的收集顺序是随机的,可能导致更需要更新的对象等待时间过长,从而引发潜在的数据库性能回退。 @@ -118,7 +118,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入)。 -* 解除执行计划缓存的部分限制 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) @[qw4990](https://github.com/qw4990) **tw@hfxsd** +* 解除执行计划缓存的部分限制 [#49161](https://github.com/pingcap/tidb/pull/49161) @[mjonss](https://github.com/mjonss) @[qw4990](https://github.com/qw4990) TiDB 支持[执行计划缓存](/sql-prepared-plan-cache.md),能够有效降低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制,含有以下内容的执行计划均能够被缓存: @@ -129,7 +129,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/sql-prepared-plan-cache.md)。 -* 优化器增强对多值索引的支持 [#47759](https://github.com/pingcap/tidb/issues/47759) [#46539](https://github.com/pingcap/tidb/issues/46539) @[Arenatlx](https://github.com/Arenatlx) @[time-and-fate](https://github.com/time-and-fate) **tw@hfxsd** +* 优化器增强对多值索引的支持 [#47759](https://github.com/pingcap/tidb/issues/47759) [#46539](https://github.com/pingcap/tidb/issues/46539) @[Arenatlx](https://github.com/Arenatlx) @[time-and-fate](https://github.com/time-and-fate) TiDB 自 v6.6.0 开始引入[多值索引](/sql-statements/sql-statement-create-index.md#多值索引),提升对 JSON 数据类型的检索性能。在 v8.0.0 中,优化器增强了对多值索引的支持能力,使其在复杂场景下能够正确识别和利用多值索引来优化查询。 @@ -138,7 +138,7 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 -* 支持设置低精度 TSO 的更新间隔 [#51081](https://github.com/pingcap/tidb/issues/51081) @[Tema](https://github.com/Tema) **tw@hfxsd** +* 支持设置低精度 TSO 的更新间隔 [#51081](https://github.com/pingcap/tidb/issues/51081) @[Tema](https://github.com/Tema) TiDB 的[低精度 TSO 功能](/system-variables.md#tidb_low_resolution_tso)使用定期更新的 TSO 作为事务时间戳。在可以容忍读到旧数据的情况下,该功能通过牺牲一定的实时性,降低小的只读事务获取 TSO 的开销,从而提升高并发读的能力。 @@ -148,22 +148,22 @@ TiDB 版本:8.0.0 ### 稳定性 -* 支持根据 LRU 算法缓存所需的 schema 信息,以减少 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) **tw@hfxsd** +* 支持根据 LRU 算法缓存所需的 schema 信息,以减少 TiDB server 的内存消耗(实验特性)[#50959](https://github.com/pingcap/tidb/issues/50959) @[gmhdbjd](https://github.com/gmhdbjd) 在 v8.0.0 之前,每个 TiDB 节点都会缓存所有表的 schema 信息。在表数量较多的情况下,例如高达几十万张表,仅缓存这些表的 schema 信息就会占用大量内存。 - + 从 v8.0.0 开始,TiDB 引入 [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) 系统变量,允许设置缓存 schema 信息所能使用的内存上限,从而避免占用过多的内存。开启该功能后,TiDB 将使用 Least Recently Used (LRU) 算法缓存所需的表,有效降低 schema 信息占用的内存。 更多信息,请参考[用户文档](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入)。 ### 高可用 -* 代理组件 TiProxy 成为正式功能 (GA) [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) **tw@Oreoxmt** +* 代理组件 TiProxy 成为正式功能 (GA) [#413](https://github.com/pingcap/tiproxy/issues/413) @[djshow832](https://github.com/djshow832) @[xhebox](https://github.com/xhebox) TiDB v7.6.0 引入了代理组件 TiProxy 作为实验特性。TiProxy 是 TiDB 的官方代理组件,位于客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持功能,让 TiDB 集群的负载更加均衡,并在维护操作期间不影响用户对数据库的连接访问。 - + 在 v8.0.0 中,TiProxy 成为正式功能,完善了签名证书自动生成、监控等功能。 - + TiProxy 的应用场景如下: * 在 TiDB 集群进行滚动重启、滚动升级、缩容等维护操作时,TiDB server 会发生变动,导致客户端与发生变化的 TiDB server 的连接中断。通过使用 TiProxy,可以在这些维护操作过程中平滑地将连接迁移至其他 TiDB server,从而让客户端不受影响。 @@ -175,7 +175,7 @@ TiDB 版本:8.0.0 ### SQL 功能 -* 支持处理大量数据的 DML 类型(实验特性)[#50215](https://github.com/pingcap/tidb/issues/50215) @[ekexium](https://github.com/ekexium) **tw@Oreoxmt** +* 支持处理大量数据的 DML 类型(实验特性)[#50215](https://github.com/pingcap/tidb/issues/50215) @[ekexium](https://github.com/ekexium) 在 TiDB v8.0.0 之前,所有事务数据在提交之前均存储在内存中。当处理大量数据时,事务所需的内存成为限制 TiDB 处理事务大小的瓶颈。虽然 TiDB 非事务 DML 功能通过拆分 SQL 语句的方式尝试解决事务大小限制,但该功能存在多种限制,在实际应用中的体验并不理想。 @@ -185,13 +185,13 @@ TiDB 版本:8.0.0 更多信息,请参考[用户文档](/system-variables.md#tidb_dml_type-从-v800-版本开始引入)。 -* 支持在 TiDB 建表时使用更多的表达式设置列的默认值(实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) **tw@hfxsd** +* 支持在 TiDB 建表时使用更多的表达式设置列的默认值(实验特性)[#50936](https://github.com/pingcap/tidb/issues/50936) @[zimulala](https://github.com/zimulala) 在 v8.0.0 之前,建表时指定列的默认值仅限于固定的字符串、数字和日期。从 v8.0.0 开始,TiDB 支持使用部分表达式作为列的默认值,例如将列的默认值设置为 `UUID()`,从而满足多样化的业务需求。 更多信息,请参考[用户文档](/data-type-default-values.md#表达式默认值)。 -* 支持系统变量 `div_precision_increment` [#51501](https://github.com/pingcap/tidb/issues/51501) @[yibin87](https://github.com/yibin87) **tw@hfxsd** +* 支持系统变量 `div_precision_increment` [#51501](https://github.com/pingcap/tidb/issues/51501) @[yibin87](https://github.com/yibin87) MySQL 8.0 增加了变量 `div_precision_increment`,用于指定除法 `/` 运算结果增加的小数位数。在 v8.0.0 之前,TiDB 不支持该变量,而是按照 4 位小数进行除法计算。从 v8.0.0 开始,TiDB 支持该变量,你可以根据需要指定除法运算结果增加的小数位数。 @@ -199,33 +199,33 @@ TiDB 版本:8.0.0 ### 数据库管理 -* PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) **tw@lilin90** +* PITR 支持 Amazon S3 对象锁定 [#51184](https://github.com/pingcap/tidb/issues/51184) @[RidRisR](https://github.com/RidRisR) Amazon S3 对象锁定功能支持用户通过设置数据留存期,有效防止备份数据在指定时间内被意外或故意删除,提升了数据的安全性和完整性。从 v6.3.0 起,BR 为快照备份引入了对 Amazon S3 对象锁定功能的支持,为全量备份增加了额外的安全性保障。从 v8.0.0 起,PITR 也引入了对 Amazon S3 对象锁定功能的支持,无论是全量备份还是日志数据备份,都可以通过对象锁定功能提供更可靠的数据保护,进一步加强了数据备份和恢复的安全性,并满足了监管方面的需求。 - + 更多信息,请参考[用户文档](/br/backup-and-restore-storages.md#存储服务其他功能支持)。 - -* 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#50653](https://github.com/pingcap/tidb/issues/50653) @[hawkingrei](https://github.com/hawkingrei) **tw@Oreoxmt** + +* 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#50653](https://github.com/pingcap/tidb/issues/50653) @[hawkingrei](https://github.com/hawkingrei) 在优化器选择索引以优化查询执行时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 - + 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中进行测试新索引的性能,而不影响其他会话。这一改进提高了进行性能调优的安全性,并有助于增强生产数据库的稳定性。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 -* 支持将 general log 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** +* 支持将 general log 写入独立文件 [#51248](https://github.com/pingcap/tidb/issues/51248) @[Defined2014](https://github.com/Defined2014) general log 是与 MySQL 兼容的功能,开启后能够记录数据库执行的所有 SQL 语句,为问题诊断提供依据。TiDB 也支持此功能,你可以通过设置变量 [`tidb_general_log`](/system-variables.md#tidb_general_log) 开启该功能。在之前的版本中,general log 的内容只能和其他信息一起写入实例日志中,这对于需要长期保存日志的用户来说并不方便。 从 v8.0.0 开始,你可以通过配置项 [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) 指定一个文件名,将 general log 单独写入该文件。和实例日志一样,general log 也遵循日志的轮询和保存策略。 - + 另外,为了减少历史日志文件所占用的磁盘空间,TiDB 在 v8.0.0 支持了原生的日志压缩选项。你可以将配置项 [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) 设置为 `gzip`,使得轮询出的历史日志自动以 [`gzip`](https://www.gzip.org/) 格式压缩。 更多信息,请参考[用户文档](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入)。 - + ### 可观测性 -* 支持观测索引使用情况 [#49830](https://github.com/pingcap/tidb/issues/49830) @[YangKeao](https://github.com/YangKeao) **tw@Oreoxmt** +* 支持观测索引使用情况 [#49830](https://github.com/pingcap/tidb/issues/49830) @[YangKeao](https://github.com/YangKeao) 正确的索引设计是提升数据库性能的重要前提。TiDB v8.0.0 新增内存表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md),用于记录当前 TiDB 节点中所有索引的访问统计信息,包括: @@ -242,15 +242,15 @@ TiDB 版本:8.0.0 ### 安全 -* TiKV 静态加密支持 Google [Key Management Service (Cloud KMS)](https://cloud.google.com/docs/security/key-management-deep-dive?hl=zh-cn)(实验特性)[#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) **tw@qiancai** +* TiKV 静态加密支持 Google [Key Management Service (Cloud KMS)](https://cloud.google.com/docs/security/key-management-deep-dive?hl=zh-cn)(实验特性)[#8906](https://github.com/tikv/tikv/issues/8906) @[glorv](https://github.com/glorv) TiKV 通过静态加密功能对存储的数据进行加密,以确保数据的安全性。静态加密的安全核心点在于密钥管理。从 v8.0.0 起,你可以通过 Google Cloud KMS 管理 TiKV 的主密钥,构建基于 Cloud KMS 的静态加密能力,从而提高用户数据的安全性。 - + 要启用基于 Google Cloud KMS 的静态加密,你需要在 Google Cloud 上创建一个密钥,然后在 TiKV 配置文件中添加 `[security.encryption.master-key]` 部分的配置。 更多信息,请参考[用户文档](/encryption-at-rest.md#tikv-静态加密)。 -* 增强 TiDB 日志脱敏 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) **tw@hfxsd** +* 增强 TiDB 日志脱敏 [#51306](https://github.com/pingcap/tidb/issues/51306) @[xhebox](https://github.com/xhebox) TiDB 日志脱敏增强是通过对日志文件中的 SQL 文本信息进行标记,支持在查看时安全展示敏感数据。你可以控制是否对日志信息进行脱敏,以实现在不同场景下安全使用 TiDB 日志,提升了使用日志脱敏能力的安全性和灵活性。要使用此功能,可以将系统变量 `tidb_redact_log` 的值设置为 `MARKER`,此时 TiDB 的运行日志中的 SQL 文本会被标记,查看时将基于标记进行数据的安全展示,从而保护日志信息。 @@ -258,49 +258,49 @@ TiDB 版本:8.0.0 ### 数据迁移 -* TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) **tw@lilin90** +* TiCDC 支持 Simple 协议 [#9898](https://github.com/pingcap/tiflow/issues/9898) @[3AceShowHand](https://github.com/3AceShowHand) TiCDC 支持了新的 Simple 消息协议,该协议通过在 DDL 和 BOOTSTRAP 事件中嵌入表的 schema 信息,实现了对 schema 信息的动态追踪 (in-band schema tracking)。 更多信息,请参考[用户文档](/ticdc/ticdc-simple-protocol.md)。 -* TiCDC 支持 Debezium 协议 [#1799](https://github.com/pingcap/tiflow/issues/1799) @[breezewish](https://github.com/breezewish) **tw@lilin90** +* TiCDC 支持 Debezium 协议 [#1799](https://github.com/pingcap/tiflow/issues/1799) @[breezewish](https://github.com/breezewish) 通过 Debezium 协议,TiCDC 可以生成 Debezium 格式的数据变更事件,并将这些事件发送到 Kafka sink。这有助于为当前使用 Debezium 从 MySQL 拉取数据进行下游处理的用户简化从 MySQL 迁移到 TiDB 的过程。 更多信息,请参考[用户文档](/ticdc/ticdc-debezium.md)。 -* DM 支持使用用户提供的密钥对源数据库和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* DM 支持使用用户提供的密钥对源数据库和目标数据库的密码进行加密和解密 [#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) 在之前的版本中,DM 使用了一个内置的固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 -* 支持 `IMPORT INTO ... FROM SELECT` 语法(实验特性),增强 `IMPORT INTO` 功能 [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** +* 支持 `IMPORT INTO ... FROM SELECT` 语法(实验特性),增强 `IMPORT INTO` 功能 [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) 在之前的 TiDB 版本中,将查询结果导入目标表只能通过 `INSERT INTO ... SELECT` 语句,但该语句在一些大数据量的场景中的导入效率较低。从 v8.0.0 开始,TiDB 新增支持通过 `IMPORT INTO ... FROM SELECT` 将 `SELECT` 的查询结果导入到一张空的 TiDB 目标表中,其性能最高可达 `INSERT INTO ... SELECT` 的 8 倍,可以大幅缩短导入所需的时间。 - + 此外,你还可以通过 `IMPORT INTO ... FROM SELECT` 导入使用 [`AS OF TIMESTAMP`](/as-of-timestamp.md) 查询的历史数据。 - 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 - -* TiDB Lightning 简化冲突处理策略,同时支持以 `replace` 方式处理冲突数据(实验特性)[#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) **tw@qiancai** + 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 + +* TiDB Lightning 简化冲突处理策略,同时支持以 `replace` 方式处理冲突数据(实验特性)[#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) 在之前的版本中,TiDB Lightning 逻辑导入模式有[一套数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md#冲突数据检测),而物理导入模式有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 - + 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略,并简化了该参数的配置。此外,在物理导入模式下,当导入遇到主键或唯一键冲突的数据时,`replace` 策略支持保留最新的数据、覆盖旧的数据。 - 更多信息,请参考[用户文档](tidb-lightning/tidb-lightning-configuration.md)。 - -* 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) **tw@qiancai** + 更多信息,请参考[用户文档](tidb-lightning/tidb-lightning-configuration.md)。 + +* 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) 在 v7.4.0 以前,当使用[分布式执行框架](/tidb-distributed-execution-framework.md)执行 `IMPORT INTO` 任务时,由于本地存储空间有限,TiDB 只能对部分数据进行局部排序后再导入到 TiKV。这导致了导入到 TiKV 的数据存在较多的重叠,需要 TiKV 在导入过程中执行额外的 compaction 操作,影响了 TiKV 的性能和稳定性。 随着 v7.4.0 引入全局排序实验特性,TiDB 支持将需要导入的数据暂时存储在外部存储(如 Amazon S3)中进行全局排序后再导入到 TiKV 中,使 TiKV 无需在导入过程中执行 compaction 操作。全局排序在 v8.0.0 成为正式功能 (GA),可以降低 TiKV 对资源的额外消耗,显著提升 `IMPORT INTO` 的性能和稳定性。启用全局排序后,单个 `IMPORT INTO` 任务支持导入 40 TiB 以内的数据。 - 更多信息,请参考[用户文档](/tidb-global-sort.md)。 + 更多信息,请参考[用户文档](/tidb-global-sort.md)。 -## 兼容性变更 +## 兼容性变更 > **注意:** > @@ -312,11 +312,11 @@ TiDB 版本:8.0.0 ### 行为变更 -* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。**tw@hfxsd** +* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。 ### MySQL 兼容性 -* `KEY` 分区类型支持分区字段列表为空的语句,具体行为和 MySQL 保持一致。**tw@hfxsd** +* `KEY` 分区类型支持分区字段列表为空的语句,具体行为和 MySQL 保持一致。 ### 系统变量 @@ -361,24 +361,24 @@ TiDB 版本:8.0.0 ### 系统表 -* 新增系统表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) 和 [`INFORMATION_SCHEMA.CLUSTER_TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md#cluster_tidb_index_usage) 用于记录 TiDB 节点中索引的访问统计信息。**tw@Oreoxmt** -* 新增系统数据库 [`sys`](/sys-schema.md) 和 [`sys.schema_unused_index`](/sys-schema.md#schema_unused_index) 视图,用于记录自 TiDB 上次启动以来未被使用的索引信息。**tw@Oreoxmt** +* 新增系统表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) 和 [`INFORMATION_SCHEMA.CLUSTER_TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md#cluster_tidb_index_usage) 用于记录 TiDB 节点中索引的访问统计信息。 +* 新增系统数据库 [`sys`](/sys-schema.md) 和 [`sys.schema_unused_index`](/sys-schema.md#schema_unused_index) 视图,用于记录自 TiDB 上次启动以来未被使用的索引信息。 ## 废弃功能 -* 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。**tw@lilin90** +* 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。 * 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 * 计划在后续版本重新设计[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution),相关的变量和行为会发生变化。 ## 改进提升 -+ TiDB ++ TiDB - DDL 创建表语句 `CREATE TABLE` 执行性能加速 10 倍,并且可线性扩展 [#50052](https://github.com/pingcap/tidb/issues/50052) @[GMHDBJD](https://github.com/GMHDBJD) - - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) **tw@qiancai** - - 提升 `Sort` 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** - - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) **tw@qiancai** - - 在处理包含多个等值条件的表连接查询时,支持使用匹配部分条件的索引构造 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) **tw@Oreoxmt** + - 支持同时提交 16 个 `IMPORT INTO ... FROM FILE` 任务,方便批量导入数据到目标表,极大地提升了数据文件导入的效率和性能 [#49008](https://github.com/pingcap/tidb/issues/49008) @[D3Hunter](https://github.com/D3Hunter) + - 提升 `Sort` 算子的数据落盘性能 [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) + - 优化数据落盘功能的退出机制,支持在数据落盘过程中取消查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) + - 在处理包含多个等值条件的表连接查询时,支持使用匹配部分条件的索引构造 Index Join [#47233](https://github.com/pingcap/tidb/issues/47233) @[winoros](https://github.com/winoros) - 增强 Index Merge 能力,使其能识别查询中的排序需求,并能选中满足排序要求的索引 [#48359](https://github.com/pingcap/tidb/issues/48359) @[AilinKid](https://github.com/AilinKid) - 当 `Apply` 算子没有并发执行时,支持通过执行 `SHOW WARNINGS` 查看阻碍并发的算子名 [#50256](https://github.com/pingcap/tidb/issues/50256) @[hawkingrei](https://github.com/hawkingrei) - 优化点查的索引选择,在所有的索引都支持点查时选择其中性能最优的一个用于查询 [#50184](https://github.com/pingcap/tidb/issues/50184) @[elsa0520](https://github.com/elsa0520) @@ -386,9 +386,9 @@ TiDB 版本:8.0.0 - 在 `PREPARE` 语句无法命中执行计划缓存时,支持通过执行 `SHOW WARNINGS` 查看原因 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) - 提升当多次更新同一行的数据时查询估算信息的准确性 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - Index Merge 支持在 `AND` 谓词中内嵌多值索引和 `OR` 操作符 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - - (dup): release-7.1.4.md > 改进提升> TiDB - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) + - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) -+ TiKV ++ TiKV - 增强 TSO 校验检测,提升配置或操作不当时集群 TSO 的鲁棒性 [#16545](https://github.com/tikv/tikv/issues/16545) @[cfzjywxk](https://github.com/cfzjywxk) - 优化清理悲观锁的逻辑,提高未提交事务的处理性能 [#16158](https://github.com/tikv/tikv/issues/16158) @[cfzjywxk](https://github.com/cfzjywxk) @@ -401,7 +401,7 @@ TiDB 版本:8.0.0 - 增加 Region worker 和快照生成 worker 的 CPU 监控 [#16562](https://github.com/tikv/tikv/issues/16562) @[Connor1996](https://github.com/Connor1996) - 增加 peer 和 store 消息的 slow log [#16600](https://github.com/tikv/tikv/issues/16600) @[Connor1996](https://github.com/Connor1996) -+ PD ++ PD - 增强 PD 客户端的服务发现能力,提升其高可用性和负载平衡 [#7576](https://github.com/tikv/pd/issues/7576) @[CabinfeverB](https://github.com/CabinfeverB) - 增强 PD 客户端的重试机制 [#7673](https://github.com/tikv/pd/issues/7673) @[JmPotato](https://github.com/JmPotato) @@ -410,14 +410,14 @@ TiDB 版本:8.0.0 - 增加更多心跳监控,以便更好地分析性能瓶颈 [#7868](https://github.com/tikv/pd/issues/7868) @[nolouch](https://github.com/nolouch) - 减少 etcd leader 对 PD leader 的影响 [#7499](https://github.com/tikv/pd/issues/7499) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) - 增强对不健康的 etcd 节点的检测机制 [#7730](https://github.com/tikv/pd/issues/7730) @[JmPotato](https://github.com/JmPotato) @[HuSharp](https://github.com/HuSharp) - - 优化 pd-ctl 中 GC safepoint 的相关显示 [#7767](https://github.com/tikv/pd/issues/7767) @[nolouch](https://github.com/nolouch) - - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) - - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) - - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) + - 优化 pd-ctl 中 GC safepoint 的相关显示 [#7767](https://github.com/tikv/pd/issues/7767) @[nolouch](https://github.com/nolouch) + - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) + - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) + - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) + Tools - + Backup & Restore (BR) + + Backup & Restore (BR) - 支持通过 `br` 命令行工具新增的恢复参数 `--load-stats` 控制是否恢复统计信息 [#50568](https://github.com/pingcap/tidb/issues/50568) @[Leavrth](https://github.com/Leavrth) - 支持通过 `br` 命令行工具新增的恢复参数 `--tikv-max-restore-concurrency` 控制每个 TiKV 节点的最大 download 和 ingest 文件数量,并通过控制作业队列的最大长度,进而控制 BR 节点的内存消耗 [#51621](https://github.com/pingcap/tidb/issues/51621) @[3pointer](https://github.com/3pointer) @@ -425,48 +425,41 @@ TiDB 版本:8.0.0 - 在 `br` 的命令行帮助信息中显示 `log` 命令 [#50927](https://github.com/pingcap/tidb/issues/50927) @[RidRisR](https://github.com/RidRisR) - 支持在恢复过程中提前分配好 Table ID,从而最大限度地复用 Table ID,提升恢复性能 [#51736](https://github.com/pingcap/tidb/issues/51736) @[Leavrth](https://github.com/Leavrth) - 使用 BR 时,禁用 TiDB 内部的 GC memory limit tuner 功能,避免 OOM 问题 [#51078](https://github.com/pingcap/tidb/issues/51078) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 在日志备份过程中,增加了在日志和监控指标中打印影响 global checkpoint 推进的最慢的 Region 的信息 [#51046](https://github.com/pingcap/tidb/issues/51046) @[YuJuncen](https://github.com/YuJuncen) - - (dup): release-7.5.1.md > 改进提升> Tools> Backup & Restore (BR) - 提升了 `RESTORE` 语句在大数据量表场景下的建表性能 [#48301](https://github.com/pingcap/tidb/issues/48301) @[Leavrth](https://github.com/Leavrth) + - 使用更优的算法,提升数据恢复过程中 SST 文件合并的速度 [#50613](https://github.com/pingcap/tidb/issues/50613) @[Leavrth](https://github.com/Leavrth) + - 支持在数据恢复过程中批量创建数据库 [#50767](https://github.com/pingcap/tidb/issues/50767) @[Leavrth](https://github.com/Leavrth) + - 在日志备份过程中,增加了在日志和监控指标中打印影响 global checkpoint 推进的最慢的 Region 的信息 [#51046](https://github.com/pingcap/tidb/issues/51046) @[YuJuncen](https://github.com/YuJuncen) + - 提升了 `RESTORE` 语句在大数据量表场景下的建表性能 [#48301](https://github.com/pingcap/tidb/issues/48301) @[Leavrth](https://github.com/Leavrth) - + TiCDC + + TiCDC - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - 优化 `RowChangedEvent` 的内存占用,降低 TiCDC 同步数据时的内存消耗 [#10386](https://github.com/pingcap/tiflow/issues/10386) @[lidezhu](https://github.com/lidezhu) - 增加在创建和恢复 changefeed 任务时验证 `start-ts` 参数是否合法 [#10499](https://github.com/pingcap/tiflow/issues/10499) @[3AceShowHand](https://github.com/3AceShowHand) - + TiDB Data Migration (DM) + + TiDB Data Migration (DM) - - 在 MariaDB 主从复制的场景中,即 MariaDB 主实例 -> MariaDB 从实例 -> DM -> TiDB 的迁移场景,当 `gtid_strict_mode = off` 且 MariaDB 从实例的 GTID 不严格递增时(例如,有业务数据写入 MariaDB 从实例),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) **tw@hfxsd** + - 在 MariaDB 主从复制的场景中,即 MariaDB 主实例 -> MariaDB 从实例 -> DM -> TiDB 的迁移场景,当 `gtid_strict_mode = off` 且 MariaDB 从实例的 GTID 不严格递增时(例如,有业务数据写入 MariaDB 从实例),此时 DM 任务会报错 `less than global checkpoint position`。从 v8.0.0 开始,TiDB 兼容该场景,数据可以正常迁移到下游。[#10741](https://github.com/pingcap/tiflow/issues/10741) @[okJiang](https://github.com/okJiang) - + TiDB Lightning + + TiDB Lightning - 在逻辑导入模式下,支持使用 [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) 配置批处理的最大行数 [#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - 当 TiFlash 的导入空间不足时,TiDB Lightning 会报错 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) - + TiUP - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - ## 错误修复 -+ TiDB ++ TiDB - 修复在无数据变更的情况下,`auto analyze` 被多次触发的问题 [#51775](https://github.com/pingcap/tidb/issues/51775) @[hi-rustin](https://github.com/hi-rustin) - 修复 `auto analyze` 并发设置错误的问题 [#51749](https://github.com/pingcap/tidb/issues/51749) @[hawkingrei](https://github.com/hawkingrei) - 修复使用单个 SQL 语句添加多个索引导致的索引不一致问题 [#51746](https://github.com/pingcap/tidb/issues/51746) @[tangenta](https://github.com/tangenta) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复查询使用 `NATURAL JOIN` 时可能报错 `Column ... in from clause is ambiguous` 的问题 [#32044](https://github.com/pingcap/tidb/issues/32044) @[AilinKid](https://github.com/AilinKid) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 TiDB 错误地消除 `group by` 中的常量值导致查询结果出错的问题 [#38756](https://github.com/pingcap/tidb/issues/38756) @[hi-rustin](https://github.com/hi-rustin) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 `LEADING` hint 在 `UNION ALL` 语句中无法生效的问题 [#50067](https://github.com/pingcap/tidb/issues/50067) @[hawkingrei](https://github.com/hawkingrei) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 `BIT` 类型的列在参与一些函数计算时,可能会因为 decode 失败导致查询出错的问题 [#49566](https://github.com/pingcap/tidb/issues/49566) [#50850](https://github.com/pingcap/tidb/issues/50850) [#50855](https://github.com/pingcap/tidb/issues/50855) @[jiyfhust](https://github.com/jiyfhust) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复通过 `tiup cluster upgrade/start` 方式进行滚动升级时,与 PD 交互出现问题可能导致 TiDB panic 的问题 [#50152](https://github.com/pingcap/tidb/issues/50152) @[zimulala](https://github.com/zimulala) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复执行包含 `ORDER BY` 的 `UNIQUE` 索引点查时可能报错的问题 [#49920](https://github.com/pingcap/tidb/issues/49920) @[jackysp](https://github.com/jackysp) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复常量传播在处理 `ENUM` 或 `SET` 类型时结果出错的问题 [#49440](https://github.com/pingcap/tidb/issues/49440) @[winoros](https://github.com/winoros) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复包含 Apply 操作的查询在报错 `fatal error: concurrent map writes` 后导致 TiDB 崩溃的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用 `SET_VAR` 控制字符串类型的变量可能会失效的问题 [#50507](https://github.com/pingcap/tidb/issues/50507) @[qw4990](https://github.com/qw4990) + - 修复查询使用 `NATURAL JOIN` 时可能报错 `Column ... in from clause is ambiguous` 的问题 [#32044](https://github.com/pingcap/tidb/issues/32044) @[AilinKid](https://github.com/AilinKid) + - 修复 TiDB 错误地消除 `group by` 中的常量值导致查询结果出错的问题 [#38756](https://github.com/pingcap/tidb/issues/38756) @[hi-rustin](https://github.com/hi-rustin) + - 修复 `LEADING` hint 在 `UNION ALL` 语句中无法生效的问题 [#50067](https://github.com/pingcap/tidb/issues/50067) @[hawkingrei](https://github.com/hawkingrei) + - 修复 `BIT` 类型的列在参与一些函数计算时,可能会因为 decode 失败导致查询出错的问题 [#49566](https://github.com/pingcap/tidb/issues/49566) [#50850](https://github.com/pingcap/tidb/issues/50850) [#50855](https://github.com/pingcap/tidb/issues/50855) @[jiyfhust](https://github.com/jiyfhust) + - 修复通过 `tiup cluster upgrade/start` 方式进行滚动升级时,与 PD 交互出现问题可能导致 TiDB panic 的问题 [#50152](https://github.com/pingcap/tidb/issues/50152) @[zimulala](https://github.com/zimulala) + - 修复执行包含 `ORDER BY` 的 `UNIQUE` 索引点查时可能报错的问题 [#49920](https://github.com/pingcap/tidb/issues/49920) @[jackysp](https://github.com/jackysp) + - 修复常量传播在处理 `ENUM` 或 `SET` 类型时结果出错的问题 [#49440](https://github.com/pingcap/tidb/issues/49440) @[winoros](https://github.com/winoros) + - 修复包含 Apply 操作的查询在报错 `fatal error: concurrent map writes` 后导致 TiDB 崩溃的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) + - 修复使用 `SET_VAR` 控制字符串类型的变量可能会失效的问题 [#50507](https://github.com/pingcap/tidb/issues/50507) @[qw4990](https://github.com/qw4990) - 修复当 `tidb_sysdate_is_now` 设置为 `1` 时,`SYSDATE()` 函数错误地使用了计划缓存中的时间的问题 [#49299](https://github.com/pingcap/tidb/issues/49299) @[hawkingrei](https://github.com/hawkingrei) - 修复执行 `CREATE GLOBAL BINDING` 语句时,如果数据库名为大写,则绑定不生效的问题 [#50646](https://github.com/pingcap/tidb/issues/50646) @[qw4990](https://github.com/qw4990) - 修复 `Index Path` 选中重复索引的问题 [#50496](https://github.com/pingcap/tidb/issues/50496) @[AilinKid](https://github.com/AilinKid) @@ -483,32 +476,32 @@ TiDB 版本:8.0.0 - 修复 `init-stats` 流程可能导致 TiDB panic 以及 `load stats` 流程直接退出的问题 [#51581](https://github.com/pingcap/tidb/issues/51581) @[hawkingrei](https://github.com/hawkingrei) - 修复 `IN()` 谓词中包含 `NULL` 时,查询结果错误的问题 [#51560](https://github.com/pingcap/tidb/issues/51560) @[winoros](https://github.com/winoros) - 修复当 DDL 任务中包含多张表时,MDL View 中不显示 blocked DDL 的问题 [#47743](https://github.com/pingcap/tidb/issues/47743) @[wjhuang2016](https://github.com/wjhuang2016) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复 CTE 查询使用的内存超限时可能会导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) - - (dup): release-7.5.1.md > 错误修复> TiDB - 修复使用聚合函数分组计算时可能报错 `Can't find column ...` 的问题 [#50926](https://github.com/pingcap/tidb/issues/50926) @[qw4990](https://github.com/qw4990) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当 `CREATE TABLE` 语句中包含特定分区或约束的表达式时,表名变更等 DDL 操作会卡住的问题 [#50972](https://github.com/pingcap/tidb/issues/50972) @[lcwangchao](https://github.com/lcwangchao) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复 Grafana 监控指标 `tidb_statistics_auto_analyze_total` 没有显示为整数的问题 [#51051](https://github.com/pingcap/tidb/issues/51051) @[hawkingrei](https://github.com/hawkingrei) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei](https://github.com/hawkingrei) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) - - (dup): release-7.1.4.md > 错误修复> TiDB - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) + - 修复表的 `ANALYZE` 任务统计的 `processed_rows` 可能超过表的总行数的问题 [#50632](https://github.com/pingcap/tidb/issues/50632) @[hawkingrei](https://github.com/hawkingrei) + - 修复当 `HashJoin` 算子落盘失败时 goroutine 可能泄露的问题 [#50841](https://github.com/pingcap/tidb/issues/50841) @[wshwsh12](https://github.com/wshwsh12) + - 修复 CTE 查询使用的内存超限时可能会导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) + - 修复使用聚合函数分组计算时可能报错 `Can't find column ...` 的问题 [#50926](https://github.com/pingcap/tidb/issues/50926) @[qw4990](https://github.com/qw4990) + - 修复当 `CREATE TABLE` 语句中包含特定分区或约束的表达式时,表名变更等 DDL 操作会卡住的问题 [#50972](https://github.com/pingcap/tidb/issues/50972) @[lcwangchao](https://github.com/lcwangchao) + - 修复 Grafana 监控指标 `tidb_statistics_auto_analyze_total` 没有显示为整数的问题 [#51051](https://github.com/pingcap/tidb/issues/51051) @[hawkingrei](https://github.com/hawkingrei) + - 修复修改变量 `tidb_server_memory_limit` 后,`tidb_gogc_tuner_threshold` 未进行相应调整的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei](https://github.com/hawkingrei) + - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) + - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - 修复 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) -+ TiKV ++ TiKV - - (dup): release-7.5.1.md > 错误修复> TiKV - 修复开启 `tidb_enable_row_level_checksum` 可能导致 TiKV panic 的问题 [#16371](https://github.com/tikv/tikv/issues/16371) @[cfzjywxk](https://github.com/cfzjywxk) - - (dup): release-7.1.4.md > 错误修复> TiKV - 修复休眠的 Region 在异常情况下未被及时唤醒的问题 [#16368](https://github.com/tikv/tikv/issues/16368) @[LykxSassinator](https://github.com/LykxSassinator) - - (dup): release-7.1.4.md > 错误修复> TiKV - 通过在执行下线节点操作前检查该 Region 所有副本的上一次心跳时间,修复下线一个副本导致整个 Region 不可用的问题 [#16465](https://github.com/tikv/tikv/issues/16465) @[tonyxuqqi](https://github.com/tonyxuqqi) - - (dup): release-7.1.4.md > 错误修复> TiKV - 修复 JSON 整型数值在大于 `INT64` 最大值但小于 `UINT64` 最大值时会被 TiKV 解析成 `FLOAT64` 导致结果和 TiDB 不一致的问题 [#16512](https://github.com/tikv/tikv/issues/16512) @[YangKeao](https://github.com/YangKeao) - - 修复监控指标 `tikv_unified_read_pool_thread_count` 有时没有数据的问题 [#16629](https://github.com/tikv/tikv/issues/16629) @[YuJuncen](https://github.com/YuJuncen) + - 修复开启 `tidb_enable_row_level_checksum` 可能导致 TiKV panic 的问题 [#16371](https://github.com/tikv/tikv/issues/16371) @[cfzjywxk](https://github.com/cfzjywxk) + - 修复休眠的 Region 在异常情况下未被及时唤醒的问题 [#16368](https://github.com/tikv/tikv/issues/16368) @[LykxSassinator](https://github.com/LykxSassinator) + - 通过在执行下线节点操作前检查该 Region 所有副本的上一次心跳时间,修复下线一个副本导致整个 Region 不可用的问题 [#16465](https://github.com/tikv/tikv/issues/16465) @[tonyxuqqi](https://github.com/tonyxuqqi) + - 修复 JSON 整型数值在大于 `INT64` 最大值但小于 `UINT64` 最大值时会被 TiKV 解析成 `FLOAT64` 导致结果和 TiDB 不一致的问题 [#16512](https://github.com/tikv/tikv/issues/16512) @[YangKeao](https://github.com/YangKeao) + - 修复监控指标 `tikv_unified_read_pool_thread_count` 有时没有数据的问题 [#16629](https://github.com/tikv/tikv/issues/16629) @[YuJuncen](https://github.com/YuJuncen) -+ PD ++ PD - - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `MergeLabels` 函数时存在数据竞争的问题 [#7535](https://github.com/tikv/pd/issues/7535) @[lhy1024](https://github.com/lhy1024) - - (dup): release-7.1.4.md > 错误修复> PD - 修复调用 `evict-leader-scheduler` 接口时没有输出结果的问题 [#7672](https://github.com/tikv/pd/issues/7672) @[CabinfeverB](https://github.com/CabinfeverB) - - (dup): release-7.5.1.md > 错误修复> PD - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) - - (dup): release-7.1.4.md > 错误修复> PD - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) - - (dup): release-7.1.4.md > 修复 TSO 部分日志没有打印报错原因的问题 [#7496](https://github.com/tikv/pd/issues/7496) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复调用 `MergeLabels` 函数时存在数据竞争的问题 [#7535](https://github.com/tikv/pd/issues/7535) @[lhy1024](https://github.com/lhy1024) + - 修复调用 `evict-leader-scheduler` 接口时没有输出结果的问题 [#7672](https://github.com/tikv/pd/issues/7672) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 PD 监控项 `learner-peer-count` 在发生 Leader 切换后未同步旧监控值的问题 [#7728](https://github.com/tikv/pd/issues/7728) @[CabinfeverB](https://github.com/CabinfeverB) + - 修复 `watch etcd` 没有正确关闭导致内存泄露的问题 [#7807](https://github.com/tikv/pd/issues/7807) @[rleungx](https://github.com/rleungx) + - 修复 TSO 部分日志没有打印报错原因的问题 [#7496](https://github.com/tikv/pd/issues/7496) @[CabinfeverB](https://github.com/CabinfeverB) - 修复重启后 PD 部分监控出现非预期负数的问题 [#4489](https://github.com/tikv/pd/issues/4489) @[lhy1024](https://github.com/lhy1024) - 修复 Leader 租约的过期时间晚于日志时间的问题 [#7700](https://github.com/tikv/pd/issues/7700) @[CabinfeverB](https://github.com/CabinfeverB) - 修复在 TiDB(PD 客户端)和 PD 之间的 TLS 开关不一致时,TiDB panic 的问题 [#7900](https://github.com/tikv/pd/issues/7900) [#7902](https://github.com/tikv/pd/issues/7902) [#7916](https://github.com/tikv/pd/issues/7916) @[CabinfeverB](https://github.com/CabinfeverB) @@ -516,39 +509,39 @@ TiDB 版本:8.0.0 - 修复 pd-ctl 无法移除包含特殊字符的调度器的问题 [#7798](https://github.com/tikv/pd/issues/7798) @[JmPotato](https://github.com/JmPotato) - 修复 PD 客户端获取 TSO 可能被阻塞的问题 [#7864](https://github.com/tikv/pd/issues/7864) @[CabinfeverB](https://github.com/CabinfeverB) -+ TiFlash ++ TiFlash - - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复副本迁移时,因 TiFlash 与 PD 之间网络连接不稳定可能引发的 TiFlash panic 的问题 [#8323](https://github.com/pingcap/tiflash/issues/8323) @[JaySon-Huang](https://github.com/JaySon-Huang) - - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复慢查询导致内存使用显著增加的问题 [#8564](https://github.com/pingcap/tiflash/issues/8564) @[JinheLin](https://github.com/JinheLin) - - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复移除 TiFlash 副本后重新添加可能导致 TiFlash 数据损坏的问题 [#8695](https://github.com/pingcap/tiflash/issues/8695) @[JaySon-Huang](https://github.com/JaySon-Huang) - - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 PITR 恢复任务或 `FLASHBACK CLUSTER TO` 后,TiFlash 副本数据可能被意外删除,导致数据异常的问题 [#8777](https://github.com/pingcap/tiflash/issues/8777) @[JaySon-Huang](https://github.com/JaySon-Huang) - - (dup): release-7.5.1.md > 错误修复> TiFlash - 修复在执行 `ALTER TABLE ... MODIFY COLUMN ... NOT NULL` 时,将原本可为空的列修改为不可为空之后,导致 TiFlash panic 的问题 [#8419](https://github.com/pingcap/tiflash/issues/8419) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复副本迁移时,因 TiFlash 与 PD 之间网络连接不稳定可能引发的 TiFlash panic 的问题 [#8323](https://github.com/pingcap/tiflash/issues/8323) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复慢查询导致内存使用显著增加的问题 [#8564](https://github.com/pingcap/tiflash/issues/8564) @[JinheLin](https://github.com/JinheLin) + - 修复移除 TiFlash 副本后重新添加可能导致 TiFlash 数据损坏的问题 [#8695](https://github.com/pingcap/tiflash/issues/8695) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复在执行 PITR 恢复任务或 `FLASHBACK CLUSTER TO` 后,TiFlash 副本数据可能被意外删除,导致数据异常的问题 [#8777](https://github.com/pingcap/tiflash/issues/8777) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复在执行 `ALTER TABLE ... MODIFY COLUMN ... NOT NULL` 时,将原本可为空的列修改为不可为空之后,导致 TiFlash panic 的问题 [#8419](https://github.com/pingcap/tiflash/issues/8419) @[JaySon-Huang](https://github.com/JaySon-Huang) - 修复存算分离架构下,出现网络隔离后查询可能会被永久阻塞的问题 [#8806](https://github.com/pingcap/tiflash/issues/8806) @[JinheLin](https://github.com/JinheLin) - 修复存算分离架构下,TiFlash 关闭过程中可能 panic 的问题 [#8837](https://github.com/pingcap/tiflash/issues/8837) @[JaySon-Huang](https://github.com/JaySon-Huang) + Tools - + Backup & Restore (BR) + + Backup & Restore (BR) - 修复在 Region 成为 Leader 后立刻分裂或合并,导致日志备份 Checkpoint 不推进的问题 [#16469](https://github.com/tikv/tikv/issues/16469) @[YuJuncen](https://github.com/YuJuncen) - 修复在某些极端情况下,全量备份因找不到 peer 导致 TiKV panic 的问题 [#16394](https://github.com/tikv/tikv/issues/16394) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复在同一节点上更改 TiKV IP 地址导致日志备份卡住的问题 [#50445](https://github.com/pingcap/tidb/issues/50445) @[3pointer](https://github.com/3pointer) - - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复从 S3 读文件内容时出错后无法重试的问题 [#49942](https://github.com/pingcap/tidb/issues/49942) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复数据恢复失败后,使用断点重启报错 `the target cluster is not fresh` 的问题 [#50232](https://github.com/pingcap/tidb/issues/50232) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复停止日志备份任务导致 TiDB crash 的问题 [#50839](https://github.com/pingcap/tidb/issues/50839) @[YuJuncen](https://github.com/YuJuncen) - - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复由于某个 TiKV 节点缺少 Leader 导致数据恢复变慢的问题 [#50566](https://github.com/pingcap/tidb/issues/50566) @[Leavrth](https://github.com/Leavrth) - - (dup): release-7.5.1.md > 错误修复> Tools> Backup & Restore (BR) - 修复全量恢复指定 `--filter` 选项后,仍然要求目标集群为空的问题 [#51009](https://github.com/pingcap/tidb/issues/51009) @[3pointer](https://github.com/3pointer) - - + TiCDC - - - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复使用 storage sink 时,在存储服务生成的文件序号可能出现回退的问题 [#10352](https://github.com/pingcap/tiflow/issues/10352) @[CharlesCheung96](https://github.com/CharlesCheung96) - - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复并发创建多个 changefeed 时 TiCDC 返回 `ErrChangeFeedAlreadyExists` 错误的问题 [#10430](https://github.com/pingcap/tiflow/issues/10430) @[CharlesCheung96](https://github.com/CharlesCheung96) - - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复在 `ignore-event` 中设置了过滤掉 `add table partition` 事件后,TiCDC 未将相关分区的其它类型 DML 变更事件同步到下游的问题 [#10524](https://github.com/pingcap/tiflow/issues/10524) @[CharlesCheung96](https://github.com/CharlesCheung96) - - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复上游表执行了 `TRUNCATE PARTITION` 后 changefeed 报错的问题 [#10522](https://github.com/pingcap/tiflow/issues/10522) @[sdojjy](https://github.com/sdojjy) - - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复恢复 changefeed 时 changefeed 的 `checkpoint-ts` 小于 TiDB 的 GC safepoint,没有及时报错 `snapshot lost caused by GC` 的问题 [#10463](https://github.com/pingcap/tiflow/issues/10463) @[sdojjy](https://github.com/sdojjy) - - (dup): release-7.1.4.md > 错误修复> Tools> TiCDC - 修复 TiCDC 在开启单行数据正确性校验后由于时区不匹配导致 `TIMESTAMP` 类型 checksum 验证失败的问题 [#10573](https://github.com/pingcap/tiflow/issues/10573) @[3AceShowHand](https://github.com/3AceShowHand) - - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复 Syncpoint 表可能被错误同步的问题 [#10576](https://github.com/pingcap/tiflow/issues/10576) @[asddongmen](https://github.com/asddongmen) - - (dup): release-7.5.1.md > 错误修复> Tools> TiCDC - 修复当使用 Apache Pulsar 作为下游时,无法正常启用 OAuth2.0、TLS 和 mTLS 的问题 [#10602](https://github.com/pingcap/tiflow/issues/10602) @[asddongmen](https://github.com/asddongmen) + - 修复在同一节点上更改 TiKV IP 地址导致日志备份卡住的问题 [#50445](https://github.com/pingcap/tidb/issues/50445) @[3pointer](https://github.com/3pointer) + - 修复从 S3 读文件内容时出错后无法重试的问题 [#49942](https://github.com/pingcap/tidb/issues/49942) @[Leavrth](https://github.com/Leavrth) + - 修复数据恢复失败后,使用断点重启报错 `the target cluster is not fresh` 的问题 [#50232](https://github.com/pingcap/tidb/issues/50232) @[Leavrth](https://github.com/Leavrth) + - 修复停止日志备份任务导致 TiDB crash 的问题 [#50839](https://github.com/pingcap/tidb/issues/50839) @[YuJuncen](https://github.com/YuJuncen) + - 修复由于某个 TiKV 节点缺少 Leader 导致数据恢复变慢的问题 [#50566](https://github.com/pingcap/tidb/issues/50566) @[Leavrth](https://github.com/Leavrth) + - 修复全量恢复指定 `--filter` 选项后,仍然要求目标集群为空的问题 [#51009](https://github.com/pingcap/tidb/issues/51009) @[3pointer](https://github.com/3pointer) + + + TiCDC + + - 修复使用 storage sink 时,在存储服务生成的文件序号可能出现回退的问题 [#10352](https://github.com/pingcap/tiflow/issues/10352) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复并发创建多个 changefeed 时 TiCDC 返回 `ErrChangeFeedAlreadyExists` 错误的问题 [#10430](https://github.com/pingcap/tiflow/issues/10430) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复在 `ignore-event` 中设置了过滤掉 `add table partition` 事件后,TiCDC 未将相关分区的其它类型 DML 变更事件同步到下游的问题 [#10524](https://github.com/pingcap/tiflow/issues/10524) @[CharlesCheung96](https://github.com/CharlesCheung96) + - 修复上游表执行了 `TRUNCATE PARTITION` 后 changefeed 报错的问题 [#10522](https://github.com/pingcap/tiflow/issues/10522) @[sdojjy](https://github.com/sdojjy) + - 修复恢复 changefeed 时 changefeed 的 `checkpoint-ts` 小于 TiDB 的 GC safepoint,没有及时报错 `snapshot lost caused by GC` 的问题 [#10463](https://github.com/pingcap/tiflow/issues/10463) @[sdojjy](https://github.com/sdojjy) + - 修复 TiCDC 在开启单行数据正确性校验后由于时区不匹配导致 `TIMESTAMP` 类型 checksum 验证失败的问题 [#10573](https://github.com/pingcap/tiflow/issues/10573) @[3AceShowHand](https://github.com/3AceShowHand) + - 修复 Syncpoint 表可能被错误同步的问题 [#10576](https://github.com/pingcap/tiflow/issues/10576) @[asddongmen](https://github.com/asddongmen) + - 修复当使用 Apache Pulsar 作为下游时,无法正常启用 OAuth2.0、TLS 和 mTLS 的问题 [#10602](https://github.com/pingcap/tiflow/issues/10602) @[asddongmen](https://github.com/asddongmen) - 修复当 TiKV 升级、重启或驱逐 Leader 时,changefeed 可能卡住的问题 [#10584](https://github.com/pingcap/tiflow/issues/10584) @[asddongmen](https://github.com/asddongmen) - 修复在频繁执行 DDL 的场景中,由于错误的 BarrierTS 导致数据被写入到错误的 CSV 文件的问题 [#10668](https://github.com/pingcap/tiflow/issues/10668) @[lidezhu](https://github.com/lidezhu) - 修复 KV Client 数据争用导致 TiCDC panic 的问题 [#10718](https://github.com/pingcap/tiflow/issues/10718) @[asddongmen](https://github.com/asddongmen) @@ -561,23 +554,8 @@ TiDB 版本:8.0.0 + TiDB Lightning - 修复检查 TiKV 空间导致的性能回退的问题 [#43636](https://github.com/pingcap/tidb/issues/43636) @[lance6716](https://github.com/lance6716) - - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复在扫描数据文件时,遇到不合法符号链接文件而报错的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) - - (dup): release-7.1.4.md > 错误修复> Tools> TiDB Lightning - 修复当 `sql_mode` 中不包含 `NO_ZERO_IN_DATE` 时,TiDB Lightning 无法正确解析包含 `0` 的日期值的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) - - + Dumpling - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiUP - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Binlog - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - 修复在扫描数据文件时,遇到不合法符号链接文件而报错的问题 [#49423](https://github.com/pingcap/tidb/issues/49423) @[lance6716](https://github.com/lance6716) + - 修复当 `sql_mode` 中不包含 `NO_ZERO_IN_DATE` 时,TiDB Lightning 无法正确解析包含 `0` 的日期值的问题 [#50757](https://github.com/pingcap/tidb/issues/50757) @[GMHDBJD](https://github.com/GMHDBJD) ## 贡献者 From 86449384e819c54e543412b672e0c210073d49d8 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:19:55 +0800 Subject: [PATCH 129/156] fix links --- releases/release-8.0.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index a2087ac5ef23..be09b5657956 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -274,7 +274,7 @@ TiDB 版本:8.0.0 在之前的版本中,DM 使用了一个内置的固定秘钥,安全性相对较低。从 v8.0.0 开始,你可以上传并指定一个密钥文件,用于对上下游数据库的密码进行加密和解密操作。此外,你还可以按需替换秘钥文件,以提升数据的安全性。 - 更多信息,请参考[用户文档](dm/dm-customized-secret-key.md)。 + 更多信息,请参考[用户文档](/dm/dm-customized-secret-key.md)。 * 支持 `IMPORT INTO ... FROM SELECT` 语法(实验特性),增强 `IMPORT INTO` 功能 [#49883](https://github.com/pingcap/tidb/issues/49883) @[D3Hunter](https://github.com/D3Hunter) @@ -282,15 +282,15 @@ TiDB 版本:8.0.0 此外,你还可以通过 `IMPORT INTO ... FROM SELECT` 导入使用 [`AS OF TIMESTAMP`](/as-of-timestamp.md) 查询的历史数据。 - 更多信息,请参考[用户文档](sql-statements/sql-statement-import-into.md)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-import-into.md)。 * TiDB Lightning 简化冲突处理策略,同时支持以 `replace` 方式处理冲突数据(实验特性)[#51036](https://github.com/pingcap/tidb/issues/51036) @[lyzx2001](https://github.com/lyzx2001) 在之前的版本中,TiDB Lightning 逻辑导入模式有[一套数据冲突处理策略](/tidb-lightning/tidb-lightning-logical-import-mode-usage.md#冲突数据检测),而物理导入模式有[两套数据冲突处理策略](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#冲突数据检测),不易理解和配置。 - 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略,并简化了该参数的配置。此外,在物理导入模式下,当导入遇到主键或唯一键冲突的数据时,`replace` 策略支持保留最新的数据、覆盖旧的数据。 + 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略,并简化了该参数的配置。此外,在物理导入模式下,当导入遇到主键或唯一键冲突的数据时,`replace` 策略支持保留最新的数据、覆盖旧的数据。 - 更多信息,请参考[用户文档](tidb-lightning/tidb-lightning-configuration.md)。 + 更多信息,请参考[用户文档](/tidb-lightning/tidb-lightning-configuration.md)。 * 全局排序成为正式功能 (GA),可显著提升 `IMPORT INTO` 任务的导入性能和稳定性 [#45719](https://github.com/pingcap/tidb/issues/45719) @[lance6716](https://github.com/lance6716) @@ -356,8 +356,8 @@ TiDB 版本:8.0.0 | TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | | TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | -| TiCDC | [`tls-certificate-file`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | -| TiCDC | [`tls-key-file-path`](ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | +| TiCDC | [`tls-certificate-file`](/ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | +| TiCDC | [`tls-key-file-path`](/ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | ### 系统表 From deafa721569042f9e3a94ad366096d36c398d121 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:34:16 +0800 Subject: [PATCH 130/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index be09b5657956..55deebb656ab 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -353,8 +353,8 @@ TiDB 版本:8.0.0 | TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该参数。 | -| TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | -| TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | +| TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | | TiCDC | [`tls-certificate-file`](/ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | | TiCDC | [`tls-key-file-path`](/ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | @@ -441,7 +441,7 @@ TiDB 版本:8.0.0 + TiDB Lightning - - 在逻辑导入模式下,支持使用 [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-task) 配置批处理的最大行数 [#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) + - 在逻辑导入模式下,支持使用 [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 配置批处理的最大行数 [#46607](https://github.com/pingcap/tidb/issues/46607) @[kennytm](https://github.com/kennytm) - 当 TiFlash 的导入空间不足时,TiDB Lightning 会报错 [#50324](https://github.com/pingcap/tidb/issues/50324) @[okJiang](https://github.com/okJiang) ## 错误修复 From 7182afbce5e65190bca76b321099c8b32a193a1e Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 27 Mar 2024 16:34:47 +0800 Subject: [PATCH 131/156] Apply suggestions from code review Co-authored-by: Roger Song --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 55deebb656ab..8b760c872c95 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -47,7 +47,7 @@ TiDB 版本:8.0.0 数据库管理与可观测性 支持观测索引使用情况 - TiDB v8.0.0 引入 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 表和 sys.schema_unused_index 视图,以提供索引的使用统计信息。该功能有助于用户评估所有索引的重要性并优化索引设计。 + 正确的索引设计是提升数据库性能的重要前提。TiDB v8.0.0 引入内存表 INFORMATION_SCHEMA.TIDB_INDEX_USAGE 和视图 sys.schema_unused_index ,用于记录索引的使用情况。该功能有助于用户评估数据库中索引的效率并优化索引设计。 数据迁移 @@ -207,7 +207,7 @@ TiDB 版本:8.0.0 * 支持在会话级将不可见索引 (Invisible Indexes) 调整为可见 [#50653](https://github.com/pingcap/tidb/issues/50653) @[hawkingrei](https://github.com/hawkingrei) - 在优化器选择索引以优化查询执行时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 + 在优化器选择索引时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中进行测试新索引的性能,而不影响其他会话。这一改进提高了进行性能调优的安全性,并有助于增强生产数据库的稳定性。 From da895d9cd9b14156777af75fa6464522107dd6ea Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 27 Mar 2024 16:35:36 +0800 Subject: [PATCH 132/156] Apply suggestions from code review Co-authored-by: Roger Song --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8b760c872c95..a717f411d568 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -209,7 +209,7 @@ TiDB 版本:8.0.0 在优化器选择索引时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 - 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中进行测试新索引的性能,而不影响其他会话。这一改进提高了进行性能调优的安全性,并有助于增强生产数据库的稳定性。 + 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中测试新索引的性能,而不影响其他会话。这一改进提高了性能调优的安全性,并有助于增强生产数据库的稳定性。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 From f25844899c6f38c82a9b9e6fa1da7cefe0ad1270 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:45:23 +0800 Subject: [PATCH 133/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 55deebb656ab..8783f65237ea 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -209,7 +209,7 @@ TiDB 版本:8.0.0 在优化器选择索引以优化查询执行时,默认情况下不会选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。这一机制通常用于在评估是否删除某个索引之前。如果担心删除索引可能导致性能下降,可以先将索引设置为不可见,以便在必要时快速将其恢复为可见。 - 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中进行测试新索引的性能,而不影响其他会话。这一改进提高了进行性能调优的安全性,并有助于增强生产数据库的稳定性。 + 从 v8.0.0 开始,你可以将会话级系统变量 [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) 设置为 `ON`,让当前会话识别并使用不可见索引。利用这个功能,在添加新索引并希望测试其效果时,可以先将索引创建为不可见索引,然后通过修改该系统变量在当前会话中进行测试新索引的性能,而不影响其他会话。这一改进提高了进行性能调优的安全性,并有助于增强生产数据库的稳定性。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#不可见索引)。 @@ -312,7 +312,7 @@ TiDB 版本:8.0.0 ### 行为变更 -* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt-从-v800-版本开始引入) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。 +* 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。 ### MySQL 兼容性 @@ -345,7 +345,7 @@ TiDB 版本:8.0.0 | TiDB | [`log.file.compression`](/tidb-configuration-file.md#compression-从-v800-版本开始引入) | 新增 | 指定轮询日志的压缩格式。默认为空,即不压缩轮询日志。 | | TiDB | [`log.general-log-file`](/tidb-configuration-file.md#general-log-file-从-v800-版本开始引入) | 新增 | 指定 general log 的保存文件。默认为空,general log 将会写入实例文件。 | | TiDB | [`tikv-client.enable-replica-selector-v2`](/tidb-configuration-file.md#enable-replica-selector-v2-从-v800-版本开始引入) | 新增 | 控制给 TiKV 发送 RPC 请求时,是否使用新版本的 Region 副本选择器。默认值为 `true`。 | -| TiKV | [`log-backup.initial-scan-rate-limit`](/system-variables.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值为 `1MiB` 的限制。 | +| TiKV | [`log-backup.initial-scan-rate-limit`](/tikv-configuration-file.md#initial-scan-rate-limit-从-v620-版本开始引入) | 修改 | 增加了最小值为 `1MiB` 的限制。 | | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`rocksdb.defaultcf.titan.blob-cache-size`](/tikv-configuration-file.md#blob-cache-size) | 修改 | 从 v8.0.0 开始,TiKV 引入了 `shared-blob-cache` 配置项并默认开启,因此无需再单独设置 `blob-cache-size`。只有当 `shared-blob-cache` 设置为 `false` 时,`blob-cache-size` 的设置才生效。| | TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | From c4e52409c59dd8588355cde159ff260c4ad12908 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:59:31 +0800 Subject: [PATCH 134/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8783f65237ea..87f40cd49754 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -80,7 +80,7 @@ TiDB 版本:8.0.0 * 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) - - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 + - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升使用 Titan 引擎时的性能和灵活性。 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 From d3b828f9aef08c0c607b84e6e1a79680bd4a2e84 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 19:20:00 +0800 Subject: [PATCH 135/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 97d8bd17d098..00a72d0494e9 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -80,7 +80,7 @@ TiDB 版本:8.0.0 * 增强 Titan 引擎的易用性 [#16245](https://github.com/tikv/tikv/issues/16245) @[Connor1996](https://github.com/Connor1996) - - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 + - 默认启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存([`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache从-v800-版本开始引入) 默认为 `true`),无需再单独配置 [`blob-cache-size`](/tikv-configuration-file.md#blob-cache-size)。 - 支持动态修改 [`min-blob-size`](/tikv-configuration-file.md#min-blob-size)、[`blob-file-compression`](/tikv-configuration-file.md#blob-file-compression)、[`discardable-ratio`](/tikv-configuration-file.md#min-blob-size),以提升使用 Titan 引擎时的性能和灵活性。 更多信息,请参考[用户文档](/storage-engine/titan-configuration.md)。 @@ -349,7 +349,7 @@ TiDB 版本:8.0.0 | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`rocksdb.defaultcf.titan.blob-cache-size`](/tikv-configuration-file.md#blob-cache-size) | 修改 | 从 v8.0.0 开始,TiKV 引入了 `shared-blob-cache` 配置项并默认开启,因此无需再单独设置 `blob-cache-size`。只有当 `shared-blob-cache` 设置为 `false` 时,`blob-cache-size` 的设置才生效。| | TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | -| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb-从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| +| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| | TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该参数。 | From d54e2e85db50aad832b65189dbb0a841451d4d42 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 19:25:11 +0800 Subject: [PATCH 136/156] Update release-8.0.0.md --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 00a72d0494e9..21b3961fde1b 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -349,7 +349,7 @@ TiDB 版本:8.0.0 | TiKV | [`raftstore.store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) | 修改 | 为了提升 TiKV 性能,该参数默认值从 `0` 修改为 `1`,表示 StoreWriter 线程池的大小默认为 `1`。| | TiKV | [`rocksdb.defaultcf.titan.blob-cache-size`](/tikv-configuration-file.md#blob-cache-size) | 修改 | 从 v8.0.0 开始,TiKV 引入了 `shared-blob-cache` 配置项并默认开启,因此无需再单独设置 `blob-cache-size`。只有当 `shared-blob-cache` 设置为 `false` 时,`blob-cache-size` 的设置才生效。| | TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | -| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache-tidb从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| +| TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| | TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| | TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该参数。 | From 302da09ad882bfe23afdd84f67e2989e2e114115 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 27 Mar 2024 19:38:13 +0800 Subject: [PATCH 137/156] Apply suggestions from code review Co-authored-by: xufei --- releases/release-8.0.0.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 21b3961fde1b..9f613321de67 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -387,6 +387,10 @@ TiDB 版本:8.0.0 - 提升当多次更新同一行的数据时查询估算信息的准确性 [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - Index Merge 支持在 `AND` 谓词中内嵌多值索引和 `OR` 操作符 [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) + - 支持 MemoryTracker 追踪 `IndexLookup` 算子的内存使用情况 [#45901](https://github.com/pingcap/tidb/issues/45901) @[solotzg](https://github.com/solotzg) + - 支持 MemoryTracker 追踪 `MemTableReaderExec` 算子的内存使用情况 [#51456](https://github.com/pingcap/tidb/issues/51456) @[wshwsh12](https://github.com/wshwsh12) + - 支持 cancel 正在落盘的查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) + - 支持从 PD 批量加载 Region 的功能,加快在对大表查询时,从 KV Range 到 Regions 的转换过程 [#51326](https://github.com/pingcap/tidb/issues/51326) @[SeaRise](https://github.com/SeaRise) + TiKV @@ -414,6 +418,10 @@ TiDB 版本:8.0.0 - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) ++ TiFlash + + - 支持 `JSON_EXTRACT()` 函数中的 `json_path` 参数为非常量 [#8510](https://github.com/pingcap/tiflash/issues/8510) @[SeaRise](https://github.com/SeaRise) + - 支持 `JSON_LENGTH(json, path)` 函数输入两个参数 [#8711](https://github.com/pingcap/tiflash/issues/8711) @[SeaRise](https://github.com/SeaRise) + Tools @@ -486,6 +494,13 @@ TiDB 版本:8.0.0 - 修复当查询语句涉及 JOIN 操作时可能出现 `index out of range` 报错的问题 [#42588](https://github.com/pingcap/tidb/issues/42588) @[AilinKid](https://github.com/AilinKid) - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - 修复 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) + - 修复 `LIKE()` 函数在处理 binary collation 的输入时可能结果错误的问题 [#50393](https://github.com/pingcap/tidb/issues/50393) @[yibin87](https://github.com/yibin87) + - 修复在并行 Apply 时可能会因为并发写导致 TiDB crash 的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) + - 修复 `JSON_LENGTH()` 函数在第二个参数为 `NULL` 时结果错误的问题 [#50931](https://github.com/pingcap/tidb/issues/50931) @[SeaRise](https://github.com/SeaRise) + - 修复包含 `CTE` 的查询在内存超限后可能导致 Goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) + - 修复 `CAST(AS DATETIME)` 在特定情况下可能会丢失时间精度的问题 [#49555](https://github.com/pingcap/tidb/issues/49555) @[SeaRise](https://github.com/SeaRise) + - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) + - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) + TiKV @@ -518,6 +533,9 @@ TiDB 版本:8.0.0 - 修复在执行 `ALTER TABLE ... MODIFY COLUMN ... NOT NULL` 时,将原本可为空的列修改为不可为空之后,导致 TiFlash panic 的问题 [#8419](https://github.com/pingcap/tiflash/issues/8419) @[JaySon-Huang](https://github.com/JaySon-Huang) - 修复存算分离架构下,出现网络隔离后查询可能会被永久阻塞的问题 [#8806](https://github.com/pingcap/tiflash/issues/8806) @[JinheLin](https://github.com/JinheLin) - 修复存算分离架构下,TiFlash 关闭过程中可能 panic 的问题 [#8837](https://github.com/pingcap/tiflash/issues/8837) @[JaySon-Huang](https://github.com/JaySon-Huang) + - 修复 TiFlash 在发生远程读时可能会因为数据竞争导致 crash 的问题 [#8685](https://github.com/pingcap/tiflash/issues/8685) @[solotzg](https://github.com/solotzg) + - 修复 `CAST(AS JSON)` 函数中没有对 JSON object key 去重的问题 [#8712](https://github.com/pingcap/tiflash/issues/8712) @[SeaRise](https://github.com/SeaRise) + - 修复 `ENUM` 列在 chunk encode 时可能会导致 TiFlash crash 的问题 [#8674](https://github.com/pingcap/tiflash/issues/8674) @[yibin87](https://github.com/yibin87) + Tools From b4eeb1c9c0bfd4875256cf066f441a73046b1056 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 27 Mar 2024 19:41:36 +0800 Subject: [PATCH 138/156] Update releases/release-8.0.0.md Co-authored-by: joey-yez <104608045+joey-yez@users.noreply.github.com> --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 9f613321de67..1209d7a3177a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -106,7 +106,7 @@ TiDB 版本:8.0.0 在之前的 TiDB 版本中,HashAgg 算子的并发算法不支持数据落盘。当 SQL 语句的执行计划包含并发的 HashAgg 算子时,该 SQL 语句的所有数据都只能在内存中进行处理。这导致内存需要处理大量数据,当超过内存限制时,TiDB 只能选择非并发 HashAgg 算法,无法通过并发提升性能。 - 在 v8.0.0 中,TiDB 的并发 HashAgg 算法支持数据落盘。在任意并发条件下,HashAgg 算子都可以根据内存使用情况自动触发数据落盘,从而兼顾性能和数据处理量。目前,该功能作为实验特性,引入变量 `tidb_enable_concurrent_hashagg_spill` 控制是否启用支持落盘的并发 HashAgg 算法。当该变量为 `ON` 时,代表启用。该变量将在功能正式发布时废弃。 + 在 v8.0.0 中,TiDB 的并发 HashAgg 算法支持数据落盘。在任意并发条件下,HashAgg 算子都可以根据内存使用情况自动触发数据落盘,从而兼顾性能和数据处理量。目前,该功能作为实验特性,引入变量 `tidb_enable_concurrent_hashagg_spill` 控制是否启用支持落盘的并发 HashAgg 算法。当该变量为 `ON` 时,代表启用。该变量将在功能正式发布后废弃。 更多信息,请参考[用户文档](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入)。 From 1b0cc30008bed633eece912adef8219eeb8adc95 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 27 Mar 2024 20:17:09 +0800 Subject: [PATCH 139/156] Apply suggestions from code review Co-authored-by: xufei --- releases/release-8.0.0.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1209d7a3177a..c1505701e049 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -418,10 +418,11 @@ TiDB 版本:8.0.0 - 支持动态修改热点调度器中的历史窗口配置 [#7877](https://github.com/tikv/pd/issues/7877) @[lhy1024](https://github.com/lhy1024) - 减少创建 operator 中的锁争用问题 [#7837](https://github.com/tikv/pd/issues/7837) @[Leavrth](https://github.com/Leavrth) - 调整 GRPC 配置以提升可用性 [#7821](https://github.com/tikv/pd/issues/7821) @[rleungx](https://github.com/rleungx) + + TiFlash - 支持 `JSON_EXTRACT()` 函数中的 `json_path` 参数为非常量 [#8510](https://github.com/pingcap/tiflash/issues/8510) @[SeaRise](https://github.com/SeaRise) - - 支持 `JSON_LENGTH(json, path)` 函数输入两个参数 [#8711](https://github.com/pingcap/tiflash/issues/8711) @[SeaRise](https://github.com/SeaRise) + - 支持 `JSON_LENGTH(json, path)` 函数 [#8711](https://github.com/pingcap/tiflash/issues/8711) @[SeaRise](https://github.com/SeaRise) + Tools @@ -495,9 +496,9 @@ TiDB 版本:8.0.0 - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - 修复 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) - 修复 `LIKE()` 函数在处理 binary collation 的输入时可能结果错误的问题 [#50393](https://github.com/pingcap/tidb/issues/50393) @[yibin87](https://github.com/yibin87) - - 修复在并行 Apply 时可能会因为并发写导致 TiDB crash 的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) + - 修复在并行 Apply 时可能会因为并发写入导致 TiDB crash 的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) - 修复 `JSON_LENGTH()` 函数在第二个参数为 `NULL` 时结果错误的问题 [#50931](https://github.com/pingcap/tidb/issues/50931) @[SeaRise](https://github.com/SeaRise) - - 修复包含 `CTE` 的查询在内存超限后可能导致 Goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) + - 修复包含 `CTE` 的查询在内存超限后可能导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) - 修复 `CAST(AS DATETIME)` 在特定情况下可能会丢失时间精度的问题 [#49555](https://github.com/pingcap/tidb/issues/49555) @[SeaRise](https://github.com/SeaRise) - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) From e1411d7b8efbe1b353957a5a6ed1d1ea63ab8669 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 27 Mar 2024 20:19:16 +0800 Subject: [PATCH 140/156] Update wording --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index c1505701e049..4b342f699007 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -390,7 +390,7 @@ TiDB 版本:8.0.0 - 支持 MemoryTracker 追踪 `IndexLookup` 算子的内存使用情况 [#45901](https://github.com/pingcap/tidb/issues/45901) @[solotzg](https://github.com/solotzg) - 支持 MemoryTracker 追踪 `MemTableReaderExec` 算子的内存使用情况 [#51456](https://github.com/pingcap/tidb/issues/51456) @[wshwsh12](https://github.com/wshwsh12) - 支持 cancel 正在落盘的查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) - - 支持从 PD 批量加载 Region 的功能,加快在对大表查询时,从 KV Range 到 Regions 的转换过程 [#51326](https://github.com/pingcap/tidb/issues/51326) @[SeaRise](https://github.com/SeaRise) + - 支持从 PD 批量加载 Region,加快在对大表进行查询时,从 KV Range 到 Regions 的转换过程 [#51326](https://github.com/pingcap/tidb/issues/51326) @[SeaRise](https://github.com/SeaRise) + TiKV From ec2457ce926cde49ed984ddec99949895b24856a Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 20:51:49 +0800 Subject: [PATCH 141/156] updated toc --- TOC.md | 4 +++- releases/release-8.0.0.md | 2 +- releases/release-notes.md | 4 ++++ releases/release-timeline.md | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/TOC.md b/TOC.md index 1da0f3d478a7..d412be1109d8 100644 --- a/TOC.md +++ b/TOC.md @@ -4,7 +4,7 @@ - [文档中心](https://docs.pingcap.com/zh) - 关于 TiDB - [TiDB 简介](/overview.md) - - [TiDB 7.6 Release Notes](/releases/release-7.6.0.md) + - [TiDB 8.0 Release Notes](/releases/release-8.0.0.md) - [功能概览](/basic-features.md) - [与 MySQL 的兼容性](/mysql-compatibility.md) - [使用限制](/tidb-limitations.md) @@ -1042,6 +1042,8 @@ - [版本发布时间线](/releases/release-timeline.md) - [TiDB 版本规则](/releases/versioning.md) - [TiDB 离线包](/binary-package.md) + - v8.0 + - [8.0.0-DMR](/releases/release-8.0.0.md) - v7.6 - [7.6.0-DMR](/releases/release-7.6.0.md) - v7.5 diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4b342f699007..e62dd4f617ae 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -5,7 +5,7 @@ summary: 了解 TiDB 8.0.0 版本的新功能、兼容性变更、改进提升 # TiDB 8.0.0 Release Notes -发版日期:2024 年 x 月 x 日 +发版日期:2024 年 3 月 28 日 TiDB 版本:8.0.0 diff --git a/releases/release-notes.md b/releases/release-notes.md index 08428c444359..cf15938b0786 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 历史版本发布声明如下: +## 8.0 + +- [8.0.0-DMR](/releases/release-8.0.0.md): 2024-03-28 + ## 7.6 - [7.6.0-DMR](/releases/release-7.6.0.md): 2024-01-25 diff --git a/releases/release-timeline.md b/releases/release-timeline.md index 19863f137abe..87c51e18f6c0 100644 --- a/releases/release-timeline.md +++ b/releases/release-timeline.md @@ -9,6 +9,7 @@ summary: 了解 TiDB 的版本发布时间线。 | 版本 | 发布日期 | | :--- | :--- | +| [8.0.0](/releases/release-8.0.0.md) | 2024-03-28 | | [7.1.4](/releases/release-7.1.4.md) | 2024-03-11 | | [7.5.1](/releases/release-7.5.1.md) | 2024-02-29 | | [6.5.8](/releases/release-6.5.8.md) | 2024-02-02 | From 45fc716c420c73d3c785b60449dd78a71fe8fc7c Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 28 Mar 2024 09:05:05 +0800 Subject: [PATCH 142/156] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: bb7133 --- releases/release-8.0.0.md | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index e62dd4f617ae..700d174c8f09 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -325,15 +325,15 @@ TiDB 版本:8.0.0 | [`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) | 废弃 | 从 v8.0.0 开始,该系统变量被废弃,TiDB 不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 | | `tidb_ddl_version` | 更名 | 用于控制是否开启 TiDB DDL V2。为了使变量名称更直观,从 v8.0.0 起,该变量更名为 [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入)。 | | [`tidb_enable_collect_execution_info`](/system-variables.md#tidb_enable_collect_execution_info) | 修改 | 增加控制是否维护[访问索引有关的统计信息](/information-schema/information-schema-tidb-index-usage.md),默认值为 `ON`。 | -| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`、`ON`,以分别支持明文日志信息、屏蔽日志信息。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。 | +| [`tidb_redact_log`](/system-variables.md#tidb_redact_log) | 修改 | 控制在记录 TiDB 日志和慢日志时如何处理 SAL 文本中的用户信息,可选值为 `OFF`(对用户输入的信息不做任何处理)和 `ON`(屏蔽日志中的用户信息)。为了提供更丰富的处理日志中用户信息的方式,v8.0.0 中增加了 `MARKER` 选项,支持标记日志信息。 | | [`div_precision_increment`](/system-variables.md#div_precision_increment-从-v800-版本开始引入) | 新增 | 用于指定使用运算符 `/` 执行除法操作时,结果增加的小数位数。该功能与 MySQL 保持一致。 | | [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) | 新增 | 设置 DML 语句的执行方式,可选值为 `"standard"` 和 `"bulk"`。 | | [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入) | 新增 | 控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些最需要收集统计信息的表的统计信息。 | | [`tidb_enable_concurrent_hashagg_spill`](/system-variables.md#tidb_enable_concurrent_hashagg_spill-从-v800-版本开始引入) | 新增 | 控制 TiDB 是否支持并发 HashAgg 进行落盘。当该变量设置为 `ON` 时,并发 HashAgg 将支持落盘。该变量将在功能正式发布时废弃。 | | [`tidb_enable_fast_create_table`](/system-variables.md#tidb_enable_fast_create_table-从-v800-版本开始引入) | 新增 | 用于控制是否开启 [TiDB 加速建表](/accelerated-table-creation.md)。将该变量的值设置为 `ON` 可以开启该功能,设置为 `OFF` 关闭该功能。默认值为 `OFF`。开启后,将使用 [`CREATE TABLE`](/sql-statements/sql-statement-create-table.md) 加速建表。 | | [`tidb_load_binding_timeout`](/system-variables.md#tidb_load_binding_timeout-从-v800-版本开始引入) | 新增 | 控制加载绑定的超时时间。当加载绑定的执行时间超过该值时,会停止加载。 | -| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置更新 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | -| [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| +| [`tidb_low_resolution_tso_update_interval`](/system-variables.md#tidb_low_resolution_tso_update_interval-从-v800-版本开始引入) | 新增 | 设置 TiDB [缓存 timestamp](/system-variables.md#tidb_low_resolution_tso) 的更新时间间隔。 | +| [`tidb_opt_use_invisible_indexes`](/system-variables.md#tidb_opt_use_invisible_indexes-从-v800-版本开始引入) | 新增 | 控制当前会话中是否允许优化器选择[不可见索引](/sql-statements/sql-statement-create-index.md#不可见索引)。当修改变量为 `ON` 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。| | [`tidb_schema_cache_size`](/system-variables.md#tidb_schema_cache_size-从-v800-版本开始引入) | 新增 | 设置缓存 schema 信息可以使用的内存上限,避免占用过多的内存。开启该功能后,将使用 LRU 算法来缓存所需的表,有效减少 schema 信息占用的内存。 | ### 配置文件参数 @@ -351,10 +351,10 @@ TiDB 版本:8.0.0 | TiKV | [`security.encryption.master-key.vendor`](/encryption-at-rest.md#通过-kms-指定主密钥) | 修改 | 主密钥可选的服务商类型新增 `gcp`。 | | TiKV | [`rocksdb.defaultcf.titan.shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache从-v800-版本开始引入) | 新增 | 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存。默认值为 `true`。| | TiKV | [`security.encryption.master-key.gcp.credential-file-path`](/encryption-at-rest.md#通过-kms-指定主密钥) | 新增 | 在 `security.encryption.master-key.vendor` 为 `gcp` 时,用于指定 Google Cloud 认证凭证文件的路径。| -| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始使用参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | +| TiDB Lightning | [`tikv-importer.duplicate-resolution`](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃) | 废弃 | 用于在物理导入模式下设置是否检测和解决唯一键冲突的记录。从 v8.0.0 开始被参数 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代。 | | TiDB Lightning | [`conflict.precheck-conflict-before-import`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 控制是否开启前置冲突检测,即导入数据到 TiDB 前,先检查所需导入的数据是否存在冲突。该参数默认值为 `false`,表示仅开启后置冲突检测。仅当导入模式为物理导入模式 (`tikv-importer.backend = "local"`) 时可以使用该参数。 | -| TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据行数,默认值为 `65536`。 | -| TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 用于在逻辑导入模式下设置一个 batch 里提交的数据大小,取值为字符串类型,默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | +| TiDB Lightning | [`logical-import-batch-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 在逻辑导入模式下,用于限制每个事务中可插入的最大行数,默认值为 `65536`。 | +| TiDB Lightning | [`logical-import-batch-size`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) | 新增 | 在逻辑导入模式下,用于设置下游 TiDB 服务器上执行的每条 SQL 语句的最大值。默认值为 `"96KiB"`,单位可以为 KB、KiB、MB、MiB 等存储单位。 | | Data Migration | [`secret-key-path`](/dm/dm-master-configuration-file.md) | 新增 | 用于指定加解密上下游密码的密钥文件所在的路径。该文件内容必须是长度为 64 个字符的十六进制的 AES-256 密钥。 | | TiCDC | [`tls-certificate-file`](/ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密证书文件路径。 | | TiCDC | [`tls-key-file-path`](/ticdc/ticdc-sink-to-pulsar.md) | 新增 | 用于指定 Pulsar 启用 TLS 加密传输时,客户端的加密私钥路径。 | @@ -368,6 +368,7 @@ TiDB 版本:8.0.0 * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。 * 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 +* 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略。旧版冲突检测的参数 [`duplicate-resolution`](/tidb-lightning/tidb-lightning-configuration.md) 将在 v8.5.0 中被移除。 * 计划在后续版本重新设计[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution),相关的变量和行为会发生变化。 ## 改进提升 @@ -389,7 +390,6 @@ TiDB 版本:8.0.0 - 当设置 `force-init-stats` 为 `true` 时,即 TiDB 启动时等待统计信息初始化完成后再对外提供服务,这一设置不再影响 HTTP server 提供服务,用户仍可查看监控 [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) - 支持 MemoryTracker 追踪 `IndexLookup` 算子的内存使用情况 [#45901](https://github.com/pingcap/tidb/issues/45901) @[solotzg](https://github.com/solotzg) - 支持 MemoryTracker 追踪 `MemTableReaderExec` 算子的内存使用情况 [#51456](https://github.com/pingcap/tidb/issues/51456) @[wshwsh12](https://github.com/wshwsh12) - - 支持 cancel 正在落盘的查询 [#50511](https://github.com/pingcap/tidb/issues/50511) @[wshwsh12](https://github.com/wshwsh12) - 支持从 PD 批量加载 Region,加快在对大表进行查询时,从 KV Range 到 Regions 的转换过程 [#51326](https://github.com/pingcap/tidb/issues/51326) @[SeaRise](https://github.com/SeaRise) + TiKV @@ -502,6 +502,30 @@ TiDB 版本:8.0.0 - 修复 `CAST(AS DATETIME)` 在特定情况下可能会丢失时间精度的问题 [#49555](https://github.com/pingcap/tidb/issues/49555) @[SeaRise](https://github.com/SeaRise) - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) + +修复 `EXCHANGE PARTITION` 语句交换分区表时,对 'DEFAULT NULL' 属性产生的 NULL 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) +修复使用非 UTF8 字符集时,分区表定义可能有错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) +修复对于一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) +修复一些情况下没有对空字符串作为数据库名进行检查的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) +修复 `BIT` 类型数据参与 `REVERSE` 函数运算时可能会报错的问题 [#50855](https://github.com/pingcap/tidb/issues/50855) @[jiyfhust](https://github.com/jiyfhust) + +修复一些情况下 `SPLIT TABLE ... INDEX` 语法会引发错误的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) +修复一些情况下对 "Key 分区" 类型的分区表查询可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) +修复对 "Hash 分区" 类型的分区表查询结果可能不正确的问题 [#50427](https://github.com/pingcap/tidb/issues/50427) @[Defined2014](https://github.com/Defined2014) +修复 Opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) +修复 `ALTER INSTANCE RELOAD TLS` 报错时,错误信息不完全的问题 [#50699](https://github.com/pingcap/tidb/issues/50699) @[dveeden](https://github.com/dveeden) + +修复 AUTO_INCREMENT 属性在分配自增 ID 时,由于不必要的事务冲突导致 ID 不连续的问题 [#50819](https://github.com/pingcap/tidb/issues/50819) @[tiancaiamao](https://github.com/tiancaiamao) +修复 TiDB 日志中某些报错栈信息不完全的问题 [#50849](https://github.com/pingcap/tidb/issues/50849) @[tiancaiamao](https://github.com/tiancaiamao) +修复系统变量 @@tidb_server_memory_limit 更新时,一些内部状态没有及时更新的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei](https://github.com/hawkingrei) +修复当 `LIMIT` 子句的数字过大时,一些查询的内存使用过大的问题 [#51188](https://github.com/pingcap/tidb/issues/51188) @[Defined2014](https://github.com/Defined2014) +修复 TTL 功能在某些情况下因没有正确切分数据范围而造成热点的问题 [#51527](https://github.com/pingcap/tidb/issues/51527) @[lcwangchao](https://github.com/lcwangchao) + +修复当 `SET` 语句出现在显式事务的第一行时不生效的问题 [#51387](https://github.com/pingcap/tidb/issues/51387) @[YangKeao](https://github.com/YangKeao) +修复一些情况下查询 `BINARY` 类型的 JSON 可能会报错的问题 [#51547](https://github.com/pingcap/tidb/issues/51547) @[YangKeao](https://github.com/YangKeao) +修复 TTL 在计算过期时间时,不能正确处理夏令时跳变的问题 [#51675](https://github.com/pingcap/tidb/issues/51675) @[lcwangchao](https://github.com/lcwangchao) +修复某些情况下 `SHOW CREATE PLACEMENT POLICY` 语句不显示 `SURVIVAL_PREFERENCES` 属性的问题 [#51699](https://github.com/pingcap/tidb/issues/51699) @[lcwangchao](https://github.com/lcwangchao) +修复当配置文件中出现非法配置项时,配置文件不正确生效的问题 [#51399](https://github.com/pingcap/tidb/issues/51399) @[Defined2014](https://github.com/Defined2014) + TiKV From 0efce512d9f8649efb86cf27f28663327864602d Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 28 Mar 2024 09:37:50 +0800 Subject: [PATCH 143/156] Apply suggestions from code review --- releases/release-8.0.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 700d174c8f09..cfb853f3ab0a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -505,9 +505,8 @@ TiDB 版本:8.0.0 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 'DEFAULT NULL' 属性产生的 NULL 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) 修复使用非 UTF8 字符集时,分区表定义可能有错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) -修复对于一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) +修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) 修复一些情况下没有对空字符串作为数据库名进行检查的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) -修复 `BIT` 类型数据参与 `REVERSE` 函数运算时可能会报错的问题 [#50855](https://github.com/pingcap/tidb/issues/50855) @[jiyfhust](https://github.com/jiyfhust) 修复一些情况下 `SPLIT TABLE ... INDEX` 语法会引发错误的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) 修复一些情况下对 "Key 分区" 类型的分区表查询可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) From 3198588ae387331409cd239553cb2abacfd136d2 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 28 Mar 2024 09:39:13 +0800 Subject: [PATCH 144/156] Add indentation --- releases/release-8.0.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index cfb853f3ab0a..f8465414747a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -503,10 +503,10 @@ TiDB 版本:8.0.0 - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) -修复 `EXCHANGE PARTITION` 语句交换分区表时,对 'DEFAULT NULL' 属性产生的 NULL 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) -修复使用非 UTF8 字符集时,分区表定义可能有错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) -修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) -修复一些情况下没有对空字符串作为数据库名进行检查的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) + - 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 'DEFAULT NULL' 属性产生的 NULL 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) + - 修复使用非 UTF8 字符集时,分区表定义可能有错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) + - 修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) + - 修复一些情况下没有对空字符串作为数据库名进行检查的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) 修复一些情况下 `SPLIT TABLE ... INDEX` 语法会引发错误的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) 修复一些情况下对 "Key 分区" 类型的分区表查询可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) From 64116d861ec4fcd495b391816e66eabfa70920cc Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 28 Mar 2024 09:40:29 +0800 Subject: [PATCH 145/156] Apply suggestions from code review --- releases/release-8.0.0.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index f8465414747a..67f475dd72af 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -508,11 +508,11 @@ TiDB 版本:8.0.0 - 修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) - 修复一些情况下没有对空字符串作为数据库名进行检查的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) -修复一些情况下 `SPLIT TABLE ... INDEX` 语法会引发错误的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) -修复一些情况下对 "Key 分区" 类型的分区表查询可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) -修复对 "Hash 分区" 类型的分区表查询结果可能不正确的问题 [#50427](https://github.com/pingcap/tidb/issues/50427) @[Defined2014](https://github.com/Defined2014) -修复 Opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) -修复 `ALTER INSTANCE RELOAD TLS` 报错时,错误信息不完全的问题 [#50699](https://github.com/pingcap/tidb/issues/50699) @[dveeden](https://github.com/dveeden) + - 修复 `SPLIT TABLE ... INDEX` 语句可能会导致 TiDB panic 的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) + - 修复查询 `KeyPartition` 类型的分区表可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) + - 修复查询 "Hash 分区" 类型的分区表结果可能不正确的问题 [#50427](https://github.com/pingcap/tidb/issues/50427) @[Defined2014](https://github.com/Defined2014) + - 修复 Opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) + - 修复 `ALTER INSTANCE RELOAD TLS` 报错时,错误信息不完整的问题 [#50699](https://github.com/pingcap/tidb/issues/50699) @[dveeden](https://github.com/dveeden) 修复 AUTO_INCREMENT 属性在分配自增 ID 时,由于不必要的事务冲突导致 ID 不连续的问题 [#50819](https://github.com/pingcap/tidb/issues/50819) @[tiancaiamao](https://github.com/tiancaiamao) 修复 TiDB 日志中某些报错栈信息不完全的问题 [#50849](https://github.com/pingcap/tidb/issues/50849) @[tiancaiamao](https://github.com/tiancaiamao) @@ -520,11 +520,11 @@ TiDB 版本:8.0.0 修复当 `LIMIT` 子句的数字过大时,一些查询的内存使用过大的问题 [#51188](https://github.com/pingcap/tidb/issues/51188) @[Defined2014](https://github.com/Defined2014) 修复 TTL 功能在某些情况下因没有正确切分数据范围而造成热点的问题 [#51527](https://github.com/pingcap/tidb/issues/51527) @[lcwangchao](https://github.com/lcwangchao) -修复当 `SET` 语句出现在显式事务的第一行时不生效的问题 [#51387](https://github.com/pingcap/tidb/issues/51387) @[YangKeao](https://github.com/YangKeao) -修复一些情况下查询 `BINARY` 类型的 JSON 可能会报错的问题 [#51547](https://github.com/pingcap/tidb/issues/51547) @[YangKeao](https://github.com/YangKeao) -修复 TTL 在计算过期时间时,不能正确处理夏令时跳变的问题 [#51675](https://github.com/pingcap/tidb/issues/51675) @[lcwangchao](https://github.com/lcwangchao) -修复某些情况下 `SHOW CREATE PLACEMENT POLICY` 语句不显示 `SURVIVAL_PREFERENCES` 属性的问题 [#51699](https://github.com/pingcap/tidb/issues/51699) @[lcwangchao](https://github.com/lcwangchao) -修复当配置文件中出现非法配置项时,配置文件不正确生效的问题 [#51399](https://github.com/pingcap/tidb/issues/51399) @[Defined2014](https://github.com/Defined2014) + - 修复当 `SET` 语句出现在显式事务的第一行时不生效的问题 [#51387](https://github.com/pingcap/tidb/issues/51387) @[YangKeao](https://github.com/YangKeao) + - 修复一些情况下查询 `BINARY` 类型的 JSON 可能会报错的问题 [#51547](https://github.com/pingcap/tidb/issues/51547) @[YangKeao](https://github.com/YangKeao) + - 修复 TTL 在计算过期时间时,不能正确处理夏令时跳变的问题 [#51675](https://github.com/pingcap/tidb/issues/51675) @[lcwangchao](https://github.com/lcwangchao) + - 修复某些情况下 `SHOW CREATE PLACEMENT POLICY` 语句不显示 `SURVIVAL_PREFERENCES` 属性的问题 [#51699](https://github.com/pingcap/tidb/issues/51699) @[lcwangchao](https://github.com/lcwangchao) + - 修复当配置文件中出现不合规的配置项时,配置文件不生效的问题 [#51399](https://github.com/pingcap/tidb/issues/51399) @[Defined2014](https://github.com/Defined2014) + TiKV From 669ffda14b15572bea75e43dd0b4b4b09e6e902a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 28 Mar 2024 09:54:47 +0800 Subject: [PATCH 146/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 67f475dd72af..95292df0983a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -514,11 +514,10 @@ TiDB 版本:8.0.0 - 修复 Opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) - 修复 `ALTER INSTANCE RELOAD TLS` 报错时,错误信息不完整的问题 [#50699](https://github.com/pingcap/tidb/issues/50699) @[dveeden](https://github.com/dveeden) -修复 AUTO_INCREMENT 属性在分配自增 ID 时,由于不必要的事务冲突导致 ID 不连续的问题 [#50819](https://github.com/pingcap/tidb/issues/50819) @[tiancaiamao](https://github.com/tiancaiamao) -修复 TiDB 日志中某些报错栈信息不完全的问题 [#50849](https://github.com/pingcap/tidb/issues/50849) @[tiancaiamao](https://github.com/tiancaiamao) -修复系统变量 @@tidb_server_memory_limit 更新时,一些内部状态没有及时更新的问题 [#48180](https://github.com/pingcap/tidb/issues/48180) @[hawkingrei](https://github.com/hawkingrei) -修复当 `LIMIT` 子句的数字过大时,一些查询的内存使用过大的问题 [#51188](https://github.com/pingcap/tidb/issues/51188) @[Defined2014](https://github.com/Defined2014) -修复 TTL 功能在某些情况下因没有正确切分数据范围而造成热点的问题 [#51527](https://github.com/pingcap/tidb/issues/51527) @[lcwangchao](https://github.com/lcwangchao) + - 修复 `AUTO_INCREMENT` 属性在分配自增 ID 时,由于不必要的事务冲突导致 ID 不连续的问题 [#50819](https://github.com/pingcap/tidb/issues/50819) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复 TiDB 日志中某些报错的栈信息不完整的问题 [#50849](https://github.com/pingcap/tidb/issues/50849) @[tiancaiamao](https://github.com/tiancaiamao) + - 修复当 `LIMIT` 子句中的数字过大时,一些查询的内存使用过大的问题 [#51188](https://github.com/pingcap/tidb/issues/51188) @[Defined2014](https://github.com/Defined2014) + - 修复 TTL 功能在某些情况下因为没有正确切分数据范围而造成数据热点的问题 [#51527](https://github.com/pingcap/tidb/issues/51527) @[lcwangchao](https://github.com/lcwangchao) - 修复当 `SET` 语句出现在显式事务的第一行时不生效的问题 [#51387](https://github.com/pingcap/tidb/issues/51387) @[YangKeao](https://github.com/YangKeao) - 修复一些情况下查询 `BINARY` 类型的 JSON 可能会报错的问题 [#51547](https://github.com/pingcap/tidb/issues/51547) @[YangKeao](https://github.com/YangKeao) From aaafa88f8f606aba78540427f09c7a08372629b4 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 28 Mar 2024 09:58:59 +0800 Subject: [PATCH 147/156] remove two redundant notes --- releases/release-8.0.0.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 95292df0983a..8a81803017af 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -496,9 +496,7 @@ TiDB 版本:8.0.0 - 修复当列的默认值被删除时,获取该列的默认值会报错的问题 [#50043](https://github.com/pingcap/tidb/issues/50043) [#51324](https://github.com/pingcap/tidb/issues/51324) @[crazycs520](https://github.com/crazycs520) - 修复 TiFlash 延迟物化在处理关联列时结果可能出错的问题 [#49241](https://github.com/pingcap/tidb/issues/49241) [#51204](https://github.com/pingcap/tidb/issues/51204) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) - 修复 `LIKE()` 函数在处理 binary collation 的输入时可能结果错误的问题 [#50393](https://github.com/pingcap/tidb/issues/50393) @[yibin87](https://github.com/yibin87) - - 修复在并行 Apply 时可能会因为并发写入导致 TiDB crash 的问题 [#50347](https://github.com/pingcap/tidb/issues/50347) @[SeaRise](https://github.com/SeaRise) - 修复 `JSON_LENGTH()` 函数在第二个参数为 `NULL` 时结果错误的问题 [#50931](https://github.com/pingcap/tidb/issues/50931) @[SeaRise](https://github.com/SeaRise) - - 修复包含 `CTE` 的查询在内存超限后可能导致 goroutine 泄露的问题 [#50337](https://github.com/pingcap/tidb/issues/50337) @[guo-shaoge](https://github.com/guo-shaoge) - 修复 `CAST(AS DATETIME)` 在特定情况下可能会丢失时间精度的问题 [#49555](https://github.com/pingcap/tidb/issues/49555) @[SeaRise](https://github.com/SeaRise) - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) From 647839ccc86c0cd8b4ea23a5ec9750140fec93d0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 28 Mar 2024 10:03:50 +0800 Subject: [PATCH 148/156] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 8a81803017af..1bfab7b09f97 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -508,8 +508,8 @@ TiDB 版本:8.0.0 - 修复 `SPLIT TABLE ... INDEX` 语句可能会导致 TiDB panic 的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) - 修复查询 `KeyPartition` 类型的分区表可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) - - 修复查询 "Hash 分区" 类型的分区表结果可能不正确的问题 [#50427](https://github.com/pingcap/tidb/issues/50427) @[Defined2014](https://github.com/Defined2014) - - 修复 Opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) + - 修复查询 Hash 分区类型的分区表时,结果可能不正确的问题 [#50427](https://github.com/pingcap/tidb/issues/50427) @[Defined2014](https://github.com/Defined2014) + - 修复 opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) - 修复 `ALTER INSTANCE RELOAD TLS` 报错时,错误信息不完整的问题 [#50699](https://github.com/pingcap/tidb/issues/50699) @[dveeden](https://github.com/dveeden) - 修复 `AUTO_INCREMENT` 属性在分配自增 ID 时,由于不必要的事务冲突导致 ID 不连续的问题 [#50819](https://github.com/pingcap/tidb/issues/50819) @[tiancaiamao](https://github.com/tiancaiamao) From c3492b516533f957c34fd17bd42d31c1dbb31f40 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 28 Mar 2024 10:24:33 +0800 Subject: [PATCH 149/156] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 1bfab7b09f97..acbdd8e78f7a 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -501,10 +501,10 @@ TiDB 版本:8.0.0 - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) - - 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 'DEFAULT NULL' 属性产生的 NULL 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) + - 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 `DEFAULT NULL` 属性产生的 `NULL` 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) - 修复使用非 UTF8 字符集时,分区表定义可能有错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) - 修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) - - 修复一些情况下没有对空字符串作为数据库名进行检查的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) + - 修复一些情况下没有检查空字符串作为数据库名的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) - 修复 `SPLIT TABLE ... INDEX` 语句可能会导致 TiDB panic 的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) - 修复查询 `KeyPartition` 类型的分区表可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) From 234ff089a16d95344efc7c444ddc2338918b70bc Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 28 Mar 2024 10:29:29 +0800 Subject: [PATCH 150/156] update v8.5.0 to a future release --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index acbdd8e78f7a..4223b0a13d9f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -368,7 +368,7 @@ TiDB 版本:8.0.0 * 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用[悲观事务模式](/pessimistic-transaction.md)。 * 从 v8.0.0 开始,TiDB 不再支持 TLSv1.0 和 TLSv1.1 协议。请升级 TLS 至 TLSv1.2 或 TLSv1.3。 -* 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略。旧版冲突检测的参数 [`duplicate-resolution`](/tidb-lightning/tidb-lightning-configuration.md) 将在 v8.5.0 中被移除。 +* 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md) 参数统一控制逻辑导入和物理导入模式的冲突检测策略。旧版冲突检测的参数 [`duplicate-resolution`](/tidb-lightning/tidb-lightning-configuration.md) 将在未来版本中被移除。 * 计划在后续版本重新设计[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution),相关的变量和行为会发生变化。 ## 改进提升 From db111edd8fcf47b62adc94f329158756eb72c31b Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 28 Mar 2024 11:29:50 +0800 Subject: [PATCH 151/156] Update releases/release-8.0.0.md Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 4223b0a13d9f..bd703bccd3c5 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -502,7 +502,7 @@ TiDB 版本:8.0.0 - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) - 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 `DEFAULT NULL` 属性产生的 `NULL` 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) - - 修复使用非 UTF8 字符集时,分区表定义可能有错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) + - 修复使用非 UTF8 字符集时,分区表定义可能导致错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) - 修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) - 修复一些情况下没有检查空字符串作为数据库名的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) From b9fae1f4a0a8822fc0be63c53dd7852b93e2058d Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 28 Mar 2024 11:30:45 +0800 Subject: [PATCH 152/156] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index bd703bccd3c5..28a442b71bfe 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -503,8 +503,8 @@ TiDB 版本:8.0.0 - 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 `DEFAULT NULL` 属性产生的 `NULL` 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) - 修复使用非 UTF8 字符集时,分区表定义可能导致错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) - - 修复一些系统变量的默认值在 `information_schema.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) - - 修复一些情况下没有检查空字符串作为数据库名的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) + - 修复一些系统变量的默认值在 `INFORMATION_SCHEMA.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) + - 修复一些情况下使用了空字符串作为数据库名但没有报错的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) - 修复 `SPLIT TABLE ... INDEX` 语句可能会导致 TiDB panic 的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) - 修复查询 `KeyPartition` 类型的分区表可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) From 37ba070e553446b625353d2d0b809a732ad584c7 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 28 Mar 2024 11:37:06 +0800 Subject: [PATCH 153/156] release: update format --- releases/release-8.0.0.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 28a442b71bfe..a45c0d3e7520 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -500,23 +500,19 @@ TiDB 版本:8.0.0 - 修复 `CAST(AS DATETIME)` 在特定情况下可能会丢失时间精度的问题 [#49555](https://github.com/pingcap/tidb/issues/49555) @[SeaRise](https://github.com/SeaRise) - 修复并行 Apply 在表为聚簇索引时可能导致结果错误的问题 [#51372](https://github.com/pingcap/tidb/issues/51372) @[guo-shaoge](https://github.com/guo-shaoge) - 修复主键类型是 `VARCHAR` 时,执行 `ALTER TABLE ... COMPACT TIFLASH REPLICA` 可能会错误地提前结束的问题 [#51810](https://github.com/pingcap/tidb/issues/51810) @[breezewish](https://github.com/breezewish) - - 修复 `EXCHANGE PARTITION` 语句交换分区表时,对 `DEFAULT NULL` 属性产生的 `NULL` 值检查有错误的问题 [#47167](https://github.com/pingcap/tidb/issues/47167) @[jiyfhust](https://github.com/jiyfhust) - 修复使用非 UTF8 字符集时,分区表定义可能导致错误行为的问题 [#49251](https://github.com/pingcap/tidb/issues/49251) @[YangKeao](https://github.com/YangKeao) - 修复一些系统变量的默认值在 `INFORMATION_SCHEMA.VARIABLES_INFO` 表中显示错误的问题 [#49461](https://github.com/pingcap/tidb/issues/49461) @[jiyfhust](https://github.com/jiyfhust) - 修复一些情况下使用了空字符串作为数据库名但没有报错的问题 [#45873](https://github.com/pingcap/tidb/issues/45873) @[yoshikipom](https://github.com/yoshikipom) - - 修复 `SPLIT TABLE ... INDEX` 语句可能会导致 TiDB panic 的问题 [#50177](https://github.com/pingcap/tidb/issues/50177) @[Defined2014](https://github.com/Defined2014) - 修复查询 `KeyPartition` 类型的分区表可能会报错的问题 [#50206](https://github.com/pingcap/tidb/issues/50206) [#51313](https://github.com/pingcap/tidb/issues/51313) [#51196](https://github.com/pingcap/tidb/issues/51196) @[time-and-fate](https://github.com/time-and-fate) @[jiyfhust](https://github.com/jiyfhust) @[mjonss](https://github.com/mjonss) - 修复查询 Hash 分区类型的分区表时,结果可能不正确的问题 [#50427](https://github.com/pingcap/tidb/issues/50427) @[Defined2014](https://github.com/Defined2014) - 修复 opentracing 不能正常工作的问题 [#50508](https://github.com/pingcap/tidb/issues/50508) @[Defined2014](https://github.com/Defined2014) - 修复 `ALTER INSTANCE RELOAD TLS` 报错时,错误信息不完整的问题 [#50699](https://github.com/pingcap/tidb/issues/50699) @[dveeden](https://github.com/dveeden) - - 修复 `AUTO_INCREMENT` 属性在分配自增 ID 时,由于不必要的事务冲突导致 ID 不连续的问题 [#50819](https://github.com/pingcap/tidb/issues/50819) @[tiancaiamao](https://github.com/tiancaiamao) - 修复 TiDB 日志中某些报错的栈信息不完整的问题 [#50849](https://github.com/pingcap/tidb/issues/50849) @[tiancaiamao](https://github.com/tiancaiamao) - 修复当 `LIMIT` 子句中的数字过大时,一些查询的内存使用过大的问题 [#51188](https://github.com/pingcap/tidb/issues/51188) @[Defined2014](https://github.com/Defined2014) - 修复 TTL 功能在某些情况下因为没有正确切分数据范围而造成数据热点的问题 [#51527](https://github.com/pingcap/tidb/issues/51527) @[lcwangchao](https://github.com/lcwangchao) - - 修复当 `SET` 语句出现在显式事务的第一行时不生效的问题 [#51387](https://github.com/pingcap/tidb/issues/51387) @[YangKeao](https://github.com/YangKeao) - 修复一些情况下查询 `BINARY` 类型的 JSON 可能会报错的问题 [#51547](https://github.com/pingcap/tidb/issues/51547) @[YangKeao](https://github.com/YangKeao) - 修复 TTL 在计算过期时间时,不能正确处理夏令时跳变的问题 [#51675](https://github.com/pingcap/tidb/issues/51675) @[lcwangchao](https://github.com/lcwangchao) From e1a427b4788e59ddce63d772825bf2f821bdfe5b Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 28 Mar 2024 11:54:54 +0800 Subject: [PATCH 154/156] Update releases/release-8.0.0.md --- releases/release-8.0.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index a45c0d3e7520..10e562d952ab 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -603,7 +603,6 @@ TiDB 版本:8.0.0 - [lichunzhu](https://github.com/lichunzhu) - [jiyfhust](https://github.com/jiyfhust) - [pingandb](https://github.com/pingandb) -- [renovate](https://github.com/renovate) - [shenqidebaozi](https://github.com/shenqidebaozi) - [Smityz](https://github.com/Smityz) - [songzhibin97](https://github.com/songzhibin97) From 8f88b812f30a23ec32ac21794829c4b462083ebf Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 28 Mar 2024 12:07:17 +0800 Subject: [PATCH 155/156] move two notes to behavior changes --- releases/release-8.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 10e562d952ab..474c4bbe574b 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -306,12 +306,12 @@ TiDB 版本:8.0.0 > > 以下为从 v7.6.0 升级至当前版本 (v8.0.0) 所需兼容性变更信息。如果从 v7.5.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 -- 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](/system-variables.md#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) -- DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 中的升级步骤进行额外操作。[#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) - 移除未 GA 但默认启用的 witness 相关调度器 [#7765](https://github.com/tikv/pd/pull/7765) @[rleungx](https://github.com/rleungx) ### 行为变更 +* 在安全增强模式 (SEM) 下禁止设置 [`require_secure_transport`](/system-variables.md#require_secure_transport-从-v610-版本开始引入) 为 `ON`,避免用户无法连接的问题 [#47665](https://github.com/pingcap/tidb/issues/47665) @[tiancaiamao](https://github.com/tiancaiamao) +* DM 移除了固定的加解密 key,并支持设置自定义加解密 key。如果升级前[数据源配置](/dm/dm-source-configuration-file.md)和[迁移任务配置](/dm/task-configuration-file-full.md)里使用了加密密码,需参考 [DM 自定义加解密 key](/dm/dm-customized-secret-key.md) 中的升级步骤进行额外操作。[#9492](https://github.com/pingcap/tiflow/issues/9492) @[D3Hunter](https://github.com/D3Hunter) * 在之前版本中,启用添加索引加速功能 (`tidb_ddl_enable_fast_reorg = ON`) 后,编码后的索引键值 ingest 到 TiKV 的过程使用了固定的并发数 (`16`),并未根据下游 TiKV 的处理能力进行动态调整。从 v8.0.0 开始,支持使用 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置并发数。该变量默认值为 `4`,相比之前的默认值 `16`,在 ingest 索引键值对时性能可能会有所下降。你可以根据集群的负载按需调整该参数。 ### MySQL 兼容性 From 53f329185709875a10fe3affe2d28465798a02d6 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 28 Mar 2024 12:24:36 +0800 Subject: [PATCH 156/156] Apply suggestions from code review --- releases/release-8.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index 474c4bbe574b..4dfa71d3e7b8 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -33,7 +33,7 @@ TiDB 版本:8.0.0 提升 BR 快照恢复速度 (GA) - 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,该功能可将下载带宽打满,下载速度可提升 8 到 10 倍, 端到端恢复速度大约提升 1.5 到 3 倍。 + 通过该功能,BR 可以充分利用集群的规模优势,使 TiKV 集群中的所有节点都能参与到数据恢复的准备阶段,从而显著提升大规模集群中大数据集的恢复速度。实际测试表明,该功能可将下载带宽打满,下载速度可提升 8 到 10 倍,端到端恢复速度大约提升 1.5 到 3 倍。 增强在有大量表时缓存 schema 信息的稳定性