From 4333f6156cfbe57c522a0d66c4473989200fbfa3 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 16 Jun 2021 09:04:00 +0800 Subject: [PATCH 01/65] Add the draft release notes for v5.1 --- TOC.md | 4 +- releases/release-5.1.md | 321 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 324 insertions(+), 1 deletion(-) create mode 100644 releases/release-5.1.md diff --git a/TOC.md b/TOC.md index 0988ab5aab20..a2f192144fb1 100644 --- a/TOC.md +++ b/TOC.md @@ -7,7 +7,7 @@ + 关于 TiDB + [TiDB 简介](/overview.md) - + [What's New in TiDB 5.0](/releases/release-5.0.0.md) + + [TiDB 5.1 Release Notes](/releases/release-5.1.md) + [基本功能](/basic-features.md) + [实验特性](/experimental-features.md) + 性能测试报告 @@ -538,6 +538,8 @@ + 版本发布历史 + [发布版本汇总](/releases/release-notes.md) + [产品路线图](/roadmap.md) + + v5.1 + - [5.1](/releases/release-5.1.md) + v5.0 - [5.0.2](/releases/release-5.0.2.md) - [5.0.1](/releases/release-5.0.1.md) diff --git a/releases/release-5.1.md b/releases/release-5.1.md new file mode 100644 index 000000000000..5a226af2b0ab --- /dev/null +++ b/releases/release-5.1.md @@ -0,0 +1,321 @@ +--- +title: TiDB 5.1 Release Notes +--- + +# TiDB 5.1 Release Notes + +发版日期:2021 年 6 月 18 日 + +TiDB 版本:5.1 + +在 5.1 版本中,你可以获得以下关键特性: + +- 支持 MySQL 8 中的公共表表达式 (Common Table Expression),提高了 SQL 语句的可读性与执行效率。 +- 支持 MySQL 8 中的动态权限(Dynamic Privileges)配置,实现对某些操作更细粒度的控制。 +- 支持通过 Stale Read 功能直接读取本地副本数据,降低读取延迟,提升查询性能。 +- 新增锁视图 (Lock View) 功能方便 DBA 观察事务加锁情况以及排查死锁问题。 +- 新增 TiKV 后台任务写入限制(TiKV Write Rate Limiter),保证读写请求的延迟稳定性。 +- 支持数据的增量导入和分布式导入,降低数据导入时间。 + +## 兼容性更改 + +### 系统变量 + +| 变量名 | 修改类型 | 描述 | +|:----------|:-----------|:-----------| +| `tidb_enable_enhanced_security` | 新增 | 表示所连接的 TiDB 服务器是否启用了安全增强模式(SEM),在不重新启动 TiDB 服务器的情况下不能改变该变量。 | +| `cte_max_recursion_depth` | 新增 | 用于控制公共表表达式最大递归深度。 | +| `init_connect` | 新增 | 用于控制初始连接。 | +| `tidb_analyze_version` | 新增 | 用于控制所收集到的统计信息。默认值从 `1` 修改为 `2`,默认作为实验特性启用。 | +| `tidb_enforce_mpp` | 新增 | 用于忽略优化器代价估算,强制使用 mpp 模式。bool 类型,默认值为 false。 | + +### 配置文件参数 + +| 配置文件 | 配置项 | 修改类型 | 描述 | +|:----------|:-----------|:-----------| +| TiDB 配置文件 | security.enable-sem | 新增 | 控制是否启用安全增强模式 (SEM)。默认值为 `false`,代表未启用。 | +| TiDB 配置文件 | performance.tcp-no-delay | 新增 | 控制是否在 TiDB 在 TCP 层开启 no dela。 默认值为 `true`,代表开启。 | +TiDB 配置文件 | performance.committer-concurrency | 修改 | "在单个事务的提交阶段,控制用于执行提交操作相关请求的 goroutine 数量 +。默认值从 16 修改为 128。" | +TiDB 配置文件 | pessimistic-txn.deadlock-history-capacity | 新增 | 控制单个 TiDB 节点的 [`INFORMATION_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表最多可记录的死锁事件个数,默认值为 “10”。 | +| TiKV 配置文件 | `storage.io-rate-limit` | 新增 | 控制 TiKV 写入的 IO 速率。`storage.io-rate-limit.max-bytes-per-sec` 默认值为 “0MB”。 | +| TiKV 配置文件 | `abort-on-panic` | 新增 | 设置 TiKV panic 时 abort 进程是否允许系统生成 core dump 文件。默认值为 false, 代表不允许生成 core dump 文件。 | +| TiKV 配置文件 | `soft-pending-compaction-bytes-limit` | 修改 | pending compaction bytes 的软限制,默认值从 “64GB” 修改为 “192GB” | +| TiKV 配置文件 | `hibernate-regions` | 修改 | 默认值从 `false` 修改为 `true`。 如果 Region 长时间处于非活跃状态,即被自动设置为静默状态。 | +| TiKV 配置文件 | `resolved-ts.enable` | 新增 | 为所有 region leader 维护 resolved-ts, 默认为 true | +| TiKV 配置文件 | `resolved-ts.advance-ts-interval` | 新增 | 推进 resolved-ts 的间隔,默认为 1s, 支持动态更改 | +| TiKV 配置文件 | `resolved-ts.scan-lock-pool-size` | 新增 | 用于初始化 resolved-ts 时扫锁的线程数,默认为 2 | + +### 其他 + +- 为了提升 TiDB 性能,TiDB 的 Go 编译器版本从 go1.13.7 升级到了 go1.16.4。如果你是 TiDB 的开发者,为了能保证顺利编译,请对应升级你的 Go 编译器版本。 +- 请避免在对使用 TiDB-Binlog 的集群进行滚动升级的过程中新创建聚簇索引表。 +- 请避免在 TiDB 滚动升级时执行 alter table … modify/change column。 +- 当按表构建 TiFlash 副本时,v5.1 版本及后续版本将不再支持设置系统表的 replica。在集群升级前,需要清除相关系统表的 replica,否则升级到较高版本后将无法再修改系统表的 replica 设置。 +- 在 TiCDC 的 `cdc cli changefeed` 命令中废弃 `--sort-dir` 参数,用户可在 `cdc server` 命令中设定 `--sort-dir`。 [#1795](https://github.com/pingcap/ticdc/pull/1795) + +## 新功能 + +### SQL + +- 新增 MySQL 8 中的公共表表达式(Common Table Expression),为 TiDB 带来递归/非递归查询层次结构数据的能力,满足了人力资源、制造业、金融市场和教育在内的多种应用领域需要使用树形查询实现业务逻辑的需求。 在 TiDB 中,你可以通过 `WITH` 语句使用公共表表达式。 +[用户文档](/sql-statements/sql-statement-with.md),[#17472](https://github.com/pingcap/tidb/issues/17472) + +- 新增 MySQL 8 中的动态权限(Dynamic Privileges)。动态权限用于限制 `SUPER` 权限,为 TiDB 提供更灵活的权限配置,实现对某些操作更细粒度的控制。例如,你可以使用动态权限来创建一个只能执行 `BACKUP` 和 `RESTORE` 操作的用户帐户。 + + 支持的动态权限包括: + + - `BACKUP_ADMIN` + - `RESTORE_ADMIN` + - `ROLE_ADMIN` + - `CONNECTION_ADMIN` + - `SYSTEM_VARIABLES_ADMIN` + + 你也可以使用插件来添加新的权限。若要查看全部的动态权限,请执行 `SHOW PRIVILEGES` 语句。 +[用户文档](/privilege-management.md) + +- 新增安全增强模式(Security Enhanced Mode)配置项,用于对 TiDB 管理员进行更细粒度的权限划分。安全增强模式默认关闭,如需开启,请参考[用户文档](/system-variables.md#tidb_enable_enhanced_security)。 + +- 全面加强列类型的在线变更能力,支持通过 ALTER TABLE 语句进行列的在线类型修改, 包括但不限于: + + - 从 varchar 转换为 bigint + - decimal 精度修改 + - 从 varchar(10) 到 varchar(5) 的长度压缩 + + [用户文档](/sql-statements/sql-statement-modify-column.md] + +- 引入新的语法 AS OF TIMESTAMP,支持通过 Stale Read 功能从指定的时间点或时间范围内读取历史数据。 + + [用户文档](/as-of-timestamp.md),[#21094](https://github.com/pingcap/tidb/issues/21094) + + AS OF TIMESTAMP 语法示例如下: + + SELECT * FROM t AS OF TIMESTAMP '2020-09-06 00:00:00' + START TRANSACTION READ ONLY AS OF TIMESTAMP '2020-09-06 00:00:00' + SET TRANSACTION READ ONLY as of timestamp '2020-09-06 00:00:00' + +### 事务 + ++ 新增锁视图(Lock View)(实验特性) +[用户文档](/information-schema/information-schema-data-lock-waits.md),[#24199](https://github.com/pingcap/tidb/issues/24199) + + Lock View 用于提供关于悲观锁的锁冲突和锁等待的更多信息,方便 DBA 通过锁视图功能来观察事务加锁情况以及排查死锁问题等 + +### 性能 + ++ 数据副本非一致性读(Stale Read) + + - 直接读取本地副本数据,降低读取延迟,提升查询性能 +[用户文档](/stale-read.md),[#21094](https://github.com/pingcap/tidb/issues/21094) + ++ TiKV 增加独立的 IO 线程(Async IO) + + 通过将写盘操作从计算线程剥离出来,提高 CPU 利用率以及降低由于排队导致的长尾延迟问题 + ++ 默认开启 Hibernate Region 特性 [#10266](https://github.com/tikv/tikv/pull/10266) + +### 稳定性 + ++ TiCDC 复制稳定性问题解决 + + - 改善 TiCDC 内存使用,避免在以下场景出现 OOM + + - 同步中断期间积累大量数据,超过 1TB,重新同步出现 OOM 问题 + - 大量数据写入造成 TiCDC 出现 OOM 问题 + + - 改善 TiCDC 同步中断问题,缓解以下场景的问题 [project#11(]https://github.com/pingcap/ticdc/projects/11) + - 网络不稳定情况下出现的同步中断问题 + - 在部分 TiKV/PD/TiCDC 节点宕机情况下出现的同步中断问题 + ++ TiFlash 存储内存控制 +优化了 Region 快照生成的速度和内存使用量,减少了OOM的可能性 + ++ 新增 TiKV 后台任务写入限制(TiKV Write Rate Limiter) + TiKV Write Rate Limiter 通过平滑 TiKV 后台任务如 GC,Compaction 等的写入流量,保证读写请求的延迟稳定性。TiKV 后台任务写入限制默认值为 “0MB”,建议将此限制设置为磁盘的最佳 I/O 带宽,例如云盘厂商指定的最大 I/O 带宽。 + [用户文档](tikv-configuration-file.md#storageio-rate-limit),[#9156](https://github.com/tikv/tikv/issues/9156) + ++ 解决多个扩缩容时的调度稳定性问题 + +### 数据迁移 + ++ 支持数据的增量导入和分布式导入 + + - 增量导入:支持导入新数据至已存在数据的表。 + - 分布式导入:支持使用多个 lightning 进程并行或分批次初始化同一张表,可用于分表数据使用多个 lightning 并行合并迁移到 TiDB,或者超大单表数据分批次使用 lightning 迁移到 TiDB,可大大降低导入大量数据所需的时间。 + + [用户文档](tidb-lightning-distributed-import.md),[#784](https://github.com/pingcap/br/pull/784) + +### TiDB 数据共享订阅 + +[TiCDC Open Protocol](/ticdc/ticdc-open-protocol.md#row-changed-event) 的 [列标志位](/ticdc/ticdc-open-protocol.md#列标志位) 功能正式发布,不再是实验特性。列标志位用于以 Bit flags 形式标记列的相关属性。 + +### 遥测 + +TiDB 在遥测中新增收集集群请求的运行状态,包括执行情况、失败情况等。 + +若要了解所收集的信息详情及如何禁用该行为,请参见[遥测](https://docs.pingcap.com/zh/tidb/stable/telemetry)文档。 + +## 提升改进 + ++ TiDB + + - 支持 `VITESS_HASH()` 函数 [#23915](https://github.com/pingcap/tidb/pull/23915) + - 支持枚举类型下推到 TiKV ,提升 WHERE 子句中使用枚举类型时的性能 [#23619](https://github.com/pingcap/tidb/issues/23619) + - 支持 Window Function Pipeline,降低 Window Function 运行过程中 OOM 概率 [#23807](https://github.com/pingcap/tidb/issues/23807) + - 减少 UNION 算子 OOM 概率 [#21441](https://github.com/pingcap/tidb/issues/21441) + - 解决多种情况下出现的 Region is Unavailable 问题 [project#62](https://github.com/pingcap/tidb/projects/62) + + - 修复频繁调度情况下可能出现的多个 Region is Unavailable 问题 + - 解决部分高压力写入情况下可能出现的 Region is Unavailable 问题 + + - 当内存中的统计信息缓存是最新的时,避免后台作业频繁读取 `mysql.stats_histograms` 表造成高 CPU 使用率 [#24317](https://github.com/pingcap/tidb/pull/24317) + ++ TiKV + + - 使用 `zstd` 压缩 Region Snapshot,防止大量调度或扩缩容情况下出现各节点之间空间差异比较大的问题 [#10005](https://github.com/tikv/tikv/pull/10005) + - 解决多种情况下的 OOM 问题 [#10183](https://github.com/tikv/tikv/issues/10183) + + - 增加各模块内存使用情况追踪 + - 解决 raft entries cache 过大导致的 OOM 问题 + - 解决 gc tasks 堆积导致的 OOM 问题 + - 解决一次性从 raft log 取太多 raft entries 到内存导致 OOM 问题 + + - 让 Region 分裂更均匀,缓解有写入热点时 Region 大小的增长速度超过分裂速度的问题 [#9785](https://github.com/tikv/tikv/issues/9785) + ++ TiFlash + + - 新增对 Union All , TopN,Limit 函数的支持 + - 新增 MPP 模式下对笛卡尔积 left outer join 和 semi anti join的支持 + - 优化锁操作以避免 DDL 语句和读数据相互阻塞 + ++ PD + - 避免在添加 `scatter region` 调度器后出现的非预期统计行为 [#3602](https://github.com/pingcap/pd/pull/3602) + - 解决扩缩容过程中出现的多个调度问题 + + - 优化副本 snapshot 生成流程,解决扩缩容调度慢问题:pd/issues/3563 ,tikv/pull/10059 ,tikv/pull/10001 + - 解决由于流量变化引带来的心跳压力引起的调度慢问题 pd/pull/3693 pd/pull/3739 /pd/pull/3728 pd/pull/3751 + - 减少大集群由于调度产生的空间差异问题,并优化调度公式防止由于压缩率差异大引发的类似异构空间集群的爆盘问题 tikv/pd/pull/3592 tikv/pull/10005 + ++ Tools + + + Backup & Restore (BR) + + - 支持备份和恢复 `mysql` schema 下的系统表 [#1143](https://github.com/pingcap/br/pull/1143) [#1078](https://github.com/pingcap/br/pull/1078) + - BR 支持 S3 兼容的存储(基于 virtual-host 寻址模式)[#10243](https://github.com/tikv/tikv/pull/10243) + - BR 改进 backupmeta 格式,减少内存占用。[#1171](https://github.com/pingcap/br/pull/1171) + + + TiCDC + + - 删除了一些可能让用户困惑的无用日志信息 [#1759](https://github.com/pingcap/ticdc/pull/1759) + - 为 TiCDC 扫描的速度添加感知下游处理能力的 (back pressure) 功能 [#10151](https://github.com/tikv/tikv/pull/10151) + - 减少 TiCDC 进行初次扫描的内存使用量 [#10133](https://github.com/tikv/tikv/pull/10133) + - 提升了悲观事务中 TiCDC Old Value 的缓存命中率 [#10089](https://github.com/tikv/tikv/pull/10089) + + + Dumpling + + - 改善 TiDB 4.0 导出逻辑避免 TiDB OOM [#273](https://github.com/pingcap/dumpling/pull/273) + - 修复备份失败却没有错误输出的问题 [#280](https://github.com/pingcap/dumpling/pull/280) + + + Lightning + + - 优化导入逻辑实现导入速度的提升。优化结果显示,导入 tpcc 数据速度提升在 30% 左右,导入索引比较多(5 个索引)的大表 (2TB+) 速度提升超过 50% [#753](https://github.com/pingcap/br/pull/753) + - 导入前对导入数据和目标集群进行检查,如果不符合导入要求,则报错拒绝导入程序的运行 [#999](https://github.com/pingcap/br/pull/999) + +## Bug 修复 + ++ TiDB + + - 修复投影消除在投影结果为空时执行结果可能错误的问题 [#24093](https://github.com/pingcap/tidb/pull/24093) + - 修复列包含 `NULL` 值时查询结果在某些情况下可能错误的问题 [#24063](https://github.com/pingcap/tidb/pull/24063) + - 当有虚拟列参与扫描时不允许生成 MPP 计划 [#24058](https://github.com/pingcap/tidb/pull/24058) + - 修复 Plan Cache 中对 `PointGet` 和 `TableDual` 错误的重复使用 [#24043](https://github.com/pingcap/tidb/pull/24043) + - 修复优化器在为聚簇索引构建 `IndexMerge` 执行计划时出现的错误 [#24042](https://github.com/pingcap/tidb/pull/24042) + - 修复 BIT 类型相关错误的类型推导 [#24027](https://github.com/pingcap/tidb/pull/24027) + - 修复某些优化器 Hint 在 `PointGet` 算子存在时无法生效的问题 [#23685](https://github.com/pingcap/tidb/pull/23685) + - 修复 DDL 遇到错误回滚时可能失败的问题 [#24080](https://github.com/pingcap/tidb/pull/24080) + - 修复二进制字面值常量的索引范围构造错误的问题 [#24041](https://github.com/pingcap/tidb/pull/24041) + - 修复某些情况下 `IN` 语句的执行结果可能错误的问题 [#24023](https://github.com/pingcap/tidb/pull/24023) + - 修复某些字符串函数的返回结果错误的问题 [#23879](https://github.com/pingcap/tidb/pull/23879) + - 执行 `REPLACE` 语句需要用户同时拥有 `INSERT` 和 `DELETE` 权限 [#23939](https://github.com/pingcap/tidb/pull/23939) + - 修复点查时出现的的性能回退 [#24070](https://github.com/pingcap/tidb/pull/24070) + - 修复因错误比较二进制与字节而导致的 `TableDual` 计划错误的问题 [#23918](https://github.com/pingcap/tidb/pull/23918) + - 修复了在某些情况下,使用前缀索引和 Index Join 导致的 panic 的问题 [#24547](https://github.com/pingcap/tidb/issues/24547) [#24716](https://github.com/pingcap/tidb/issues/24716) [#24717](https://github.com/pingcap/tidb/issues/24717) + - 修复了 `point get` 的 prepare plan cache 被事务中的 `point get` 语句不正确使用的问题 [#24741](https://github.com/pingcap/tidb/issues/24741) + - 修复了当排序规则为 `ascii_bin` 或 `latin1_bin` 时,写入错误的前缀索引值的问题 [#24569](https://github.com/pingcap/tidb/issues/24569) + - 修复了正在执行的事务被 GC worker 中断的问题 [#24591](https://github.com/pingcap/tidb/issues/24591)) + - 修复了当 `new-collation` 开启且 `new-row-format` 关闭的情况下,点查在聚簇索引下可能出错的问题 [#24541](https://github.com/pingcap/tidb/issues/24541) + - 为 Shuffle Hash Join 重构分区键的转换功能 [#24490](https://github.com/pingcap/tidb/pull/24490) + - 修复了当查询包含 `HAVING` 子句时,在构建计划的过程中 panic 的问题 [#24045](https://github.com/pingcap/tidb/issues/24045) + - 修复了列裁剪优化导致 `Apply` 算子和 `Join` 算子执行结果错误的问题 [#23887](https://github.com/pingcap/tidb/issues/23887) + - 修复了从 Async Commit 回退的主锁无法被清除的问题 [#24384](https://github.com/pingcap/tidb/issues/24384) + - 修复了一个统计信息 GC 的问题,该问题可能导致重复的 fm-sketch 记录 [#24357](https://github.com/pingcap/tidb/pull/24357) + - 当悲观锁事务收到 `ErrKeyExists` 错误时,避免不必要的悲观事务回滚 [#23799](https://github.com/pingcap/tidb/issues/23799) + - 修复了当 sql_mode 包含 `ANSI_QUOTES` 时,数值字面值无法被识别的问题 [#25015](https://github.com/pingcap/tidb/pull/25015) + - 禁止如 `INSERT INTO table PARTITION () ... ON DUPLICATE KEY UPDATE` 的语句从 non-listed partitions 读取数据 [#24746](https://github.com/pingcap/tidb/issues/24746) + - 修复了当 SQL 语句包含 `GROUP BY` 以及 `UNION` 时,可能会出现的 `index out of range` 的问题 [#24281](https://github.com/pingcap/tidb/issues/24281) + - 修复了 `CONCAT` 函数错误处理排序规则的问题 [#24296](https://github.com/pingcap/tidb/issues/24296) + - 修复了全局变量 `collation_server` 对新会话无法生效的问题 [#24156](https://github.com/pingcap/tidb/pull/24156) + ++ TiKV + + - 修复了 Coprocessor 未正确处理 `IN` 表达式有符号整数或无符号整数类型数据的问题 [#10018](https://github.com/tikv/tikv/pull/10018) + - 修复了在批量 ingest SST 文件后产生大量空 Region 的问题 [#10015](https://github.com/tikv/tikv/pull/10015) + - 修复了 file dictionary 文件损坏之后 TiKV 无法启动的问题 [#9992](https://github.com/tikv/tikv/pull/9992) + - 修复了由于读取旧值而导致的 TiCDC OOM 问题 [#9996](https://github.com/tikv/tikv/issues/9996) [#9981](https://github.com/tikv/tikv/issues/9981) + - 修复了聚簇主键列在次级索引上的 `latin1_bin` 字符集出现空值的问题 [#24548](https://github.com/pingcap/tidb/issues/24548) + - 新增 `abort-on-panic` 配置,允许 TiKV 在 panic 时生成 core dump 文件。用户仍需正确配置环境以开启 core dump。 [#10216](https://github.com/tikv/tikv/pull/10216) + - 修复了 TiKV 不繁忙时 `point get` 查询性能回退的问题 [#10046](https://github.com/tikv/tikv/issues/10046) + ++ PD + + - 修复在 store 数量多的情况下,切换 PD Leader 慢的问题 [#3697](https://github.com/tikv/pd/issues/3697) + - 修复删除不存在的 evict leader 调度器时出现 panic 的问题 [#3660](https://github.com/tikv/pd/issues/3660) + - 修复 offline peer 在合并完后未更新统计的问题 [#3611](https://github.com/tikv/pd/issues/3611) + ++ TiFlash + + - 修复 `TIME` 类型转换为 `INT` 类型时产生错误结果的问题 + - 修复 `receiver` 可能无法在 10 秒内找到对应任务的问题 + - 修复 `cancelMPPQuery` 中可能存在无效迭代器的问题 + - 修复 `bitwise` 算子和 TiDB 行为不一致的问题 + - 修复当使用 `prefix key` 时出现范围重叠报错的问题 + - 修复字符串转换为 `INT` 时产生错误结果的问题 + - 修复连续快速写入可能导致 TiFlash 内存溢出的问题 + - 修复 Table GC 时会引发空指针的问题 + - 修复向已被删除的表写数据时 TiFlash 进程崩溃的问题 + - 修复当使用 BR 恢复数据时 TiFlash 进程可能崩溃的问题 + - 修复并发复制共享 Delta 索引导致结果错误的问题 + - 修复 TiFlash 在 Compaction Filter 特性开启时可能崩溃的问题 + - 修复了从 Async Commit 回退的锁无法被 TiFlash 清除的问题 + - 修复当 `TIMEZONE` 类型的转换结果包含 `TIMESTAMP` 类型时返回错误结果的问题 + - 修复 TiFlash 在 Segment Split 期间异常退出的问题 + ++ Tools + + + TiDB Lightning + + - 修复在生成 KV 数据时可能发生的 panic 问题 [#1127](https://github.com/pingcap/br/pull/1127) + - 修复数据导入期间 Batch Split Region 因键的总大小超过 Raft 条目限制而可能失败的问题 [#969](https://github.com/pingcap/br/issues/969) + + + Backup & Restore (BR) + + - 修复备份期间少数 TiKV 节点不可用导致的备份中断问题 [#1019](https://github.com/pingcap/br/pull/1019) + + + TiCDC + + - 修复 Unified Sorter 中的并发问题并过滤无用的错误消息 [#1678](https://github.com/pingcap/ticdc/pull/1678) + - 修复同步到 MinIO 时,重复创建目录会导致同步中断的问题 [#1672](https://github.com/pingcap/ticdc/pull/1672) + - 默认开启会话变量 `explicit_defaults_for_timestamp`,使得下游 MySQL 5.7 和上游 TiDB 的行为保持一致 [#1659](https://github.com/pingcap/ticdc/pull/1659) + - 修复错误地处理 `io.EOF` 可能导致同步中断的问题 [#1648](https://github.com/pingcap/ticdc/pull/1648) + - 修正 TiCDC 面板中的 TiKV CDC endpoint CPU 统计信息 [#1645](https://github.com/pingcap/ticdc/pull/1645) + - 增加 `defaultBufferChanSize` 来避免某些情况下同步阻塞的问题 [#1632](https://github.com/pingcap/ticdc/pull/1632) + - 修复 Avro 输出中丢失时区信息的问题 [#1712](https://github.com/pingcap/ticdc/pull/1712) + - 支持清理 Unified Sorter 过期的文件并禁止共享 `sort-dir` 目录 [#1742](https://github.com/pingcap/ticdc/pull/1742) + - 修复存在大量过期 Region 信息时 KV 客户端可能锁死的问题 [#1801](https://github.com/pingcap/ticdc/pull/1801) + - 修复 `--cert-allowed-cn` 参数中错误的帮助消息 [#1697](https://github.com/pingcap/ticdc/pull/1697) + - 修复因更新 `explicit_defaults_for_timestamp` 而需要 MySQL `SUPER` 权限的问题 [#1750](https://github.com/pingcap/ticdc/pull/1750) + - 添加 sink 流控以降低内存溢出的风险 [#1840](https://github.com/pingcap/ticdc/pull/1840) + - 修复调度数据表时可能发生的同步终止问题 [#1828](https://github.com/pingcap/ticdc/pull/1828) + - 修复 TiCDC changefeed 断点卡住导致 TiKV GC safe point 不推进的问题 [#1759](https://github.com/pingcap/ticdc/pull/1759) + + From 22ff07ec79c4984edc143c1f67dadf32b1c5108c Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 09:57:07 +0800 Subject: [PATCH 02/65] add 5.2 rn --- TOC.md | 4 +- _index.md | 2 +- releases/release-5.2.0.md | 332 ++++++++++++++++++++++++++++++++++++++ releases/release-notes.md | 4 + 4 files changed, 340 insertions(+), 2 deletions(-) create mode 100644 releases/release-5.2.0.md diff --git a/TOC.md b/TOC.md index e35c1e853c38..7e55c87247e5 100644 --- a/TOC.md +++ b/TOC.md @@ -7,7 +7,7 @@ + 关于 TiDB + [TiDB 简介](/overview.md) - + [TiDB 5.1 Release Notes](/releases/release-5.1.0.md) + + [TiDB 5.2 Release Notes](/releases/release-5.2.0.md) + [基本功能](/basic-features.md) + [实验特性](/experimental-features.md) + 性能测试报告 @@ -545,6 +545,8 @@ + [术语表](/glossary.md) + 版本发布历史 + [发布版本汇总](/releases/release-notes.md) + + v5.2 + - [5.2.0](/releases/release-5.2.0.md) + v5.1 - [5.1.1](/releases/release-5.1.1.md) - [5.1.0](/releases/release-5.1.0.md) diff --git a/_index.md b/_index.md index 43803255827b..a1ef6dc41f3f 100644 --- a/_index.md +++ b/_index.md @@ -16,7 +16,7 @@ aliases: ['/docs-cn/dev/'] - [TiDB 简介](/overview.md) - [基本功能](/basic-features.md) -- [TiDB 5.1 Release Notes](/releases/release-5.1.0.md) +- [TiDB 5.2 Release Notes](/releases/release-5.2.0.md) - [与 MySQL 的兼容性](/mysql-compatibility.md) - [使用限制](/tidb-limitations.md) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md new file mode 100644 index 000000000000..b548edad57b5 --- /dev/null +++ b/releases/release-5.2.0.md @@ -0,0 +1,332 @@ +--- +title: TiDB 5.2 Release Notes +--- + +# TiDB 5.2 Release Notes + +发版日期:2021 年 8 月 20 日 + +TiDB 版本:5.2 + +在 5.2 版本中,你可以获得以下关键特性: + +- 新增表达式索引 (Expression index),极大提升查询的性能。 +- 提升优化器的估算准确度 (Cardinality Estimation),降低查询响应时间。 +- 锁视图 (Lock View) 成为 GA 特性,提供更直观方便的方式观察事务加锁情况以及排查死锁问题。 +- 新增 TiFlash IO 限流功能,提升 TiFlash 读写稳定性。 +- 优化 TiKV 预留空间管理,提升存储稳定性。 +- 为 TiKV 引入新的流控机制代替之前的 RocksDB write stall 流控机制,提升 TiKV 流控稳定性。 +- 简化 Data Migration (DM) 工具运维,降低运维管理的成本。 +- TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) + +## 兼容性更改 + +> **注意:** +> +> 当从一个早期的 TiDB 版本升级到 TiDB 5.2 时,如需了解所有中间版本对应的兼容性更改说明,请查看对应版本的 [Release Note](/releases/release-notes.md)。 + +### 系统变量 + +| 变量名 | 修改类型 | 描述 | +|:----------|:-----------|:-----------| +|default_authentication_plugin|新增|设置服务器对外通告的默认身份验证方式,默认值为`mysql\_native\_password`。| +|tidb_enable_auto_increment_in_generated|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| +|tidb_opt_enable_correlation_adjustment|新增|控制优化器是否开启交叉估算,默认值为`ON`。| +|tidb_opt_limit_push_down_threshold|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| +|tidb_restricted_read_only|新增|控制整个集群的只读状态,默认值为`OFF`。| +|tidb_stmt_summary_max_stmt_count|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|tidb_enable_streaming|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项|| + +### 配置文件参数 + +| 配置文件 | 配置项 | 修改类型 | 描述 | +|:----------|:-----------|:-----------|:-----------| +|TiDB 配置文件|pessimistic-txn.deadlock-history-collect-retryable|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| +|TiDB 配置文件|security.auto-tls|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| +|TiDB 配置文件|stmt-summary.max-stmt-count|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|TiDB 配置文件|experimental.allow-expression-index|废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| + +### 其他 + +- 升级前,请检查系统变量 `tidb_evolve_plan_baselines` 是否是 ON。如果是 ON,需要 +要改成 `OFF`,否则会导致升级失败。 +- v4.0 集群升级到 v5.0 或更高版本(dev 和 v5.1)的集群后,`tidb_multi_statement_mode` 变量的默认值由 `WARN` 变为 `OFF`。 +- 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 +- 升级至 5.2 版本时,TiKV 会通过`block-cache.capacity`计算`memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 “`block-cache.capacity` / 0.45 * 0.75”的值。 + + 例如,当[storage.block-cache] capacity = “24GB”时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 + +- 表达式索引兼容性说明 + - 升级过程中不允许执行表达式索引的 DDL 操作 + - 通过视图进行查询时,无法使用表达式索引。 + - 表达式索引与 Binding 存在兼容性问题。当表达式索引中的表达式存在常量时,对应的查询所建的 binding 会扩大范围。假设表达式索引的表达式为 `a+1`,对应的查询为 `a+1 > 2`。则建立的 binding 为 `a+? > ?`,这会导致像 `a+2 > 2` 这样的查询也会强制走表达式索引,得到一个较差的执行计划。这同样影响 SPM 中的捕获和演进功能。 + +## 新功能 + +### SQL + +- **新增表达式索引 (Expression index)** + + 表达式索引是一种特殊的索引,能将索引建立于表达式上。创建了表达式索引后,TiDB 支持基于表达式的查询,极大提升查询的性能。 + + [用户文档](sql-statements/sql-statement-create-index.md),[#25150](https://github.com/pingcap/tidb/issues/) + +- **支持 Oracle 中的 `translate`函数** + + `translate` 函数可以将字符串中出现的所有指定字符替换为其它字符,不会像 Oracle 一样将空字符串视为`NULL`。 + + [用户文档](functions-and-operators/string-functions.md) + +- **支持 Spilling HashAgg** + + 支持 HashAgg 的落盘。当包含 HashAgg 算子的 SQL 语句引起 OOM 时,可以尝试设置算子的并发度为 1 来触发落盘,缓解 TiDB 内存压力。 + + [用户文档](/configure-memory-usage.md##tidb-server-其它内存控制策略),[#25882](https://github.com/pingcap/tidb/issues/25882) + +- **提升优化器的估算准确度 (Cardinality Estimation)** + + - 提升 TiDB 对 TopN/Limit 估算的准确度。例如,对于包含 `order by col limit x` 的大表分页查询,TiDB 可以更容易地选对索引,降低查询响应时间。 + - 提升对越界估算的准确度。例如,在当天统计信息尚未更新的情况下,对于包含 `where date=Now()` 的查询,TiDB 也能准确地选中对应索引。 + - 引入变量 `tidb_opt_limit_push_down_threshold` 控制优化器对 Limit/TopN 的下推行为,可以解决部分情况下因为估算误差导致 Limit/TopN 不能下推的问题。 + + [用户文档](/system-variables.md/#tidb_opt_limit_push_down_threshold),[#26085](https://github.com/pingcap/tidb/issues/26085) + +### 事务 + +- **锁视图 (Lock View) 成为 GA 特性** + + Lock View 用于提供关于悲观锁的锁冲突和锁等待的更多信息,方便 DBA 通过锁视图功能来观察事务加锁情况以及排查死锁问题等。 + + 在 5.1 中,Lock View 新增以下特性: + + - 对于 Lock View 所属的各张表中的 SQL Digest 列, v5.1 额外增加了一列显示对应的归一化的 SQL 语句文本,无需手动查询 SQL Digest 对应的语句。 + - 增加了 `TIDB_DECODE_SQL_DIGESTS` 函数用于在集群中查询一组 SQL Digest 所对应的 SQL 语句的归一化形式(即去除格式和参数后的形式),简化了查询某一事务历史执行过的语句的操作 + - 在 `DATA_LOCK_WAITS` 和 `DEADLOCKS` 系统表中,增加一列显示 key 中解出的表名、row id、索引值等信息,简化了定位 key 所属的表、解读 key 的内容等信息的操作。 + - 支持在 `DEADLOCKS` 表中收集可重试的死锁错误的信息,以便于排查因可重试的死锁引发的问题。默认不收集,可通过配置选项 `pessimistic-txn.deadlock-history-collect-retryable` 启用 。 + - `TIDB_TRX` 系统表支持区分正在执行查询的事务和闲置中的事务,即将原来的 `Normal` 状态拆分成 `Running` 和 `Idle` 状态。 + + 用户文档: + + - 查看集群中所有 TiKV 节点上当前正在发生的悲观锁等锁:[`DATA_LOCK_WAITS`](/information-schema/information-schema-data-lock-waits.md) + - 查看 TiDB 节点上最近发生的若干次死锁错误:[`DEADLOCKS`](/information-schema/information-schema-deadlocks.md) + - 查看 TiDB 节点上正在执行的事务的信息:[`TIDB_TRX`](/information-schema/information-schema-tidb-trx.md) + +- 对带有 `AUTO_RANDOM` 或者 `SHARD_ROW_ID_BITS` 属性的表,优化其添加索引的操作。 + +### 稳定性 + +- **新增 TiFlash IO 限流功能** + + TiFlash IO 限流功能主要针对磁盘带宽较小且明确知道磁盘带宽大小的云盘场景,默认关闭。 + + TiFlash IO Rate Limiter 提供了一个新的防止“读/写”任务之间过度竞争系统 IO 资源的机制,可以平衡系统对“读”和“写”任务的响应,并且可以根据读/写负载的情况自动限速。 + + [用户文档](tiflash/tiflash-configuration.md) + +- **优化 TiKV 预留空间管理,提升存储稳定性** + + 在 v5.2 之前的版本中,当 TiDB 集群中的某一个 TiKV 遇到磁盘写满错误时,会挂掉并重启。从 v5.2 起,TiKV 引入两级阈值存储防护功能,在剩余可用磁盘空间触发 storage.reserve-space 阈值之后,拦截写相关操作,避免磁盘使用率继续增长从而导致挂机。同时,支持采用该预留空间进行空间回收。 + + 对于任何一个 Region,如果不过半副本所在的实例磁盘占用触发阈值,Region Leader 会避免继续给它们发 Append 消息,Region 此时仍然可读、可写。 + + 如果 Region Leader 所在实例的磁盘占用触发阈值,后续的写入请求会被返回错误;客户端收到错误之后应当回退并重试;PD 和 TiKV 应当保证在 commit-timeout 内该 Region 的 Leader 迁移到合适的地方。 + + 如果 Region 的过半副本所在实例的磁盘占用触发阈值,则该 Region 上后续的 prewrite 请求会被返回错误,以避免磁盘占用无限增长;commit、rollback、resolve-lock 等操作仍然会允许,以保证继续可读并可以通过 Drop/Truncate 表的方式回收空间;MVCC-DELETE 操作仍然被允许,以保证用户可以通过 delete 语句回收空间 + + [用户文档](/tikv-configuration-file.md#reserve-space),[#10537](https://github.com/tikv/tikv/issues/10537) + +- **提升 TiKV 流控稳定性** + + TiKV 引入了新的流控机制代替之前的 RocksDB write stall 流控机制。相比于 write stall 机制,新的流控机制通过以下改进减少了流控对前台写入稳定性的影响: + + 在 leader 处理写入请求的入口处就进行流控,不会再卡住 raftstore/apply worker 引起次生问题 + 改善的流控算法,有效避免在大写入压力下导致 QPS drop 的问题 + + [用户文档](tikv-configuration-file.md/##storage.flow-control) + , [#10137](https://github.com/tikv/tikv/issues/10137) + +- **自动检测并恢复集群中单个 TiKV 变慢带来的影响** + + 在 TiKV 中引入了慢节点检测机制,通过检测 TiKV Raftstore 的快慢来计算出一个分数,并通过 Store Heartbeat 上报给 PD。并且在 PD 上增加了 `evict-slow-store-scheduler` 调度器,能够自动驱逐单个变慢的 TiKV 节点上的 Leader,以降低其对整个集群性能的影响。同时,还增加了慢节点相关的报警项,帮助用户快速发现并处理问题。 + + [用户文档](tikv-configuration-file.md#inspect-interval),[#10539](https://github.com/tikv/tikv/issues/10539) + +### 数据迁移 + +- **简化 Data Migration (DM) 工具运维** + + - DM v2.1.0 支持 HTTP 协议 OpenAPI,方便用户基于 OpenAPI 实现自动化运维,降低运维管理的成本 + - DM v2.1.0 根据用户的不同角色提供了不同的 Grafana 面板用于监控数据迁移的状态,同时增加了同步延迟时间监控,使任务状态展示更加直观 + - DM v2.1.0 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 + +- DM 支持对行变更事件进行条件过滤 + +- Lightning 支持自定义 CSV 数据的终止符,兼容 MySQL LOAD DATA CSV 数据格式 。使得 Lightning 可以直接使用在用户数据流转架构体系中。[#1297](https://github.com/pingcap/br/pull/1297) + +### TiDB 数据共享订阅 + +TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) + +[#2411](https://github.com/pingcap/ticdc/issues/2411) + +### 部署及运维 + +支持在使用 Apple M1 芯片的本地 Mac 机器上使用 `tiup playground` 命令。 + +### 遥测 + +TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的使用情况。 + +若要了解所收集的信息详情及如何禁用该行为,请参见[遥测](https://docs.pingcap.com/zh/tidb/stable/telemetry)文档。 + +## 功能增强 + ++ Tools + + + TiCDC + + - 增加 HTTP API 支持对 TiCDC 集群进行查询和修改 [#2416](https://github.com/pingcap/ticdc/pull/2416) + - 新增专为 TiDB 设计的二进制 MQ 格式,比基于 JSON 的开放协议更紧凑 [#1621](https://github.com/pingcap/ticdc/pull/1621) + - 移除对 file sorter 的支持 [#2114](https://github.com/pingcap/ticdc/pull/2114) + - 支持日志轮替配置 [#2182](https://github.com/pingcap/ticdc/pull/2182) + + + Lightning + + - 支持 CSV 文件中除 \r/\n 之外的自定义行尾 [#1297](https://github.com/pingcap/br/pull/1297) + - 支持表达式索引和依赖于虚拟生成列的索引 [#1407](https://github.com/pingcap/br/pull/1407) + + +Dumpling + - 支持备份不支持 `START TRANSACTION ... WITH CONSISTENT SNAPSHOT` 和 `SHOW CREATE TABLE` 语句的兼容 MySQL 的数据库 [#311](https://github.com/pingcap/dumpling/pull/311) + +## 提升改进 + ++ TiDB + + - 支持将内置函数 `json_unquote()` 下推到 TiKV [#24415](https://github.com/pingcap/tidb/issues/24415) + - 支持在 Dual 表上移除 `Union` 算子的优化 [#25614](https://github.com/pingcap/tidb/pull/25614) + - 优化聚合算子的代价常数 [#25241](https://github.com/pingcap/tidb/pull/25241) + - 允许 MPP outer join 根据表行数选择构建表 [#25142](https://github.com/pingcap/tidb/pull/25142) + - 支持 MPP 查询任务按 Region 均衡到不同 TiFlash 节点上 [#24724](https://github.com/pingcap/tidb/pull/24724) + - 支持执行 MPP 查询后将缓存中过时的 Region 无效化 [#24432](https://github.com/pingcap/tidb/pull/24432) + - 提升内置函数 `str_to_date` 在格式指定器中 `%b/%M/%r/%T` 的 MySQL 兼容性 [#25767](https://github.com/pingcap/tidb/pull/25767) + - 修复因对同一条查询重复创建不同 binding 可能导致的多个 TiDB 上 binding cache 不一致的问题 [#26015](https://github.com/pingcap/tidb/pull/26015) + - 修复升级可能会导致的 binding 无法被加载到缓存的问题 [#23295](https://github.com/pingcap/tidb/pull/23295) + - 对 SHOW BINDINGS 结果按照 (original_sql, update_time) 有序输出 [#26139](https://github.com/pingcap/tidb/pull/26139) + - 改进使用 binding 优化查询的逻辑,减少对查询的优化次数 [#26141](https://github.com/pingcap/tidb/pull/26141) + - 支持标记为删除状态的 binding 的自动垃圾回收 [#26206](https://github.com/pingcap/tidb/pull/26206) + - 在 EXPLAIN VERBOSE 结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) + - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) + - 在打开 binding 演进或者执行 `admin evolve bindings` 时报错 [#26333](https://github.com/pingcap/tidb/pull/26333) + ++ TiKV + + - 限制 TiCDC sink 的内存消耗 [#10305](https://github.com/tikv/tikv/pull/10305) + - 为 TiCDC old value 缓存增加基于内存使用量的上限 [#10313](https://github.com/tikv/tikv/pull/10313) + ++ PD + + - 热点调度增加对 QPS 维度的支持,同时可以调整优先级[#3869](https://github.com/tikv/pd/issues/3869) + - 热点调度支持对 TiFlash 的写热点进行调度 [#3900](https://github.com/tikv/pd/pull/3900) + ++ TiFlash + - 新增若干 运算符 支持:`MOD / %, `LIKE` + - 新增若干 字符串函数 支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` + - 新增若干 数学函数 支持:`CONV()`, `CRC32()`, `DEGREES()`, `EXP()`, `LN()`, `LOG()`, `LOG10()`, `LOG2()`, `POW()`, `RADIANS()`, `ROUND(decimal)`, `SIN()`, `MOD()` + - 新增若干 日期函数 支持: `ADDDATE(string, real)`, `DATE_ADD(string, real)`, `DATE()` + - 更多函数支持:`INET_NTOA()`, `INET_ATON()`, `INET6_ATON`, `INET6_NTOA()` + - 支持当 new collation 打开时 MPP 模式下的 Shuffled Hash Join 和 Shuffled Hash Aggregation 运算 + - 优化基础代码提升 MPP 性能 + - 为 tidb_broadcast_join_threshold_count 和 tidb_broadcast_join_threshold_size 新增 `-1` 为正无穷值 + - 支持将 `STRING` 类型转换为 `DOUBLE` 类型 + - 通过多线程优化右外连接中的非连接数据 + - 支持在 MPP 查询中自动清理过期的 Region 信息 + ++ Tools + + + TiCDC + - 为 kv client 增量扫添加并发限制 [#1899](https://github.com/pingcap/ticdc/pull/1899) + - 始终在 TiCDC 内部拉取 old value [#2271](https://github.com/pingcap/ticdc/pull/2271) + - 对于不可恢复的 DML 错误快速失败退出 [#1928](https://github.com/pingcap/ticdc/pull/1928) + - 在 region 初始化后不立即执行 resolve lock [#2235](https://github.com/pingcap/ticdc/pull/2235) + + + Dumpling + - 通过 tidb_rowid 来对 TiDB v3.x 的表进行数据划分以节省 TiDB 的内存 [#301](https://github.com/pingcap/dumpling/pull/301) + - 减少 Dumpling 对 information_schema 库的访问以提高稳定性 [#305](https://github.com/pingcap/dumpling/pull/305) + +## Bug 修复 + ++ TiDB + + - 修复在 `SET` 类型列上 Merge Join 结果不正确的问题 [#25669](https://github.com/pingcap/tidb/issues/25669) + - 修复 `IN` 表达式参数的数据腐蚀问题 [#25591](https://github.com/pingcap/tidb/issues/25591) + - 避免 GC 的 session 受全局变量的影响 [#24976](https://github.com/pingcap/tidb/issues/24976) + - 修复了在窗口函数查询中使用 `Limit` 时出现 panic 问题 [#25344](https://github.com/pingcap/tidb/issues/25344) + - 修复查询分区表时使用 `Limit` 返回错误值的问题 [#24636](https://github.com/pingcap/tidb/issues/24636) + - 修复了 `IFNULL` 在 `ENUM` 或 `SET` 类型上不能正确生效的问题 [#24944](https://github.com/pingcap/tidb/issues/24944) + - 修复了 Join 子查询中的 `count` 被改写为 `first_row` 导致结果不正确的问题 [#24865](https://github.com/pingcap/tidb/issues/24865) + - 修复了 `TopN` 算子下使用 `ParallelApply` 查询时卡住的问题 [#24930](https://github.com/pingcap/tidb/issues/24930) + - 修复了使用含有多列的前缀索引查询时出现多余结果的问题 [#24356](https://github.com/pingcap/tidb/issues/24356) + - 修复了操作符 `<=>` 不能正确生效的问题 [#24477](https://github.com/pingcap/tidb/issues/24477) + - 修复并行 `Apply` 算子的数据竞争问题 [#23280](https://github.com/pingcap/tidb/issues/23280) + - 修复对 PartitionUnion 算子的 IndexMerge 结果排序时出现 `index out of range` 错误 [#23919](https://github.com/pingcap/tidb/issues/23919) + - 修复 `tidb_snapshot` 被允许设置为非预期的过大值,而可能造成事务隔离性被破坏的问题 [25680]( https://github.com/pingcap/tidb/issues/25680) + - 修复 ODBC 类常数(例如 `{d '2020-01-01'}`)不能被用作表达式的问题 [#25531](https://github.com/pingcap/tidb/issues/25531) + - 修复 `SELECT DISTINCT` 被转化为 Batch Get 而导致结果不正确的问题 [#25320](https://github.com/pingcap/tidb/issues/25320) + - 修复无法触发将查询从 TiFlash 回退到 TiKV 的问题 [#23665](https://github.com/pingcap/tidb/issues/23665) [#24421](https://github.com/pingcap/tidb/issues/24421) + - 修复在检查 `only_full_group_by` 时的 `index-out-of-range` 错误 [#23839](https://github.com/pingcap/tidb/issues/23839) + - 修复关联子查询中 Index Join 的结果不正确问题 [#25799](https://github.com/pingcap/tidb/issues/25799) + ++ TiKV + + - 修复错误的 `tikv_raftstore_hibernated_peer_state` 监控指标 [#10330](https://github.com/tikv/tikv/issues/10330) + - 修复 coprocessor 中 `json_unquote()` 函数错误的参数类型 [#10176](https://github.com/tikv/tikv/issues/10176) + - 正常关机时跳过清理 Raftstore 的回调从而避免在某些情况下破坏事务的 ACID [#10353](https://github.com/tikv/tikv/issues/10353) [#10307](https://github.com/tikv/tikv/issues/10307) + - 修复在 Leader 上 Replica Read 共享 Read Index 的问题 [#10347](https://github.com/tikv/tikv/issues/10347) + - 修复 coprocessor 转换 `DOUBLE` 到 `DOUBLE` 的错误函数 [#25200](https://github.com/pingcap/tidb/issues/25200) + ++ PD + + - 修复多个调度器产生调度冲突时无法生产预期调度的问题 [#3807](https://github.com/tikv/pd/issues/3807) [#3778](https://github.com/tikv/pd/issues/3778) + ++ TiFlash + + - 修复因 split 失败而不断重启的问题 + - 修复无法删除 Delta 历史数据的潜在问题 + - 修复在 `CAST` 函数中为非二进制字符串填充错误数据的问题 + - 修复处理包含复杂 `GROUP BY` 列的聚合查询时结果不正确的问题 + - 修复写入压力过大时出现进程崩溃的问题 + - 修复右连接键不为空且左连接键可为空时进程崩溃的问题 + - 修复 `read-index` 请求耗时长的潜在问题 + - 修复读负载高的情况下进程崩溃的问题 + - 修复 `Date_Format` 函数在参数类型为 `STRING` 且包含 `NULL` 值时可能导致 TiFlash server 崩溃的问题 + ++ Tools + + + TiCDC + + - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1985](https://github.com/pingcap/ticdc/pull/1985) + - 修复 changefeed 创建成功后立即失败的问题 [#2115](https://github.com/pingcap/ticdc/pull/2115) + - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#2117](https://github.com/pingcap/ticdc/pull/2117) + - 修复 owner 被 kill 后 DDL 丢失的问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) + - 修复 cli 在默认 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) + - 修复 TiCDC 可能遇到 `ErrSchemaStorageTableMiss` 导致 changefeed 被意外地重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) + - 修复 TiCDC 遇到 ErrGCTTLExceeded 错误时 changefeed 不能被 remove 的问题 [#2429](https://github.com/pingcap/ticdc/pull/2429) + - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#2431](https://github.com/pingcap/ticdc/pull/2431) + + + Backup & Restore (BR)s + + - 修复 BR 恢复中忽略了所有系统表的问题 [#1197](https://github.com/pingcap/br/issues/1197) [#1201](https://github.com/pingcap/br/issues/1201) + - 修复 BR 恢复 cdclog 时漏掉 DDL 操作的问题 [#870](https://github.com/pingcap/br/issues/870) + + + TiDB Lightning + + - 修复 Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1277](https://github.com/pingcap/br/pull/1272) + - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 问题 [#1290](https://github.com/pingcap/br/issues/1290) + - 修复 Lightning 因 int handle 溢出导致导入数据失败问题 [#1291](https://github.com/pingcap/br/issues/1291) + - 修复 Lightning 在 local backend 模式下可能因数据丢失遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) + - 修复 Lightning 恢复 table schema 时与 clustered index 不兼容的问题 [#1364](https://github.com/pingcap/br/pull/1364) + + + Dumpling + + - 修复 Dumpling GC safepoint 设置过晚问题 [#290](https://github.com/pingcap/dumpling/pull/290) + - 修复 Dumpling 在特定 MySQL 版本下卡住的问题 (#325)[https://github.com/pingcap/dumpling/pull/325] \ No newline at end of file diff --git a/releases/release-notes.md b/releases/release-notes.md index 46b2bc621e73..3eba88248b0e 100644 --- a/releases/release-notes.md +++ b/releases/release-notes.md @@ -7,6 +7,10 @@ aliases: ['/docs-cn/dev/releases/release-notes/','/docs-cn/dev/releases/rn/'] TiDB 历史版本发布声明如下: +## 5.2 + +- [5.2.0](/releases/release-5.2.0.md) + ## 5.1 - [5.1.1](/releases/release-5.1.1.md) From 2ea212a43cdaf3858233c4142b55ddb90584bbb8 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 10:27:25 +0800 Subject: [PATCH 03/65] add_links_for_variables_and_parameters --- releases/release-5.2.0.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index b548edad57b5..ea896ae8cf68 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -29,22 +29,22 @@ TiDB 版本:5.2 | 变量名 | 修改类型 | 描述 | |:----------|:-----------|:-----------| -|default_authentication_plugin|新增|设置服务器对外通告的默认身份验证方式,默认值为`mysql\_native\_password`。| -|tidb_enable_auto_increment_in_generated|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| -|tidb_opt_enable_correlation_adjustment|新增|控制优化器是否开启交叉估算,默认值为`ON`。| -|tidb_opt_limit_push_down_threshold|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| -|tidb_restricted_read_only|新增|控制整个集群的只读状态,默认值为`OFF`。| -|tidb_stmt_summary_max_stmt_count|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| -|tidb_enable_streaming|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项|| +|[`default_authentication_plugin`](/system-variables.md#default_authentication_plugin)|新增|设置服务器对外通告的默认身份验证方式,默认值为`mysql\_native\_password`。| +|[`tidb_enable_auto_increment_in_generated](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| +|[`tidb_opt_enable_correlation_adjustment](/system-variables.md#tidb_opt_enable_correlation_adjustment)||新增|控制优化器是否开启交叉估算,默认值为`ON`。| +|[`tidb_opt_limit_push_down_threshold](/system-variables.md#tidb_opt_limit_push_down_threshold)||新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| +|[`tidb_restricted_read_only]()||新增|控制整个集群的只读状态,默认值为`OFF`。| +|[`tidb_stmt_summary_max_stmt_count](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)||修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项|| ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | |:----------|:-----------|:-----------|:-----------| -|TiDB 配置文件|pessimistic-txn.deadlock-history-collect-retryable|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| -|TiDB 配置文件|security.auto-tls|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| -|TiDB 配置文件|stmt-summary.max-stmt-count|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| -|TiDB 配置文件|experimental.allow-expression-index|废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| +|TiDB 配置文件|[`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable)|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| +|TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| +|TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|TiDB 配置文件|`experimental.allow-expression-index`|废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| ### 其他 From 3c8b16eafa91e624e0987d5ec295c28c95c91339 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 10:30:44 +0800 Subject: [PATCH 04/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index ea896ae8cf68..17b25a0a1ac7 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -229,6 +229,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 热点调度支持对 TiFlash 的写热点进行调度 [#3900](https://github.com/tikv/pd/pull/3900) + TiFlash + - 新增若干 运算符 支持:`MOD / %, `LIKE` - 新增若干 字符串函数 支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` - 新增若干 数学函数 支持:`CONV()`, `CRC32()`, `DEGREES()`, `EXP()`, `LN()`, `LOG()`, `LOG10()`, `LOG2()`, `POW()`, `RADIANS()`, `ROUND(decimal)`, `SIN()`, `MOD()` @@ -329,4 +330,4 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + Dumpling - 修复 Dumpling GC safepoint 设置过晚问题 [#290](https://github.com/pingcap/dumpling/pull/290) - - 修复 Dumpling 在特定 MySQL 版本下卡住的问题 (#325)[https://github.com/pingcap/dumpling/pull/325] \ No newline at end of file + - 修复 Dumpling 在特定 MySQL 版本下卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file From d51694c899b4e42d39502245054d253dbe63d7b0 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 10:36:51 +0800 Subject: [PATCH 05/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 17b25a0a1ac7..bb53b87321fa 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -230,10 +230,10 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiFlash - - 新增若干 运算符 支持:`MOD / %, `LIKE` - - 新增若干 字符串函数 支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` - - 新增若干 数学函数 支持:`CONV()`, `CRC32()`, `DEGREES()`, `EXP()`, `LN()`, `LOG()`, `LOG10()`, `LOG2()`, `POW()`, `RADIANS()`, `ROUND(decimal)`, `SIN()`, `MOD()` - - 新增若干 日期函数 支持: `ADDDATE(string, real)`, `DATE_ADD(string, real)`, `DATE()` + - 新增若干运算符的支持:`MOD / %`, `LIKE` + - 新增若干字符串函数的支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` + - 新增若干数学函数的支持:`CONV()`, `CRC32()`, `DEGREES()`, `EXP()`, `LN()`, `LOG()`, `LOG10()`, `LOG2()`, `POW()`, `RADIANS()`, `ROUND(decimal)`, `SIN()`, `MOD()` + - 新增若干日期函数的支持: `ADDDATE(string, real)`, `DATE_ADD(string, real)`, `DATE()` - 更多函数支持:`INET_NTOA()`, `INET_ATON()`, `INET6_ATON`, `INET6_NTOA()` - 支持当 new collation 打开时 MPP 模式下的 Shuffled Hash Join 和 Shuffled Hash Aggregation 运算 - 优化基础代码提升 MPP 性能 From 8061053e181986a45c962ab97ea2dc4e24b4f4e6 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 10:46:33 +0800 Subject: [PATCH 06/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index bb53b87321fa..2ee2e48dd371 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -30,11 +30,11 @@ TiDB 版本:5.2 | 变量名 | 修改类型 | 描述 | |:----------|:-----------|:-----------| |[`default_authentication_plugin`](/system-variables.md#default_authentication_plugin)|新增|设置服务器对外通告的默认身份验证方式,默认值为`mysql\_native\_password`。| -|[`tidb_enable_auto_increment_in_generated](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| -|[`tidb_opt_enable_correlation_adjustment](/system-variables.md#tidb_opt_enable_correlation_adjustment)||新增|控制优化器是否开启交叉估算,默认值为`ON`。| -|[`tidb_opt_limit_push_down_threshold](/system-variables.md#tidb_opt_limit_push_down_threshold)||新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| -|[`tidb_restricted_read_only]()||新增|控制整个集群的只读状态,默认值为`OFF`。| -|[`tidb_stmt_summary_max_stmt_count](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)||修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|[`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| +|[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)||新增|控制优化器是否开启交叉估算,默认值为`ON`。| +|[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)||新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| +|[`tidb_restricted_read_only`]()||新增|控制整个集群的只读状态,默认值为`OFF`。| +|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)||修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| |`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项|| ### 配置文件参数 From 65d37a2322cf0e41cb73a3d6ba8ae6c2f42760a4 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 10:48:13 +0800 Subject: [PATCH 07/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 2ee2e48dd371..6b4aa9f92d15 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -31,11 +31,11 @@ TiDB 版本:5.2 |:----------|:-----------|:-----------| |[`default_authentication_plugin`](/system-variables.md#default_authentication_plugin)|新增|设置服务器对外通告的默认身份验证方式,默认值为`mysql\_native\_password`。| |[`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| -|[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)||新增|控制优化器是否开启交叉估算,默认值为`ON`。| -|[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)||新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| -|[`tidb_restricted_read_only`]()||新增|控制整个集群的只读状态,默认值为`OFF`。| -|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)||修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| -|`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项|| +|[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)|新增|控制优化器是否开启交叉估算,默认值为`ON`。| +|[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| +|[`tidb_restricted_read_only`]()|新增|控制整个集群的只读状态,默认值为`OFF`。| +|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项| ### 配置文件参数 From efb8bf5e88894154becc1e988f7c09d047491e05 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 10:50:21 +0800 Subject: [PATCH 08/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 6b4aa9f92d15..38eda9b807f2 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -33,7 +33,7 @@ TiDB 版本:5.2 |[`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| |[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)|新增|控制优化器是否开启交叉估算,默认值为`ON`。| |[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| -|[`tidb_restricted_read_only`]()|新增|控制整个集群的只读状态,默认值为`OFF`。| +|[`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only)|新增|控制整个集群的只读状态,默认值为`OFF`。| |[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| |`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项| From e887990c830399997c51c366027fc232123eb6c3 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 16 Aug 2021 10:56:40 +0800 Subject: [PATCH 09/65] Update releases/release-5.2.0.md Co-authored-by: WangZhengru --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 38eda9b807f2..4624504d6163 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -317,7 +317,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + Backup & Restore (BR)s - 修复 BR 恢复中忽略了所有系统表的问题 [#1197](https://github.com/pingcap/br/issues/1197) [#1201](https://github.com/pingcap/br/issues/1201) - - 修复 BR 恢复 cdclog 时漏掉 DDL 操作的问题 [#870](https://github.com/pingcap/br/issues/870) + - 修复 BR 恢复 cdclog 时漏掉 DDL 操作的问题 [#870](https://github.com/pingcap/br/issues/870) + TiDB Lightning From e8dc6c3b54b26547158782c8c50115e7e3f6b4de Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 16 Aug 2021 10:59:08 +0800 Subject: [PATCH 10/65] Apply suggestions from code review Co-authored-by: WangZhengru --- releases/release-5.2.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 4624504d6163..557f6d313bcf 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -17,7 +17,7 @@ TiDB 版本:5.2 - 优化 TiKV 预留空间管理,提升存储稳定性。 - 为 TiKV 引入新的流控机制代替之前的 RocksDB write stall 流控机制,提升 TiKV 流控稳定性。 - 简化 Data Migration (DM) 工具运维,降低运维管理的成本。 -- TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) +- TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) ## 兼容性更改 @@ -247,7 +247,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - 为 kv client 增量扫添加并发限制 [#1899](https://github.com/pingcap/ticdc/pull/1899) - 始终在 TiCDC 内部拉取 old value [#2271](https://github.com/pingcap/ticdc/pull/2271) - - 对于不可恢复的 DML 错误快速失败退出 [#1928](https://github.com/pingcap/ticdc/pull/1928) + - 对于不可恢复的 DML 错误快速失败退出 [#1928](https://github.com/pingcap/ticdc/pull/1928) - 在 region 初始化后不立即执行 resolve lock [#2235](https://github.com/pingcap/ticdc/pull/2235) + Dumpling @@ -306,7 +306,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1985](https://github.com/pingcap/ticdc/pull/1985) - - 修复 changefeed 创建成功后立即失败的问题 [#2115](https://github.com/pingcap/ticdc/pull/2115) + - 修复 changefeed 创建成功后立即失败的问题 [#2115](https://github.com/pingcap/ticdc/pull/2115) - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#2117](https://github.com/pingcap/ticdc/pull/2117) - 修复 owner 被 kill 后 DDL 丢失的问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) - 修复 cli 在默认 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) @@ -322,7 +322,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiDB Lightning - 修复 Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1277](https://github.com/pingcap/br/pull/1272) - - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 问题 [#1290](https://github.com/pingcap/br/issues/1290) + - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 问题 [#1290](https://github.com/pingcap/br/issues/1290) - 修复 Lightning 因 int handle 溢出导致导入数据失败问题 [#1291](https://github.com/pingcap/br/issues/1291) - 修复 Lightning 在 local backend 模式下可能因数据丢失遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) - 修复 Lightning 恢复 table schema 时与 clustered index 不兼容的问题 [#1364](https://github.com/pingcap/br/pull/1364) From a67b92d4be9a79549d0bd6348fa59e65126db5ce Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 16 Aug 2021 10:59:34 +0800 Subject: [PATCH 11/65] Apply suggestions from code review Co-authored-by: WangZhengru --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 557f6d313bcf..3d9474cc136c 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -165,7 +165,7 @@ TiDB 版本:5.2 ### TiDB 数据共享订阅 -TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) +TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) [#2411](https://github.com/pingcap/ticdc/issues/2411) From 0bfac13cf08b6f9ec11d9838b838287aafa98329 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 16 Aug 2021 11:00:41 +0800 Subject: [PATCH 12/65] Apply suggestions from code review Co-authored-by: WangZhengru --- releases/release-5.2.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 3d9474cc136c..37b39906d7d3 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -157,7 +157,7 @@ TiDB 版本:5.2 - DM v2.1.0 支持 HTTP 协议 OpenAPI,方便用户基于 OpenAPI 实现自动化运维,降低运维管理的成本 - DM v2.1.0 根据用户的不同角色提供了不同的 Grafana 面板用于监控数据迁移的状态,同时增加了同步延迟时间监控,使任务状态展示更加直观 - - DM v2.1.0 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 + - DM v2.1.0 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 - DM 支持对行变更事件进行条件过滤 @@ -231,7 +231,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiFlash - 新增若干运算符的支持:`MOD / %`, `LIKE` - - 新增若干字符串函数的支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` + - 新增若干字符串函数的支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` - 新增若干数学函数的支持:`CONV()`, `CRC32()`, `DEGREES()`, `EXP()`, `LN()`, `LOG()`, `LOG10()`, `LOG2()`, `POW()`, `RADIANS()`, `ROUND(decimal)`, `SIN()`, `MOD()` - 新增若干日期函数的支持: `ADDDATE(string, real)`, `DATE_ADD(string, real)`, `DATE()` - 更多函数支持:`INET_NTOA()`, `INET_ATON()`, `INET6_ATON`, `INET6_NTOA()` @@ -305,7 +305,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1985](https://github.com/pingcap/ticdc/pull/1985) + - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1985](https://github.com/pingcap/ticdc/pull/1985) - 修复 changefeed 创建成功后立即失败的问题 [#2115](https://github.com/pingcap/ticdc/pull/2115) - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#2117](https://github.com/pingcap/ticdc/pull/2117) - 修复 owner 被 kill 后 DDL 丢失的问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) From 205d41a02fb4086a0a5493e3be3a161920978f05 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 16 Aug 2021 13:49:54 +0800 Subject: [PATCH 13/65] Apply suggestions from code review Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> Co-authored-by: Yujie Xia --- releases/release-5.2.0.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 37b39906d7d3..de6f1285ca31 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -29,7 +29,7 @@ TiDB 版本:5.2 | 变量名 | 修改类型 | 描述 | |:----------|:-----------|:-----------| -|[`default_authentication_plugin`](/system-variables.md#default_authentication_plugin)|新增|设置服务器对外通告的默认身份验证方式,默认值为`mysql\_native\_password`。| +|[`default_authentication_plugin`](/system-variables.md#default_authentication_plugin)|新增|设置服务器对外通告的默认身份验证方式,默认值为 `mysql_native_password`。| |[`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| |[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)|新增|控制优化器是否开启交叉估算,默认值为`ON`。| |[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| @@ -69,7 +69,7 @@ TiDB 版本:5.2 表达式索引是一种特殊的索引,能将索引建立于表达式上。创建了表达式索引后,TiDB 支持基于表达式的查询,极大提升查询的性能。 - [用户文档](sql-statements/sql-statement-create-index.md),[#25150](https://github.com/pingcap/tidb/issues/) + [用户文档](/sql-statements/sql-statement-create-index.md),[#25150](https://github.com/pingcap/tidb/issues/) - **支持 Oracle 中的 `translate`函数** @@ -190,12 +190,12 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 移除对 file sorter 的支持 [#2114](https://github.com/pingcap/ticdc/pull/2114) - 支持日志轮替配置 [#2182](https://github.com/pingcap/ticdc/pull/2182) - + Lightning + + TiDB Lightning - 支持 CSV 文件中除 \r/\n 之外的自定义行尾 [#1297](https://github.com/pingcap/br/pull/1297) - 支持表达式索引和依赖于虚拟生成列的索引 [#1407](https://github.com/pingcap/br/pull/1407) - +Dumpling + + Dumpling - 支持备份不支持 `START TRANSACTION ... WITH CONSISTENT SNAPSHOT` 和 `SHOW CREATE TABLE` 语句的兼容 MySQL 的数据库 [#311](https://github.com/pingcap/dumpling/pull/311) ## 提升改进 @@ -249,6 +249,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 始终在 TiCDC 内部拉取 old value [#2271](https://github.com/pingcap/ticdc/pull/2271) - 对于不可恢复的 DML 错误快速失败退出 [#1928](https://github.com/pingcap/ticdc/pull/1928) - 在 region 初始化后不立即执行 resolve lock [#2235](https://github.com/pingcap/ticdc/pull/2235) + - 优化 workerpool 以降低在高并发情况下 goroutine 的数量 [#2201](https://github.com/pingcap/ticdc/pull/2201) + Dumpling - 通过 tidb_rowid 来对 TiDB v3.x 的表进行数据划分以节省 TiDB 的内存 [#301](https://github.com/pingcap/dumpling/pull/301) @@ -313,6 +314,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复 TiCDC 可能遇到 `ErrSchemaStorageTableMiss` 导致 changefeed 被意外地重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) - 修复 TiCDC 遇到 ErrGCTTLExceeded 错误时 changefeed 不能被 remove 的问题 [#2429](https://github.com/pingcap/ticdc/pull/2429) - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#2431](https://github.com/pingcap/ticdc/pull/2431) + - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 [#2417](https://github.com/pingcap/ticdc/pull/2417) + Backup & Restore (BR)s From a992b539c00ceca4f8d846a46d2d20acabf35b8f Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 13:54:11 +0800 Subject: [PATCH 14/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 38eda9b807f2..c51eea3e93a3 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -43,7 +43,7 @@ TiDB 版本:5.2 |:----------|:-----------|:-----------|:-----------| |TiDB 配置文件|[`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable)|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| |TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| -|TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| |TiDB 配置文件|`experimental.allow-expression-index`|废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| ### 其他 From c888c6e241bbedd39d9a5efabfee77b2dbfe27bd Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 16:05:28 +0800 Subject: [PATCH 15/65] add_tikv_changes_flow-control --- releases/release-5.2.0.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 84d101d75078..826f157624cb 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -45,6 +45,11 @@ TiDB 版本:5.2 |TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| |TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| |TiDB 配置文件|`experimental.allow-expression-index`|废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| +|TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable)|新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| +|TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold)|新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| +|TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold)|新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| +|TiKV 配置文件|[`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit)|新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。| +|TiKV 配置文件|[`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit)|新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。| ### 其他 From d3282d0aa7a4eb02a202c30162bb662467652ed6 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 16:13:53 +0800 Subject: [PATCH 16/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 826f157624cb..5603f471af16 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -44,12 +44,12 @@ TiDB 版本:5.2 |TiDB 配置文件|[`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable)|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| |TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| |TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| -|TiDB 配置文件|`experimental.allow-expression-index`|废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| -|TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable)|新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| -|TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold)|新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| -|TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold)|新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| -|TiKV 配置文件|[`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit)|新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。| -|TiKV 配置文件|[`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit)|新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。| +|TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| +|TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| +|TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) |新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| +|TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) |新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| +|TiKV 配置文件|[`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit) |新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。| +|TiKV 配置文件|[`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit) |新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。| ### 其他 From 85eddd9cfc1ab81c3bb84239dbf648ab88af342c Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 16:15:26 +0800 Subject: [PATCH 17/65] Delete release-5.1.md --- releases/release-5.1.md | 321 ---------------------------------------- 1 file changed, 321 deletions(-) delete mode 100644 releases/release-5.1.md diff --git a/releases/release-5.1.md b/releases/release-5.1.md deleted file mode 100644 index 5a226af2b0ab..000000000000 --- a/releases/release-5.1.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -title: TiDB 5.1 Release Notes ---- - -# TiDB 5.1 Release Notes - -发版日期:2021 年 6 月 18 日 - -TiDB 版本:5.1 - -在 5.1 版本中,你可以获得以下关键特性: - -- 支持 MySQL 8 中的公共表表达式 (Common Table Expression),提高了 SQL 语句的可读性与执行效率。 -- 支持 MySQL 8 中的动态权限(Dynamic Privileges)配置,实现对某些操作更细粒度的控制。 -- 支持通过 Stale Read 功能直接读取本地副本数据,降低读取延迟,提升查询性能。 -- 新增锁视图 (Lock View) 功能方便 DBA 观察事务加锁情况以及排查死锁问题。 -- 新增 TiKV 后台任务写入限制(TiKV Write Rate Limiter),保证读写请求的延迟稳定性。 -- 支持数据的增量导入和分布式导入,降低数据导入时间。 - -## 兼容性更改 - -### 系统变量 - -| 变量名 | 修改类型 | 描述 | -|:----------|:-----------|:-----------| -| `tidb_enable_enhanced_security` | 新增 | 表示所连接的 TiDB 服务器是否启用了安全增强模式(SEM),在不重新启动 TiDB 服务器的情况下不能改变该变量。 | -| `cte_max_recursion_depth` | 新增 | 用于控制公共表表达式最大递归深度。 | -| `init_connect` | 新增 | 用于控制初始连接。 | -| `tidb_analyze_version` | 新增 | 用于控制所收集到的统计信息。默认值从 `1` 修改为 `2`,默认作为实验特性启用。 | -| `tidb_enforce_mpp` | 新增 | 用于忽略优化器代价估算,强制使用 mpp 模式。bool 类型,默认值为 false。 | - -### 配置文件参数 - -| 配置文件 | 配置项 | 修改类型 | 描述 | -|:----------|:-----------|:-----------| -| TiDB 配置文件 | security.enable-sem | 新增 | 控制是否启用安全增强模式 (SEM)。默认值为 `false`,代表未启用。 | -| TiDB 配置文件 | performance.tcp-no-delay | 新增 | 控制是否在 TiDB 在 TCP 层开启 no dela。 默认值为 `true`,代表开启。 | -TiDB 配置文件 | performance.committer-concurrency | 修改 | "在单个事务的提交阶段,控制用于执行提交操作相关请求的 goroutine 数量 -。默认值从 16 修改为 128。" | -TiDB 配置文件 | pessimistic-txn.deadlock-history-capacity | 新增 | 控制单个 TiDB 节点的 [`INFORMATION_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表最多可记录的死锁事件个数,默认值为 “10”。 | -| TiKV 配置文件 | `storage.io-rate-limit` | 新增 | 控制 TiKV 写入的 IO 速率。`storage.io-rate-limit.max-bytes-per-sec` 默认值为 “0MB”。 | -| TiKV 配置文件 | `abort-on-panic` | 新增 | 设置 TiKV panic 时 abort 进程是否允许系统生成 core dump 文件。默认值为 false, 代表不允许生成 core dump 文件。 | -| TiKV 配置文件 | `soft-pending-compaction-bytes-limit` | 修改 | pending compaction bytes 的软限制,默认值从 “64GB” 修改为 “192GB” | -| TiKV 配置文件 | `hibernate-regions` | 修改 | 默认值从 `false` 修改为 `true`。 如果 Region 长时间处于非活跃状态,即被自动设置为静默状态。 | -| TiKV 配置文件 | `resolved-ts.enable` | 新增 | 为所有 region leader 维护 resolved-ts, 默认为 true | -| TiKV 配置文件 | `resolved-ts.advance-ts-interval` | 新增 | 推进 resolved-ts 的间隔,默认为 1s, 支持动态更改 | -| TiKV 配置文件 | `resolved-ts.scan-lock-pool-size` | 新增 | 用于初始化 resolved-ts 时扫锁的线程数,默认为 2 | - -### 其他 - -- 为了提升 TiDB 性能,TiDB 的 Go 编译器版本从 go1.13.7 升级到了 go1.16.4。如果你是 TiDB 的开发者,为了能保证顺利编译,请对应升级你的 Go 编译器版本。 -- 请避免在对使用 TiDB-Binlog 的集群进行滚动升级的过程中新创建聚簇索引表。 -- 请避免在 TiDB 滚动升级时执行 alter table … modify/change column。 -- 当按表构建 TiFlash 副本时,v5.1 版本及后续版本将不再支持设置系统表的 replica。在集群升级前,需要清除相关系统表的 replica,否则升级到较高版本后将无法再修改系统表的 replica 设置。 -- 在 TiCDC 的 `cdc cli changefeed` 命令中废弃 `--sort-dir` 参数,用户可在 `cdc server` 命令中设定 `--sort-dir`。 [#1795](https://github.com/pingcap/ticdc/pull/1795) - -## 新功能 - -### SQL - -- 新增 MySQL 8 中的公共表表达式(Common Table Expression),为 TiDB 带来递归/非递归查询层次结构数据的能力,满足了人力资源、制造业、金融市场和教育在内的多种应用领域需要使用树形查询实现业务逻辑的需求。 在 TiDB 中,你可以通过 `WITH` 语句使用公共表表达式。 -[用户文档](/sql-statements/sql-statement-with.md),[#17472](https://github.com/pingcap/tidb/issues/17472) - -- 新增 MySQL 8 中的动态权限(Dynamic Privileges)。动态权限用于限制 `SUPER` 权限,为 TiDB 提供更灵活的权限配置,实现对某些操作更细粒度的控制。例如,你可以使用动态权限来创建一个只能执行 `BACKUP` 和 `RESTORE` 操作的用户帐户。 - - 支持的动态权限包括: - - - `BACKUP_ADMIN` - - `RESTORE_ADMIN` - - `ROLE_ADMIN` - - `CONNECTION_ADMIN` - - `SYSTEM_VARIABLES_ADMIN` - - 你也可以使用插件来添加新的权限。若要查看全部的动态权限,请执行 `SHOW PRIVILEGES` 语句。 -[用户文档](/privilege-management.md) - -- 新增安全增强模式(Security Enhanced Mode)配置项,用于对 TiDB 管理员进行更细粒度的权限划分。安全增强模式默认关闭,如需开启,请参考[用户文档](/system-variables.md#tidb_enable_enhanced_security)。 - -- 全面加强列类型的在线变更能力,支持通过 ALTER TABLE 语句进行列的在线类型修改, 包括但不限于: - - - 从 varchar 转换为 bigint - - decimal 精度修改 - - 从 varchar(10) 到 varchar(5) 的长度压缩 - - [用户文档](/sql-statements/sql-statement-modify-column.md] - -- 引入新的语法 AS OF TIMESTAMP,支持通过 Stale Read 功能从指定的时间点或时间范围内读取历史数据。 - - [用户文档](/as-of-timestamp.md),[#21094](https://github.com/pingcap/tidb/issues/21094) - - AS OF TIMESTAMP 语法示例如下: - - SELECT * FROM t AS OF TIMESTAMP '2020-09-06 00:00:00' - START TRANSACTION READ ONLY AS OF TIMESTAMP '2020-09-06 00:00:00' - SET TRANSACTION READ ONLY as of timestamp '2020-09-06 00:00:00' - -### 事务 - -+ 新增锁视图(Lock View)(实验特性) -[用户文档](/information-schema/information-schema-data-lock-waits.md),[#24199](https://github.com/pingcap/tidb/issues/24199) - - Lock View 用于提供关于悲观锁的锁冲突和锁等待的更多信息,方便 DBA 通过锁视图功能来观察事务加锁情况以及排查死锁问题等 - -### 性能 - -+ 数据副本非一致性读(Stale Read) - - - 直接读取本地副本数据,降低读取延迟,提升查询性能 -[用户文档](/stale-read.md),[#21094](https://github.com/pingcap/tidb/issues/21094) - -+ TiKV 增加独立的 IO 线程(Async IO) - - 通过将写盘操作从计算线程剥离出来,提高 CPU 利用率以及降低由于排队导致的长尾延迟问题 - -+ 默认开启 Hibernate Region 特性 [#10266](https://github.com/tikv/tikv/pull/10266) - -### 稳定性 - -+ TiCDC 复制稳定性问题解决 - - - 改善 TiCDC 内存使用,避免在以下场景出现 OOM - - - 同步中断期间积累大量数据,超过 1TB,重新同步出现 OOM 问题 - - 大量数据写入造成 TiCDC 出现 OOM 问题 - - - 改善 TiCDC 同步中断问题,缓解以下场景的问题 [project#11(]https://github.com/pingcap/ticdc/projects/11) - - 网络不稳定情况下出现的同步中断问题 - - 在部分 TiKV/PD/TiCDC 节点宕机情况下出现的同步中断问题 - -+ TiFlash 存储内存控制 -优化了 Region 快照生成的速度和内存使用量,减少了OOM的可能性 - -+ 新增 TiKV 后台任务写入限制(TiKV Write Rate Limiter) - TiKV Write Rate Limiter 通过平滑 TiKV 后台任务如 GC,Compaction 等的写入流量,保证读写请求的延迟稳定性。TiKV 后台任务写入限制默认值为 “0MB”,建议将此限制设置为磁盘的最佳 I/O 带宽,例如云盘厂商指定的最大 I/O 带宽。 - [用户文档](tikv-configuration-file.md#storageio-rate-limit),[#9156](https://github.com/tikv/tikv/issues/9156) - -+ 解决多个扩缩容时的调度稳定性问题 - -### 数据迁移 - -+ 支持数据的增量导入和分布式导入 - - - 增量导入:支持导入新数据至已存在数据的表。 - - 分布式导入:支持使用多个 lightning 进程并行或分批次初始化同一张表,可用于分表数据使用多个 lightning 并行合并迁移到 TiDB,或者超大单表数据分批次使用 lightning 迁移到 TiDB,可大大降低导入大量数据所需的时间。 - - [用户文档](tidb-lightning-distributed-import.md),[#784](https://github.com/pingcap/br/pull/784) - -### TiDB 数据共享订阅 - -[TiCDC Open Protocol](/ticdc/ticdc-open-protocol.md#row-changed-event) 的 [列标志位](/ticdc/ticdc-open-protocol.md#列标志位) 功能正式发布,不再是实验特性。列标志位用于以 Bit flags 形式标记列的相关属性。 - -### 遥测 - -TiDB 在遥测中新增收集集群请求的运行状态,包括执行情况、失败情况等。 - -若要了解所收集的信息详情及如何禁用该行为,请参见[遥测](https://docs.pingcap.com/zh/tidb/stable/telemetry)文档。 - -## 提升改进 - -+ TiDB - - - 支持 `VITESS_HASH()` 函数 [#23915](https://github.com/pingcap/tidb/pull/23915) - - 支持枚举类型下推到 TiKV ,提升 WHERE 子句中使用枚举类型时的性能 [#23619](https://github.com/pingcap/tidb/issues/23619) - - 支持 Window Function Pipeline,降低 Window Function 运行过程中 OOM 概率 [#23807](https://github.com/pingcap/tidb/issues/23807) - - 减少 UNION 算子 OOM 概率 [#21441](https://github.com/pingcap/tidb/issues/21441) - - 解决多种情况下出现的 Region is Unavailable 问题 [project#62](https://github.com/pingcap/tidb/projects/62) - - - 修复频繁调度情况下可能出现的多个 Region is Unavailable 问题 - - 解决部分高压力写入情况下可能出现的 Region is Unavailable 问题 - - - 当内存中的统计信息缓存是最新的时,避免后台作业频繁读取 `mysql.stats_histograms` 表造成高 CPU 使用率 [#24317](https://github.com/pingcap/tidb/pull/24317) - -+ TiKV - - - 使用 `zstd` 压缩 Region Snapshot,防止大量调度或扩缩容情况下出现各节点之间空间差异比较大的问题 [#10005](https://github.com/tikv/tikv/pull/10005) - - 解决多种情况下的 OOM 问题 [#10183](https://github.com/tikv/tikv/issues/10183) - - - 增加各模块内存使用情况追踪 - - 解决 raft entries cache 过大导致的 OOM 问题 - - 解决 gc tasks 堆积导致的 OOM 问题 - - 解决一次性从 raft log 取太多 raft entries 到内存导致 OOM 问题 - - - 让 Region 分裂更均匀,缓解有写入热点时 Region 大小的增长速度超过分裂速度的问题 [#9785](https://github.com/tikv/tikv/issues/9785) - -+ TiFlash - - - 新增对 Union All , TopN,Limit 函数的支持 - - 新增 MPP 模式下对笛卡尔积 left outer join 和 semi anti join的支持 - - 优化锁操作以避免 DDL 语句和读数据相互阻塞 - -+ PD - - 避免在添加 `scatter region` 调度器后出现的非预期统计行为 [#3602](https://github.com/pingcap/pd/pull/3602) - - 解决扩缩容过程中出现的多个调度问题 - - - 优化副本 snapshot 生成流程,解决扩缩容调度慢问题:pd/issues/3563 ,tikv/pull/10059 ,tikv/pull/10001 - - 解决由于流量变化引带来的心跳压力引起的调度慢问题 pd/pull/3693 pd/pull/3739 /pd/pull/3728 pd/pull/3751 - - 减少大集群由于调度产生的空间差异问题,并优化调度公式防止由于压缩率差异大引发的类似异构空间集群的爆盘问题 tikv/pd/pull/3592 tikv/pull/10005 - -+ Tools - - + Backup & Restore (BR) - - - 支持备份和恢复 `mysql` schema 下的系统表 [#1143](https://github.com/pingcap/br/pull/1143) [#1078](https://github.com/pingcap/br/pull/1078) - - BR 支持 S3 兼容的存储(基于 virtual-host 寻址模式)[#10243](https://github.com/tikv/tikv/pull/10243) - - BR 改进 backupmeta 格式,减少内存占用。[#1171](https://github.com/pingcap/br/pull/1171) - - + TiCDC - - - 删除了一些可能让用户困惑的无用日志信息 [#1759](https://github.com/pingcap/ticdc/pull/1759) - - 为 TiCDC 扫描的速度添加感知下游处理能力的 (back pressure) 功能 [#10151](https://github.com/tikv/tikv/pull/10151) - - 减少 TiCDC 进行初次扫描的内存使用量 [#10133](https://github.com/tikv/tikv/pull/10133) - - 提升了悲观事务中 TiCDC Old Value 的缓存命中率 [#10089](https://github.com/tikv/tikv/pull/10089) - - + Dumpling - - - 改善 TiDB 4.0 导出逻辑避免 TiDB OOM [#273](https://github.com/pingcap/dumpling/pull/273) - - 修复备份失败却没有错误输出的问题 [#280](https://github.com/pingcap/dumpling/pull/280) - - + Lightning - - - 优化导入逻辑实现导入速度的提升。优化结果显示,导入 tpcc 数据速度提升在 30% 左右,导入索引比较多(5 个索引)的大表 (2TB+) 速度提升超过 50% [#753](https://github.com/pingcap/br/pull/753) - - 导入前对导入数据和目标集群进行检查,如果不符合导入要求,则报错拒绝导入程序的运行 [#999](https://github.com/pingcap/br/pull/999) - -## Bug 修复 - -+ TiDB - - - 修复投影消除在投影结果为空时执行结果可能错误的问题 [#24093](https://github.com/pingcap/tidb/pull/24093) - - 修复列包含 `NULL` 值时查询结果在某些情况下可能错误的问题 [#24063](https://github.com/pingcap/tidb/pull/24063) - - 当有虚拟列参与扫描时不允许生成 MPP 计划 [#24058](https://github.com/pingcap/tidb/pull/24058) - - 修复 Plan Cache 中对 `PointGet` 和 `TableDual` 错误的重复使用 [#24043](https://github.com/pingcap/tidb/pull/24043) - - 修复优化器在为聚簇索引构建 `IndexMerge` 执行计划时出现的错误 [#24042](https://github.com/pingcap/tidb/pull/24042) - - 修复 BIT 类型相关错误的类型推导 [#24027](https://github.com/pingcap/tidb/pull/24027) - - 修复某些优化器 Hint 在 `PointGet` 算子存在时无法生效的问题 [#23685](https://github.com/pingcap/tidb/pull/23685) - - 修复 DDL 遇到错误回滚时可能失败的问题 [#24080](https://github.com/pingcap/tidb/pull/24080) - - 修复二进制字面值常量的索引范围构造错误的问题 [#24041](https://github.com/pingcap/tidb/pull/24041) - - 修复某些情况下 `IN` 语句的执行结果可能错误的问题 [#24023](https://github.com/pingcap/tidb/pull/24023) - - 修复某些字符串函数的返回结果错误的问题 [#23879](https://github.com/pingcap/tidb/pull/23879) - - 执行 `REPLACE` 语句需要用户同时拥有 `INSERT` 和 `DELETE` 权限 [#23939](https://github.com/pingcap/tidb/pull/23939) - - 修复点查时出现的的性能回退 [#24070](https://github.com/pingcap/tidb/pull/24070) - - 修复因错误比较二进制与字节而导致的 `TableDual` 计划错误的问题 [#23918](https://github.com/pingcap/tidb/pull/23918) - - 修复了在某些情况下,使用前缀索引和 Index Join 导致的 panic 的问题 [#24547](https://github.com/pingcap/tidb/issues/24547) [#24716](https://github.com/pingcap/tidb/issues/24716) [#24717](https://github.com/pingcap/tidb/issues/24717) - - 修复了 `point get` 的 prepare plan cache 被事务中的 `point get` 语句不正确使用的问题 [#24741](https://github.com/pingcap/tidb/issues/24741) - - 修复了当排序规则为 `ascii_bin` 或 `latin1_bin` 时,写入错误的前缀索引值的问题 [#24569](https://github.com/pingcap/tidb/issues/24569) - - 修复了正在执行的事务被 GC worker 中断的问题 [#24591](https://github.com/pingcap/tidb/issues/24591)) - - 修复了当 `new-collation` 开启且 `new-row-format` 关闭的情况下,点查在聚簇索引下可能出错的问题 [#24541](https://github.com/pingcap/tidb/issues/24541) - - 为 Shuffle Hash Join 重构分区键的转换功能 [#24490](https://github.com/pingcap/tidb/pull/24490) - - 修复了当查询包含 `HAVING` 子句时,在构建计划的过程中 panic 的问题 [#24045](https://github.com/pingcap/tidb/issues/24045) - - 修复了列裁剪优化导致 `Apply` 算子和 `Join` 算子执行结果错误的问题 [#23887](https://github.com/pingcap/tidb/issues/23887) - - 修复了从 Async Commit 回退的主锁无法被清除的问题 [#24384](https://github.com/pingcap/tidb/issues/24384) - - 修复了一个统计信息 GC 的问题,该问题可能导致重复的 fm-sketch 记录 [#24357](https://github.com/pingcap/tidb/pull/24357) - - 当悲观锁事务收到 `ErrKeyExists` 错误时,避免不必要的悲观事务回滚 [#23799](https://github.com/pingcap/tidb/issues/23799) - - 修复了当 sql_mode 包含 `ANSI_QUOTES` 时,数值字面值无法被识别的问题 [#25015](https://github.com/pingcap/tidb/pull/25015) - - 禁止如 `INSERT INTO table PARTITION () ... ON DUPLICATE KEY UPDATE` 的语句从 non-listed partitions 读取数据 [#24746](https://github.com/pingcap/tidb/issues/24746) - - 修复了当 SQL 语句包含 `GROUP BY` 以及 `UNION` 时,可能会出现的 `index out of range` 的问题 [#24281](https://github.com/pingcap/tidb/issues/24281) - - 修复了 `CONCAT` 函数错误处理排序规则的问题 [#24296](https://github.com/pingcap/tidb/issues/24296) - - 修复了全局变量 `collation_server` 对新会话无法生效的问题 [#24156](https://github.com/pingcap/tidb/pull/24156) - -+ TiKV - - - 修复了 Coprocessor 未正确处理 `IN` 表达式有符号整数或无符号整数类型数据的问题 [#10018](https://github.com/tikv/tikv/pull/10018) - - 修复了在批量 ingest SST 文件后产生大量空 Region 的问题 [#10015](https://github.com/tikv/tikv/pull/10015) - - 修复了 file dictionary 文件损坏之后 TiKV 无法启动的问题 [#9992](https://github.com/tikv/tikv/pull/9992) - - 修复了由于读取旧值而导致的 TiCDC OOM 问题 [#9996](https://github.com/tikv/tikv/issues/9996) [#9981](https://github.com/tikv/tikv/issues/9981) - - 修复了聚簇主键列在次级索引上的 `latin1_bin` 字符集出现空值的问题 [#24548](https://github.com/pingcap/tidb/issues/24548) - - 新增 `abort-on-panic` 配置,允许 TiKV 在 panic 时生成 core dump 文件。用户仍需正确配置环境以开启 core dump。 [#10216](https://github.com/tikv/tikv/pull/10216) - - 修复了 TiKV 不繁忙时 `point get` 查询性能回退的问题 [#10046](https://github.com/tikv/tikv/issues/10046) - -+ PD - - - 修复在 store 数量多的情况下,切换 PD Leader 慢的问题 [#3697](https://github.com/tikv/pd/issues/3697) - - 修复删除不存在的 evict leader 调度器时出现 panic 的问题 [#3660](https://github.com/tikv/pd/issues/3660) - - 修复 offline peer 在合并完后未更新统计的问题 [#3611](https://github.com/tikv/pd/issues/3611) - -+ TiFlash - - - 修复 `TIME` 类型转换为 `INT` 类型时产生错误结果的问题 - - 修复 `receiver` 可能无法在 10 秒内找到对应任务的问题 - - 修复 `cancelMPPQuery` 中可能存在无效迭代器的问题 - - 修复 `bitwise` 算子和 TiDB 行为不一致的问题 - - 修复当使用 `prefix key` 时出现范围重叠报错的问题 - - 修复字符串转换为 `INT` 时产生错误结果的问题 - - 修复连续快速写入可能导致 TiFlash 内存溢出的问题 - - 修复 Table GC 时会引发空指针的问题 - - 修复向已被删除的表写数据时 TiFlash 进程崩溃的问题 - - 修复当使用 BR 恢复数据时 TiFlash 进程可能崩溃的问题 - - 修复并发复制共享 Delta 索引导致结果错误的问题 - - 修复 TiFlash 在 Compaction Filter 特性开启时可能崩溃的问题 - - 修复了从 Async Commit 回退的锁无法被 TiFlash 清除的问题 - - 修复当 `TIMEZONE` 类型的转换结果包含 `TIMESTAMP` 类型时返回错误结果的问题 - - 修复 TiFlash 在 Segment Split 期间异常退出的问题 - -+ Tools - - + TiDB Lightning - - - 修复在生成 KV 数据时可能发生的 panic 问题 [#1127](https://github.com/pingcap/br/pull/1127) - - 修复数据导入期间 Batch Split Region 因键的总大小超过 Raft 条目限制而可能失败的问题 [#969](https://github.com/pingcap/br/issues/969) - - + Backup & Restore (BR) - - - 修复备份期间少数 TiKV 节点不可用导致的备份中断问题 [#1019](https://github.com/pingcap/br/pull/1019) - - + TiCDC - - - 修复 Unified Sorter 中的并发问题并过滤无用的错误消息 [#1678](https://github.com/pingcap/ticdc/pull/1678) - - 修复同步到 MinIO 时,重复创建目录会导致同步中断的问题 [#1672](https://github.com/pingcap/ticdc/pull/1672) - - 默认开启会话变量 `explicit_defaults_for_timestamp`,使得下游 MySQL 5.7 和上游 TiDB 的行为保持一致 [#1659](https://github.com/pingcap/ticdc/pull/1659) - - 修复错误地处理 `io.EOF` 可能导致同步中断的问题 [#1648](https://github.com/pingcap/ticdc/pull/1648) - - 修正 TiCDC 面板中的 TiKV CDC endpoint CPU 统计信息 [#1645](https://github.com/pingcap/ticdc/pull/1645) - - 增加 `defaultBufferChanSize` 来避免某些情况下同步阻塞的问题 [#1632](https://github.com/pingcap/ticdc/pull/1632) - - 修复 Avro 输出中丢失时区信息的问题 [#1712](https://github.com/pingcap/ticdc/pull/1712) - - 支持清理 Unified Sorter 过期的文件并禁止共享 `sort-dir` 目录 [#1742](https://github.com/pingcap/ticdc/pull/1742) - - 修复存在大量过期 Region 信息时 KV 客户端可能锁死的问题 [#1801](https://github.com/pingcap/ticdc/pull/1801) - - 修复 `--cert-allowed-cn` 参数中错误的帮助消息 [#1697](https://github.com/pingcap/ticdc/pull/1697) - - 修复因更新 `explicit_defaults_for_timestamp` 而需要 MySQL `SUPER` 权限的问题 [#1750](https://github.com/pingcap/ticdc/pull/1750) - - 添加 sink 流控以降低内存溢出的风险 [#1840](https://github.com/pingcap/ticdc/pull/1840) - - 修复调度数据表时可能发生的同步终止问题 [#1828](https://github.com/pingcap/ticdc/pull/1828) - - 修复 TiCDC changefeed 断点卡住导致 TiKV GC safe point 不推进的问题 [#1759](https://github.com/pingcap/ticdc/pull/1759) - - From e066c230e2f65a1b7714b2e26025e019b7d06f07 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 16:37:59 +0800 Subject: [PATCH 18/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 5603f471af16..ef000e191b3f 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -45,6 +45,7 @@ TiDB 版本:5.2 |TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| |TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| |TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| +|TiKV 配置文件|[`inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| |TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| |TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) |新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| |TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) |新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| From a2188787a4e5f71bea5998e7d99369349f94534d Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 16 Aug 2021 19:23:39 +0800 Subject: [PATCH 19/65] remove the dm 2.0.5 changes according to Yilin --- releases/release-5.2.0.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index ef000e191b3f..45959f78b32b 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -165,8 +165,6 @@ TiDB 版本:5.2 - DM v2.1.0 根据用户的不同角色提供了不同的 Grafana 面板用于监控数据迁移的状态,同时增加了同步延迟时间监控,使任务状态展示更加直观 - DM v2.1.0 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 -- DM 支持对行变更事件进行条件过滤 - - Lightning 支持自定义 CSV 数据的终止符,兼容 MySQL LOAD DATA CSV 数据格式 。使得 Lightning 可以直接使用在用户数据流转架构体系中。[#1297](https://github.com/pingcap/br/pull/1297) ### TiDB 数据共享订阅 From c07f4de37250c19d5fa60581e35822edd3084294 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 17 Aug 2021 11:12:11 +0800 Subject: [PATCH 20/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 45959f78b32b..ae724ab56544 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -161,9 +161,7 @@ TiDB 版本:5.2 - **简化 Data Migration (DM) 工具运维** - - DM v2.1.0 支持 HTTP 协议 OpenAPI,方便用户基于 OpenAPI 实现自动化运维,降低运维管理的成本 - - DM v2.1.0 根据用户的不同角色提供了不同的 Grafana 面板用于监控数据迁移的状态,同时增加了同步延迟时间监控,使任务状态展示更加直观 - - DM v2.1.0 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 + DM v2.0.6 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 - Lightning 支持自定义 CSV 数据的终止符,兼容 MySQL LOAD DATA CSV 数据格式 。使得 Lightning 可以直接使用在用户数据流转架构体系中。[#1297](https://github.com/pingcap/br/pull/1297) From a7a15a3620bc76f2755c4250e5d45d06b753aeda Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 17 Aug 2021 11:19:52 +0800 Subject: [PATCH 21/65] Apply suggestions from code review Co-authored-by: Zhou Kunqin <25057648+time-and-fate@users.noreply.github.com> Co-authored-by: WangZhengru Co-authored-by: Lynn --- releases/release-5.2.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index ae724ab56544..c7c55104b735 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -11,7 +11,7 @@ TiDB 版本:5.2 在 5.2 版本中,你可以获得以下关键特性: - 新增表达式索引 (Expression index),极大提升查询的性能。 -- 提升优化器的估算准确度 (Cardinality Estimation),降低查询响应时间。 +- 提升优化器的估算准确度 (Cardinality Estimation),有助于选中最优的执行计划。 - 锁视图 (Lock View) 成为 GA 特性,提供更直观方便的方式观察事务加锁情况以及排查死锁问题。 - 新增 TiFlash IO 限流功能,提升 TiFlash 读写稳定性。 - 优化 TiKV 预留空间管理,提升存储稳定性。 @@ -75,11 +75,11 @@ TiDB 版本:5.2 表达式索引是一种特殊的索引,能将索引建立于表达式上。创建了表达式索引后,TiDB 支持基于表达式的查询,极大提升查询的性能。 - [用户文档](/sql-statements/sql-statement-create-index.md),[#25150](https://github.com/pingcap/tidb/issues/) + [用户文档](/sql-statements/sql-statement-create-index.md),[#25150](https://github.com/pingcap/tidb/issues/25150) - **支持 Oracle 中的 `translate`函数** - `translate` 函数可以将字符串中出现的所有指定字符替换为其它字符,不会像 Oracle 一样将空字符串视为`NULL`。 + `translate` 函数可以将字符串中出现的所有指定字符替换为其它字符, TiDB 中的 `translate` 函数不会像 Oracle 一样将空字符串视为`NULL`。 [用户文档](functions-and-operators/string-functions.md) @@ -117,7 +117,7 @@ TiDB 版本:5.2 - 查看 TiDB 节点上最近发生的若干次死锁错误:[`DEADLOCKS`](/information-schema/information-schema-deadlocks.md) - 查看 TiDB 节点上正在执行的事务的信息:[`TIDB_TRX`](/information-schema/information-schema-tidb-trx.md) -- 对带有 `AUTO_RANDOM` 或者 `SHARD_ROW_ID_BITS` 属性的表,优化其添加索引的操作。 +- 对带有 `AUTO_RANDOM` 或者 `SHARD_ROW_ID_BITS` 属性的表,优化其大部分添加索引操作的场景。 ### 稳定性 From c616a241abd1c3550b9380b31656dd5d8945c797 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 17 Aug 2021 16:24:43 +0800 Subject: [PATCH 22/65] Apply suggestions from code review Co-authored-by: kennytm --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index c7c55104b735..21b7141aa686 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -17,7 +17,7 @@ TiDB 版本:5.2 - 优化 TiKV 预留空间管理,提升存储稳定性。 - 为 TiKV 引入新的流控机制代替之前的 RocksDB write stall 流控机制,提升 TiKV 流控稳定性。 - 简化 Data Migration (DM) 工具运维,降低运维管理的成本。 -- TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) +- TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 以及 On-Premises 环境下提供更友好的运维方式。(实验特性) ## 兼容性更改 From b45650c51935429d9c555ebe128e3fe078906685 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 17 Aug 2021 16:26:37 +0800 Subject: [PATCH 23/65] Apply suggestions from code review Co-authored-by: Yiding Cui Co-authored-by: kennytm --- releases/release-5.2.0.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 21b7141aa686..e97a9440345c 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -96,6 +96,12 @@ TiDB 版本:5.2 - 引入变量 `tidb_opt_limit_push_down_threshold` 控制优化器对 Limit/TopN 的下推行为,可以解决部分情况下因为估算误差导致 Limit/TopN 不能下推的问题。 [用户文档](/system-variables.md/#tidb_opt_limit_push_down_threshold),[#26085](https://github.com/pingcap/tidb/issues/26085) + +- **提升优化器的索引过滤规则 (Index Selection)** + + 新增加了一些索引选择的裁剪规则,在通过统计信息进行对比之前,通过规则进一步对可能的选择的索引范围进行缩小。从而减小各种情况下选到不优索引的概率。 + + [用户文档](/choose-index.md) ### 事务 @@ -318,7 +324,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#2431](https://github.com/pingcap/ticdc/pull/2431) - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 [#2417](https://github.com/pingcap/ticdc/pull/2417) - + Backup & Restore (BR)s + + Backup & Restore (BR) - 修复 BR 恢复中忽略了所有系统表的问题 [#1197](https://github.com/pingcap/br/issues/1197) [#1201](https://github.com/pingcap/br/issues/1201) - 修复 BR 恢复 cdclog 时漏掉 DDL 操作的问题 [#870](https://github.com/pingcap/br/issues/870) From c8f664bf6b1ec56b9b7691eb6168e3dc9795223f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 17 Aug 2021 16:27:04 +0800 Subject: [PATCH 24/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index e97a9440345c..c8d5f969195b 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -109,7 +109,7 @@ TiDB 版本:5.2 Lock View 用于提供关于悲观锁的锁冲突和锁等待的更多信息,方便 DBA 通过锁视图功能来观察事务加锁情况以及排查死锁问题等。 - 在 5.1 中,Lock View 新增以下特性: + 在 5.2 中,Lock View 新增以下特性: - 对于 Lock View 所属的各张表中的 SQL Digest 列, v5.1 额外增加了一列显示对应的归一化的 SQL 语句文本,无需手动查询 SQL Digest 对应的语句。 - 增加了 `TIDB_DECODE_SQL_DIGESTS` 函数用于在集群中查询一组 SQL Digest 所对应的 SQL 语句的归一化形式(即去除格式和参数后的形式),简化了查询某一事务历史执行过的语句的操作 From 9c67cd83b7eb02d22eb6234194d93cf535fd7f0f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 17 Aug 2021 16:54:05 +0800 Subject: [PATCH 25/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index c8d5f969195b..6bcb23571ce0 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -46,6 +46,7 @@ TiDB 版本:5.2 |TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| |TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| |TiKV 配置文件|[`inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| +|TiKV 配置文件|[`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) |修改|表示副本允许的最长未响应时间,超过将被标记为 down,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。| |TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| |TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) |新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| |TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) |新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| From a1c48a850e12eb343030b0ae35833770d6e43354 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 18 Aug 2021 09:55:25 +0800 Subject: [PATCH 26/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 6bcb23571ce0..e0453f7b3904 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -47,6 +47,7 @@ TiDB 版本:5.2 |TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| |TiKV 配置文件|[`inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| |TiKV 配置文件|[`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) |修改|表示副本允许的最长未响应时间,超过将被标记为 down,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。| +|TiKV 配置文件|[`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) |新增|指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。| |TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| |TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) |新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| |TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) |新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| From 1c033f552c3f8ad319708b505445e2a3e563809b Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 18 Aug 2021 10:00:06 +0800 Subject: [PATCH 27/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index e0453f7b3904..15fa53ea922b 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -45,7 +45,8 @@ TiDB 版本:5.2 |TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| |TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| |TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| -|TiKV 配置文件|[`inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| +|TiKV 配置文件|[`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) |新增|对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。| +|TiKV 配置文件|[`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| |TiKV 配置文件|[`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) |修改|表示副本允许的最长未响应时间,超过将被标记为 down,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。| |TiKV 配置文件|[`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) |新增|指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。| |TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| From f56b29a55813ed371320cb70c0850c648fc226d2 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 18 Aug 2021 10:14:25 +0800 Subject: [PATCH 28/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 15fa53ea922b..6094e4f08c16 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -138,18 +138,6 @@ TiDB 版本:5.2 [用户文档](tiflash/tiflash-configuration.md) -- **优化 TiKV 预留空间管理,提升存储稳定性** - - 在 v5.2 之前的版本中,当 TiDB 集群中的某一个 TiKV 遇到磁盘写满错误时,会挂掉并重启。从 v5.2 起,TiKV 引入两级阈值存储防护功能,在剩余可用磁盘空间触发 storage.reserve-space 阈值之后,拦截写相关操作,避免磁盘使用率继续增长从而导致挂机。同时,支持采用该预留空间进行空间回收。 - - 对于任何一个 Region,如果不过半副本所在的实例磁盘占用触发阈值,Region Leader 会避免继续给它们发 Append 消息,Region 此时仍然可读、可写。 - - 如果 Region Leader 所在实例的磁盘占用触发阈值,后续的写入请求会被返回错误;客户端收到错误之后应当回退并重试;PD 和 TiKV 应当保证在 commit-timeout 内该 Region 的 Leader 迁移到合适的地方。 - - 如果 Region 的过半副本所在实例的磁盘占用触发阈值,则该 Region 上后续的 prewrite 请求会被返回错误,以避免磁盘占用无限增长;commit、rollback、resolve-lock 等操作仍然会允许,以保证继续可读并可以通过 Drop/Truncate 表的方式回收空间;MVCC-DELETE 操作仍然被允许,以保证用户可以通过 delete 语句回收空间 - - [用户文档](/tikv-configuration-file.md#reserve-space),[#10537](https://github.com/tikv/tikv/issues/10537) - - **提升 TiKV 流控稳定性** TiKV 引入了新的流控机制代替之前的 RocksDB write stall 流控机制。相比于 write stall 机制,新的流控机制通过以下改进减少了流控对前台写入稳定性的影响: From 4ed99ce08c0b8e1ffb48d173d5ff5901251e508f Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 18 Aug 2021 14:57:39 +0800 Subject: [PATCH 29/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 6094e4f08c16..2ca39a398afa 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -34,7 +34,7 @@ TiDB 版本:5.2 |[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)|新增|控制优化器是否开启交叉估算,默认值为`ON`。| |[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| |[`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only)|新增|控制整个集群的只读状态,默认值为`OFF`。| -|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary tables 保存的 SQL 种类数量,默认值从 200 修改为 3000。| +|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary 在内存中保存的语句的最大数量。默认值从 200 修改为 3000。| |`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项| ### 配置文件参数 @@ -57,11 +57,12 @@ TiDB 版本:5.2 ### 其他 -- 升级前,请检查系统变量 `tidb_evolve_plan_baselines` 是否是 ON。如果是 ON,需要 -要改成 `OFF`,否则会导致升级失败。 -- v4.0 集群升级到 v5.0 或更高版本(dev 和 v5.1)的集群后,`tidb_multi_statement_mode` 变量的默认值由 `WARN` 变为 `OFF`。 +- 升级前,请检查系统变量 [`tidb_evolve_plan_baselines`](/system-variables.md#tidb_evolve_plan_baselines-从-v40-版本开始引入) 的值是否为 `ON`。如果为 `ON`,需要 +要将其改成 `OFF`,否则会导致升级失败。 +- v4.0 集群升级到 v5.0 或更高版本(dev 和 v5.1)的集群后,[`tidb_multi_statement_mode`](/system-variables.md#tidb_multi_statement_mode-从-v4011-版本开始引入) 变量的默认值由 `WARN` 变为 `OFF`。 +- 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 -- 升级至 5.2 版本时,TiKV 会通过`block-cache.capacity`计算`memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 “`block-cache.capacity` / 0.45 * 0.75”的值。 +- 升级至 5.2 版本时,TiKV 会通过 `block-cache.capacity` 计算 `memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 “`block-cache.capacity` / 0.45 * 0.75”的值。 例如,当[storage.block-cache] capacity = “24GB”时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 From 31e64ba45328fcd8a27f2890a5077cd295442f48 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 18 Aug 2021 15:00:59 +0800 Subject: [PATCH 30/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 2ca39a398afa..4608b40f9d0d 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -57,8 +57,7 @@ TiDB 版本:5.2 ### 其他 -- 升级前,请检查系统变量 [`tidb_evolve_plan_baselines`](/system-variables.md#tidb_evolve_plan_baselines-从-v40-版本开始引入) 的值是否为 `ON`。如果为 `ON`,需要 -要将其改成 `OFF`,否则会导致升级失败。 +- 升级前,请检查系统变量 [`tidb_evolve_plan_baselines`](/system-variables.md#tidb_evolve_plan_baselines-从-v40-版本开始引入) 的值是否为 `ON`。如果为 `ON`,需要将其改成 `OFF`,否则会导致升级失败。 - v4.0 集群升级到 v5.0 或更高版本(dev 和 v5.1)的集群后,[`tidb_multi_statement_mode`](/system-variables.md#tidb_multi_statement_mode-从-v4011-版本开始引入) 变量的默认值由 `WARN` 变为 `OFF`。 - 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 From cacf424a1027f9d4da905226b0fad6e50a2aacd1 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 18 Aug 2021 15:40:54 +0800 Subject: [PATCH 31/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 4608b40f9d0d..25ef050fa458 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -63,12 +63,7 @@ TiDB 版本:5.2 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 - 升级至 5.2 版本时,TiKV 会通过 `block-cache.capacity` 计算 `memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 “`block-cache.capacity` / 0.45 * 0.75”的值。 - 例如,当[storage.block-cache] capacity = “24GB”时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 - -- 表达式索引兼容性说明 - - 升级过程中不允许执行表达式索引的 DDL 操作 - - 通过视图进行查询时,无法使用表达式索引。 - - 表达式索引与 Binding 存在兼容性问题。当表达式索引中的表达式存在常量时,对应的查询所建的 binding 会扩大范围。假设表达式索引的表达式为 `a+1`,对应的查询为 `a+1 > 2`。则建立的 binding 为 `a+? > ?`,这会导致像 `a+2 > 2` 这样的查询也会强制走表达式索引,得到一个较差的执行计划。这同样影响 SPM 中的捕获和演进功能。 + 例如,当[storage.block-cache] capacity = “24GB” 时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 ## 新功能 From f182f199caa9e9102799e2315b67030bf6952379 Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 18 Aug 2021 15:59:36 +0800 Subject: [PATCH 32/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 25ef050fa458..f2cf06cb30cf 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -4,7 +4,7 @@ title: TiDB 5.2 Release Notes # TiDB 5.2 Release Notes -发版日期:2021 年 8 月 20 日 +发版日期:2021 年 8 月 27 日 TiDB 版本:5.2 From 40a7553c50a9db974d440eb17396489306c31872 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 23 Aug 2021 11:15:07 +0800 Subject: [PATCH 33/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index f2cf06cb30cf..8927bf7ac29c 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -179,7 +179,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - - 增加 HTTP API 支持对 TiCDC 集群进行查询和修改 [#2416](https://github.com/pingcap/ticdc/pull/2416) + - 新增 HTTP API,支持对 TiCDC 集群进行查询和修改 [#2416](https://github.com/pingcap/ticdc/pull/2416) - 新增专为 TiDB 设计的二进制 MQ 格式,比基于 JSON 的开放协议更紧凑 [#1621](https://github.com/pingcap/ticdc/pull/1621) - 移除对 file sorter 的支持 [#2114](https://github.com/pingcap/ticdc/pull/2114) - 支持日志轮替配置 [#2182](https://github.com/pingcap/ticdc/pull/2182) @@ -190,7 +190,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 支持表达式索引和依赖于虚拟生成列的索引 [#1407](https://github.com/pingcap/br/pull/1407) + Dumpling - - 支持备份不支持 `START TRANSACTION ... WITH CONSISTENT SNAPSHOT` 和 `SHOW CREATE TABLE` 语句的兼容 MySQL 的数据库 [#311](https://github.com/pingcap/dumpling/pull/311) + - 支持备份兼容 MySQL 但不支持 `START TRANSACTION ... WITH CONSISTENT SNAPSHOT` 和 `SHOW CREATE TABLE` 语句的数据库 [#311](https://github.com/pingcap/dumpling/pull/311) ## 提升改进 @@ -207,8 +207,8 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复升级可能会导致的 binding 无法被加载到缓存的问题 [#23295](https://github.com/pingcap/tidb/pull/23295) - 对 SHOW BINDINGS 结果按照 (original_sql, update_time) 有序输出 [#26139](https://github.com/pingcap/tidb/pull/26139) - 改进使用 binding 优化查询的逻辑,减少对查询的优化次数 [#26141](https://github.com/pingcap/tidb/pull/26141) - - 支持标记为删除状态的 binding 的自动垃圾回收 [#26206](https://github.com/pingcap/tidb/pull/26206) - - 在 EXPLAIN VERBOSE 结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) + - 支持标记为删除状态的 binding 进行自动垃圾回收 [#26206](https://github.com/pingcap/tidb/pull/26206) + - 在 EXPLAIN VERBOSE 的结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) - 在打开 binding 演进或者执行 `admin evolve bindings` 时报错 [#26333](https://github.com/pingcap/tidb/pull/26333) @@ -219,7 +219,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + PD - - 热点调度增加对 QPS 维度的支持,同时可以调整优先级[#3869](https://github.com/tikv/pd/issues/3869) + - 热点调度增加对 QPS 维度的支持,同时支持调整维度的优先级顺序[#3869](https://github.com/tikv/pd/issues/3869) - 热点调度支持对 TiFlash 的写热点进行调度 [#3900](https://github.com/tikv/pd/pull/3900) + TiFlash @@ -228,8 +228,8 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 新增若干字符串函数的支持:`ASCII()`, `COALESCE()`, `LENGTH()`, `POSITION()`, `TRIM()` - 新增若干数学函数的支持:`CONV()`, `CRC32()`, `DEGREES()`, `EXP()`, `LN()`, `LOG()`, `LOG10()`, `LOG2()`, `POW()`, `RADIANS()`, `ROUND(decimal)`, `SIN()`, `MOD()` - 新增若干日期函数的支持: `ADDDATE(string, real)`, `DATE_ADD(string, real)`, `DATE()` - - 更多函数支持:`INET_NTOA()`, `INET_ATON()`, `INET6_ATON`, `INET6_NTOA()` - - 支持当 new collation 打开时 MPP 模式下的 Shuffled Hash Join 和 Shuffled Hash Aggregation 运算 + - 新增更多的函数支持:`INET_NTOA()`, `INET_ATON()`, `INET6_ATON`, `INET6_NTOA()` + - 当 new collation 打开时,支持 MPP 模式下的 Shuffled Hash Join 和 Shuffled Hash Aggregation 运算 - 优化基础代码提升 MPP 性能 - 为 tidb_broadcast_join_threshold_count 和 tidb_broadcast_join_threshold_size 新增 `-1` 为正无穷值 - 支持将 `STRING` 类型转换为 `DOUBLE` 类型 @@ -241,12 +241,12 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - 为 kv client 增量扫添加并发限制 [#1899](https://github.com/pingcap/ticdc/pull/1899) - 始终在 TiCDC 内部拉取 old value [#2271](https://github.com/pingcap/ticdc/pull/2271) - - 对于不可恢复的 DML 错误快速失败退出 [#1928](https://github.com/pingcap/ticdc/pull/1928) - - 在 region 初始化后不立即执行 resolve lock [#2235](https://github.com/pingcap/ticdc/pull/2235) + - 当遇到不可恢复的 DML 错误,TiCDC 快速失败并退出 [#1928](https://github.com/pingcap/ticdc/pull/1928) + - 在 Region 初始化后不立即执行 resolve lock [#2235](https://github.com/pingcap/ticdc/pull/2235) - 优化 workerpool 以降低在高并发情况下 goroutine 的数量 [#2201](https://github.com/pingcap/ticdc/pull/2201) + Dumpling - - 通过 tidb_rowid 来对 TiDB v3.x 的表进行数据划分以节省 TiDB 的内存 [#301](https://github.com/pingcap/dumpling/pull/301) + - 通过 tidb_rowid 对 TiDB v3.x 的表进行数据划分以节省 TiDB 的内存 [#301](https://github.com/pingcap/dumpling/pull/301) - 减少 Dumpling 对 information_schema 库的访问以提高稳定性 [#305](https://github.com/pingcap/dumpling/pull/305) ## Bug 修复 @@ -305,7 +305,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#2117](https://github.com/pingcap/ticdc/pull/2117) - 修复 owner 被 kill 后 DDL 丢失的问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) - 修复 cli 在默认 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) - - 修复 TiCDC 可能遇到 `ErrSchemaStorageTableMiss` 导致 changefeed 被意外地重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) + - 修复 TiCDC 可能遇到 `ErrSchemaStorageTableMiss` 导致 changefeed 被意外重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) - 修复 TiCDC 遇到 ErrGCTTLExceeded 错误时 changefeed 不能被 remove 的问题 [#2429](https://github.com/pingcap/ticdc/pull/2429) - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#2431](https://github.com/pingcap/ticdc/pull/2431) - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 [#2417](https://github.com/pingcap/ticdc/pull/2417) @@ -318,12 +318,12 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiDB Lightning - 修复 Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1277](https://github.com/pingcap/br/pull/1272) - - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 问题 [#1290](https://github.com/pingcap/br/issues/1290) - - 修复 Lightning 因 int handle 溢出导致导入数据失败问题 [#1291](https://github.com/pingcap/br/issues/1291) + - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 的问题 [#1290](https://github.com/pingcap/br/issues/1290) + - 修复 Lightning 因 int handle 溢出导致导入数据失败的问题 [#1291](https://github.com/pingcap/br/issues/1291) - 修复 Lightning 在 local backend 模式下可能因数据丢失遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) - 修复 Lightning 恢复 table schema 时与 clustered index 不兼容的问题 [#1364](https://github.com/pingcap/br/pull/1364) + Dumpling - - 修复 Dumpling GC safepoint 设置过晚问题 [#290](https://github.com/pingcap/dumpling/pull/290) + - 修复 Dumpling GC safepoint 设置过晚的问题 [#290](https://github.com/pingcap/dumpling/pull/290) - 修复 Dumpling 在特定 MySQL 版本下卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file From 70f2178874e017c439fad83bf192ab6ed870710b Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 23 Aug 2021 13:30:08 +0800 Subject: [PATCH 34/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 8927bf7ac29c..bde94c3f42c6 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -210,7 +210,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 支持标记为删除状态的 binding 进行自动垃圾回收 [#26206](https://github.com/pingcap/tidb/pull/26206) - 在 EXPLAIN VERBOSE 的结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) - - 在打开 binding 演进或者执行 `admin evolve bindings` 时报错 [#26333](https://github.com/pingcap/tidb/pull/26333) + - 在打开 binding 演进或者执行 `admin evolve bindings` 时提供报错,避免自动演进绑定(目前为试验特性,已在当前 TiDB 版本关闭)影响到其他功能 [#26333](https://github.com/pingcap/tidb/pull/26333) + TiKV From 84d42a7e16f682770467b885c8ba4853cf89a453 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 23 Aug 2021 13:31:53 +0800 Subject: [PATCH 35/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index bde94c3f42c6..01dfcf681a16 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -35,7 +35,7 @@ TiDB 版本:5.2 |[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| |[`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only)|新增|控制整个集群的只读状态,默认值为`OFF`。| |[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary 在内存中保存的语句的最大数量。默认值从 200 修改为 3000。| -|`tidb_enable_streaming`|废弃|废弃 TiDB 配置文件中`enable-streaming`配置项| +|`tidb_enable_streaming`|废弃|系统变量 `enable-streaming`已废弃,不建议再使用。| ### 配置文件参数 From 70e7528a674bc73558963bc9247ea59a1504dca9 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 23 Aug 2021 13:57:53 +0800 Subject: [PATCH 36/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index bde94c3f42c6..da944aa99a0f 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -97,9 +97,9 @@ TiDB 版本:5.2 - **提升优化器的索引过滤规则 (Index Selection)** - 新增加了一些索引选择的裁剪规则,在通过统计信息进行对比之前,通过规则进一步对可能的选择的索引范围进行缩小。从而减小各种情况下选到不优索引的概率。 - - [用户文档](/choose-index.md) + 新增加了一些索引选择的裁剪规则,在通过统计信息进行对比之前,通过规则进一步对可能的选择的索引范围进行缩小。从而减小各种情况下选到不优索引的概率。 + + [用户文档](/choose-index.md) ### 事务 From 83edb53a553990168c59303370858f8845500525 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 23 Aug 2021 14:05:47 +0800 Subject: [PATCH 37/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index ec4b90ae2648..df90dff7be0c 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -79,7 +79,7 @@ TiDB 版本:5.2 `translate` 函数可以将字符串中出现的所有指定字符替换为其它字符, TiDB 中的 `translate` 函数不会像 Oracle 一样将空字符串视为`NULL`。 - [用户文档](functions-and-operators/string-functions.md) + [用户文档](/functions-and-operators/string-functions.md) - **支持 Spilling HashAgg** @@ -93,7 +93,7 @@ TiDB 版本:5.2 - 提升对越界估算的准确度。例如,在当天统计信息尚未更新的情况下,对于包含 `where date=Now()` 的查询,TiDB 也能准确地选中对应索引。 - 引入变量 `tidb_opt_limit_push_down_threshold` 控制优化器对 Limit/TopN 的下推行为,可以解决部分情况下因为估算误差导致 Limit/TopN 不能下推的问题。 - [用户文档](/system-variables.md/#tidb_opt_limit_push_down_threshold),[#26085](https://github.com/pingcap/tidb/issues/26085) + [用户文档](/system-variables.md#tidb_opt_limit_push_down_threshold),[#26085](https://github.com/pingcap/tidb/issues/26085) - **提升优化器的索引过滤规则 (Index Selection)** @@ -131,7 +131,7 @@ TiDB 版本:5.2 TiFlash IO Rate Limiter 提供了一个新的防止“读/写”任务之间过度竞争系统 IO 资源的机制,可以平衡系统对“读”和“写”任务的响应,并且可以根据读/写负载的情况自动限速。 - [用户文档](tiflash/tiflash-configuration.md) + [用户文档](/tiflash/tiflash-configuration.md) - **提升 TiKV 流控稳定性** @@ -140,14 +140,14 @@ TiDB 版本:5.2 在 leader 处理写入请求的入口处就进行流控,不会再卡住 raftstore/apply worker 引起次生问题 改善的流控算法,有效避免在大写入压力下导致 QPS drop 的问题 - [用户文档](tikv-configuration-file.md/##storage.flow-control) + [用户文档](/tikv-configuration-file.md/#storage.flow-control) , [#10137](https://github.com/tikv/tikv/issues/10137) - **自动检测并恢复集群中单个 TiKV 变慢带来的影响** 在 TiKV 中引入了慢节点检测机制,通过检测 TiKV Raftstore 的快慢来计算出一个分数,并通过 Store Heartbeat 上报给 PD。并且在 PD 上增加了 `evict-slow-store-scheduler` 调度器,能够自动驱逐单个变慢的 TiKV 节点上的 Leader,以降低其对整个集群性能的影响。同时,还增加了慢节点相关的报警项,帮助用户快速发现并处理问题。 - [用户文档](tikv-configuration-file.md#inspect-interval),[#10539](https://github.com/tikv/tikv/issues/10539) + [用户文档](/tikv-configuration-file.md#inspect-interval),[#10539](https://github.com/tikv/tikv/issues/10539) ### 数据迁移 From 9cf41b7cde9ed3f445ec88f887604d330aa7d455 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 23 Aug 2021 14:19:55 +0800 Subject: [PATCH 38/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index df90dff7be0c..56c169be00d7 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -140,7 +140,7 @@ TiDB 版本:5.2 在 leader 处理写入请求的入口处就进行流控,不会再卡住 raftstore/apply worker 引起次生问题 改善的流控算法,有效避免在大写入压力下导致 QPS drop 的问题 - [用户文档](/tikv-configuration-file.md/#storage.flow-control) + [用户文档](/tikv-configuration-file.md#storageflow-control) , [#10137](https://github.com/tikv/tikv/issues/10137) - **自动检测并恢复集群中单个 TiKV 变慢带来的影响** From f99ee2840e23ba7c3a0b1b2da418cfa8d30709ad Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 23 Aug 2021 16:28:51 +0800 Subject: [PATCH 39/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 56c169be00d7..5a93db2de35e 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -85,7 +85,7 @@ TiDB 版本:5.2 支持 HashAgg 的落盘。当包含 HashAgg 算子的 SQL 语句引起 OOM 时,可以尝试设置算子的并发度为 1 来触发落盘,缓解 TiDB 内存压力。 - [用户文档](/configure-memory-usage.md##tidb-server-其它内存控制策略),[#25882](https://github.com/pingcap/tidb/issues/25882) + [用户文档](/configure-memory-usage.md#tidb-server-其它内存控制策略),[#25882](https://github.com/pingcap/tidb/issues/25882) - **提升优化器的估算准确度 (Cardinality Estimation)** From 7fa9942841d8444e6eb2d466f14abe0553b9657a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 24 Aug 2021 15:27:34 +0800 Subject: [PATCH 40/65] Apply suggestions from code review Co-authored-by: Liuxiaozhen12 <82579298+Liuxiaozhen12@users.noreply.github.com> Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- releases/release-5.2.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 5a93db2de35e..6543fddef060 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -34,7 +34,7 @@ TiDB 版本:5.2 |[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)|新增|控制优化器是否开启交叉估算,默认值为`ON`。| |[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| |[`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only)|新增|控制整个集群的只读状态,默认值为`OFF`。| -|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary 在内存中保存的语句的最大数量。默认值从 200 修改为 3000。| +|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary 在内存中保存的语句的最大数量。默认值从 `200` 修改为 `3000`。| |`tidb_enable_streaming`|废弃|系统变量 `enable-streaming`已废弃,不建议再使用。| ### 配置文件参数 @@ -47,9 +47,9 @@ TiDB 版本:5.2 |TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| |TiKV 配置文件|[`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) |新增|对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。| |TiKV 配置文件|[`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| -|TiKV 配置文件|[`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) |修改|表示副本允许的最长未响应时间,超过将被标记为 down,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。| +|TiKV 配置文件|[`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) |修改|表示副本允许的最长未响应时间,超过将被标记为 `down`,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。| |TiKV 配置文件|[`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) |新增|指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。| -|TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`,代表开启。| +|TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`。| |TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) |新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| |TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) |新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| |TiKV 配置文件|[`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit) |新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。| @@ -61,9 +61,9 @@ TiDB 版本:5.2 - v4.0 集群升级到 v5.0 或更高版本(dev 和 v5.1)的集群后,[`tidb_multi_statement_mode`](/system-variables.md#tidb_multi_statement_mode-从-v4011-版本开始引入) 变量的默认值由 `WARN` 变为 `OFF`。 - 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 -- 升级至 5.2 版本时,TiKV 会通过 `block-cache.capacity` 计算 `memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 “`block-cache.capacity` / 0.45 * 0.75”的值。 +- 升级至 5.2 版本时,TiKV 会通过 `block-cache.capacity` 计算 `memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 "`block-cache.capacity` / 0.45 * 0.75" 的值。 - 例如,当[storage.block-cache] capacity = “24GB” 时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 + 例如,当[storage.block-cache] capacity = "24GB" 时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 ## 新功能 From 9f56d26c963b01c205c6d065ccf9a718e2bf7787 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 24 Aug 2021 22:58:34 +0800 Subject: [PATCH 41/65] Apply suggestions from code review Co-authored-by: Liuxiaozhen12 <82579298+Liuxiaozhen12@users.noreply.github.com> Co-authored-by: yiwu-arbug Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> Co-authored-by: Yujie Xia --- releases/release-5.2.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 6543fddef060..e2a07fa14308 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -43,7 +43,7 @@ TiDB 版本:5.2 |:----------|:-----------|:-----------|:-----------| |TiDB 配置文件|[`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable)|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| |TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| -|TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示系统表 `statements_summary` 保存的 SQL 种类的最大数量。默认值从 200 修改为 3000。| +|TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。| |TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| |TiKV 配置文件|[`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) |新增|对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。| |TiKV 配置文件|[`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| @@ -137,8 +137,8 @@ TiDB 版本:5.2 TiKV 引入了新的流控机制代替之前的 RocksDB write stall 流控机制。相比于 write stall 机制,新的流控机制通过以下改进减少了流控对前台写入稳定性的影响: - 在 leader 处理写入请求的入口处就进行流控,不会再卡住 raftstore/apply worker 引起次生问题 - 改善的流控算法,有效避免在大写入压力下导致 QPS drop 的问题 + 当 RocksDB compaction 压力堆积时,通过在 TiKV scheduler 层进行流控而不是在 RocksDB 层进行流控,避免 RocksDB write stall 造成的 raftstore 卡顿并造成 Raft 选举超时导致发生节点 leader 迁移的问题。 + 改善的流控算法,有效降低大写入压力下导致 QPS 下降的问题 [用户文档](/tikv-configuration-file.md#storageflow-control) , [#10137](https://github.com/tikv/tikv/issues/10137) @@ -155,7 +155,7 @@ TiDB 版本:5.2 DM v2.0.6 支持自动识别使用 VIP 的数据源实例切换事件(failover/计划切换),自动连接上新的数据源实例,减少数据复制的延迟和减少运维操作步骤 -- Lightning 支持自定义 CSV 数据的终止符,兼容 MySQL LOAD DATA CSV 数据格式 。使得 Lightning 可以直接使用在用户数据流转架构体系中。[#1297](https://github.com/pingcap/br/pull/1297) +- TiDB Lightning 支持自定义 CSV 数据的终止符,兼容 MySQL LOAD DATA CSV 数据格式 。使得 TiDB Lightning 可以直接使用在用户数据流转架构体系中。[#1297](https://github.com/pingcap/br/pull/1297) ### TiDB 数据共享订阅 @@ -186,7 +186,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiDB Lightning - - 支持 CSV 文件中除 \r/\n 之外的自定义行尾 [#1297](https://github.com/pingcap/br/pull/1297) + - 支持 CSV 文件中除 `\r` 和 `\n` 之外的自定义行尾 [#1297](https://github.com/pingcap/br/pull/1297) - 支持表达式索引和依赖于虚拟生成列的索引 [#1407](https://github.com/pingcap/br/pull/1407) + Dumpling @@ -326,4 +326,4 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + Dumpling - 修复 Dumpling GC safepoint 设置过晚的问题 [#290](https://github.com/pingcap/dumpling/pull/290) - - 修复 Dumpling 在特定 MySQL 版本下卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file + - 修复 Dumpling 在特定 MySQL 版本下获取上游表结构卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file From 83f5c091e87f516db8b561d33d3959c6f68ac933 Mon Sep 17 00:00:00 2001 From: qiancai Date: Tue, 24 Aug 2021 23:20:37 +0800 Subject: [PATCH 42/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index e2a07fa14308..628fb3f59c67 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -282,7 +282,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + PD - - 修复多个调度器产生调度冲突时无法生产预期调度的问题 [#3807](https://github.com/tikv/pd/issues/3807) [#3778](https://github.com/tikv/pd/issues/3778) + - 修复多个调度器之间存在调度冲突时无法产生预期调度的问题 [#3807](https://github.com/tikv/pd/issues/3807) [#3778](https://github.com/tikv/pd/issues/3778) + TiFlash @@ -303,9 +303,9 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1985](https://github.com/pingcap/ticdc/pull/1985) - 修复 changefeed 创建成功后立即失败的问题 [#2115](https://github.com/pingcap/ticdc/pull/2115) - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#2117](https://github.com/pingcap/ticdc/pull/2117) - - 修复 owner 被 kill 后 DDL 丢失的问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) - - 修复 cli 在默认 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) - - 修复 TiCDC 可能遇到 `ErrSchemaStorageTableMiss` 导致 changefeed 被意外重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) + - 修复 TiCDC Owner 崩溃时潜在的 DDL 丢失问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) + - 修复 CLI 在默认的 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) + - 修复 TiCDC 遇到 `ErrSchemaStorageTableMiss` 错误时可能导致 changefeed 被意外重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) - 修复 TiCDC 遇到 ErrGCTTLExceeded 错误时 changefeed 不能被 remove 的问题 [#2429](https://github.com/pingcap/ticdc/pull/2429) - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#2431](https://github.com/pingcap/ticdc/pull/2431) - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 [#2417](https://github.com/pingcap/ticdc/pull/2417) @@ -320,10 +320,10 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复 Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1277](https://github.com/pingcap/br/pull/1272) - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 的问题 [#1290](https://github.com/pingcap/br/issues/1290) - 修复 Lightning 因 int handle 溢出导致导入数据失败的问题 [#1291](https://github.com/pingcap/br/issues/1291) - - 修复 Lightning 在 local backend 模式下可能因数据丢失遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) + - 修复 Lightning 在 local backend 模式下因数据丢失可能遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) - 修复 Lightning 恢复 table schema 时与 clustered index 不兼容的问题 [#1364](https://github.com/pingcap/br/pull/1364) + Dumpling - - 修复 Dumpling GC safepoint 设置过晚的问题 [#290](https://github.com/pingcap/dumpling/pull/290) - - 修复 Dumpling 在特定 MySQL 版本下获取上游表结构卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file + - 修复 Dumpling GC safepoint 设置过晚导致数据导出失败的问题 [#290](https://github.com/pingcap/dumpling/pull/290) + - 修复 Dumpling 在特定 MySQL 版本下获取上游表名时卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file From 3a8686c97fafc95ab338d79ff64f07ad43c23477 Mon Sep 17 00:00:00 2001 From: qiancai Date: Tue, 24 Aug 2021 23:29:21 +0800 Subject: [PATCH 43/65] Update release-5.2.0.md --- releases/release-5.2.0.md | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 628fb3f59c67..36b29ca80421 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -27,33 +27,33 @@ TiDB 版本:5.2 ### 系统变量 -| 变量名 | 修改类型 | 描述 | -|:----------|:-----------|:-----------| -|[`default_authentication_plugin`](/system-variables.md#default_authentication_plugin)|新增|设置服务器对外通告的默认身份验证方式,默认值为 `mysql_native_password`。| -|[`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated)|新增|控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。| -|[`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment)|新增|控制优化器是否开启交叉估算,默认值为`ON`。| -|[`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold)|新增|设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。| -|[`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only)|新增|控制整个集群的只读状态,默认值为`OFF`。| -|[`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入)|修改|表示 statement summary 在内存中保存的语句的最大数量。默认值从 `200` 修改为 `3000`。| -|`tidb_enable_streaming`|废弃|系统变量 `enable-streaming`已废弃,不建议再使用。| +| 变量名 | 修改类型 | 描述 | +| :---------- | :----------- | :----------- | +| [`default_authentication_plugin`](/system-variables.md#default_authentication_plugin) | 新增 | 设置服务器对外通告的默认身份验证方式,默认值为 `mysql_native_password`。 | +| [`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated) | 新增 | 控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。 | +| [`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment) | 新增 | 控制优化器是否开启交叉估算,默认值为`ON`。 | +| [`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold) | 新增 | 设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。 | +| [`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only) | 新增 | 控制整个集群的只读状态,默认值为`OFF`。 | +| [`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入) | 修改 | 表示 statement summary 在内存中保存的语句的最大数量。默认值从 `200` 修改为 `3000`。 | +| `tidb_enable_streaming` | 废弃 | 系统变量 `enable-streaming`已废弃,不建议再使用。 | ### 配置文件参数 -| 配置文件 | 配置项 | 修改类型 | 描述 | -|:----------|:-----------|:-----------|:-----------| -|TiDB 配置文件|[`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable)|新增|控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。| -|TiDB 配置文件|[`security.auto-tls`](/tidb-configuration-file.md#auto-tls)|新增|控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。| -|TiDB 配置文件|[`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count)|修改|表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。| -|TiDB 配置文件|`experimental.allow-expression-index` |废弃|废弃 TiDB 配置文件中`allow-expression-index` 配置项| -|TiKV 配置文件|[`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) |新增|对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。| -|TiKV 配置文件|[`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) |新增|TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。| -|TiKV 配置文件|[`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) |修改|表示副本允许的最长未响应时间,超过将被标记为 `down`,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。| -|TiKV 配置文件|[`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) |新增|指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。| -|TiKV 配置文件|[`storage.flow-control.enable`](/tikv-configuration-file.md#enable) |新增|表示是否开启 TiKV 流量控制机制。默认值为 `true`。| -|TiKV 配置文件|[`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) |新增|当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。| -|TiKV 配置文件|[`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) |新增|当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。| -|TiKV 配置文件|[`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit) |新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。| -|TiKV 配置文件|[`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit) |新增|当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。| +| 配置文件 | 配置项 | 修改类型 | 描述 | +| :---------- | :----------- | :----------- | :----------- | +| TiDB 配置文件 | [`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable) | 新增 | 控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。 | +| TiDB 配置文件 | [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) | 新增 | 控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。 | +| TiDB 配置文件 | [`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count) | 修改 | 表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。 | +| TiDB 配置文件 | `experimental.allow-expression-index` | 废弃 | 废弃 TiDB 配置文件中`allow-expression-index` 配置项 | +| TiKV 配置文件 | [`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) | 新增 | 对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。 | +| TiKV 配置文件 | [`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) | 新增 | TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。 | +| TiKV 配置文件 | [`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) | 修改 | 表示副本允许的最长未响应时间,超过将被标记为 `down`,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。 | +| TiKV 配置文件 | [`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) | 新增 | 指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。 | +| TiKV 配置文件 | [`storage.flow-control.enable`](/tikv-configuration-file.md#enable) | 新增 | 表示是否开启 TiKV 流量控制机制。默认值为 `true`。 | +| TiKV 配置文件 | [`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) | 新增 | 当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。 | +| TiKV 配置文件 | [`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) | 新增 | 当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。 | +| TiKV 配置文件 | [`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit) | 新增 | 当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。 | +| TiKV 配置文件 | [`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit) | 新增 | 当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。 | ### 其他 From 272231ee1e337d993ec27bfc61ad0d1bc0700823 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 24 Aug 2021 23:31:52 +0800 Subject: [PATCH 44/65] Update releases/release-5.2.0.md Co-authored-by: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com> --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 36b29ca80421..7da926eaeae6 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -265,7 +265,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 修复了操作符 `<=>` 不能正确生效的问题 [#24477](https://github.com/pingcap/tidb/issues/24477) - 修复并行 `Apply` 算子的数据竞争问题 [#23280](https://github.com/pingcap/tidb/issues/23280) - 修复对 PartitionUnion 算子的 IndexMerge 结果排序时出现 `index out of range` 错误 [#23919](https://github.com/pingcap/tidb/issues/23919) - - 修复 `tidb_snapshot` 被允许设置为非预期的过大值,而可能造成事务隔离性被破坏的问题 [25680]( https://github.com/pingcap/tidb/issues/25680) + - 修复 `tidb_snapshot` 被允许设置为非预期的过大值,而可能造成事务隔离性被破坏的问题 [#25680]( https://github.com/pingcap/tidb/issues/25680) - 修复 ODBC 类常数(例如 `{d '2020-01-01'}`)不能被用作表达式的问题 [#25531](https://github.com/pingcap/tidb/issues/25531) - 修复 `SELECT DISTINCT` 被转化为 Batch Get 而导致结果不正确的问题 [#25320](https://github.com/pingcap/tidb/issues/25320) - 修复无法触发将查询从 TiFlash 回退到 TiKV 的问题 [#23665](https://github.com/pingcap/tidb/issues/23665) [#24421](https://github.com/pingcap/tidb/issues/24421) From 1bc4610c02e970239f8d5369d92fca875f7d2ae7 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 25 Aug 2021 09:54:28 +0800 Subject: [PATCH 45/65] Update releases/release-5.2.0.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 7da926eaeae6..7dfeb3a2e62f 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -58,7 +58,7 @@ TiDB 版本:5.2 ### 其他 - 升级前,请检查系统变量 [`tidb_evolve_plan_baselines`](/system-variables.md#tidb_evolve_plan_baselines-从-v40-版本开始引入) 的值是否为 `ON`。如果为 `ON`,需要将其改成 `OFF`,否则会导致升级失败。 -- v4.0 集群升级到 v5.0 或更高版本(dev 和 v5.1)的集群后,[`tidb_multi_statement_mode`](/system-variables.md#tidb_multi_statement_mode-从-v4011-版本开始引入) 变量的默认值由 `WARN` 变为 `OFF`。 +- v4.0 集群升级到 v5.2 集群后,[`tidb_multi_statement_mode`](/system-variables.md#tidb_multi_statement_mode-从-v4011-版本开始引入) 变量的默认值由 `WARN` 变为 `OFF`。 - 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 - 升级至 5.2 版本时,TiKV 会通过 `block-cache.capacity` 计算 `memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 "`block-cache.capacity` / 0.45 * 0.75" 的值。 From c5aa5789fc11b3f17dbc19d9503775fbb058a79c Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 <82579298+Liuxiaozhen12@users.noreply.github.com> Date: Wed, 25 Aug 2021 15:12:56 +0800 Subject: [PATCH 46/65] Update releases/release-5.2.0.md Co-authored-by: Grace Cai --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 7dfeb3a2e62f..13de7a5f3e37 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -43,7 +43,7 @@ TiDB 版本:5.2 | :---------- | :----------- | :----------- | :----------- | | TiDB 配置文件 | [`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable) | 新增 | 控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。 | | TiDB 配置文件 | [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) | 新增 | 控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。 | -| TiDB 配置文件 | [`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count) | 修改 | 表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。 | +| TiDB 配置文件 | [`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count) | 修改 | 表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。 | | TiDB 配置文件 | `experimental.allow-expression-index` | 废弃 | 废弃 TiDB 配置文件中`allow-expression-index` 配置项 | | TiKV 配置文件 | [`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) | 新增 | 对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。 | | TiKV 配置文件 | [`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) | 新增 | TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。 | From f768c5599eb1c3b10a1426700c034dd50db5591f Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 25 Aug 2021 17:41:15 +0800 Subject: [PATCH 47/65] Update releases/release-5.2.0.md Co-authored-by: Grace Cai --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 13de7a5f3e37..d6cf8fc9e6fb 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -317,7 +317,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiDB Lightning - - 修复 Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1277](https://github.com/pingcap/br/pull/1272) + - 修复 TiDB Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1272](https://github.com/pingcap/br/pull/1272) - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 的问题 [#1290](https://github.com/pingcap/br/issues/1290) - 修复 Lightning 因 int handle 溢出导致导入数据失败的问题 [#1291](https://github.com/pingcap/br/issues/1291) - 修复 Lightning 在 local backend 模式下因数据丢失可能遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) From c5548470b06ff93b0dde25e33397ba2a1db5e9d1 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 25 Aug 2021 18:02:18 +0800 Subject: [PATCH 48/65] bug fix: pr --> issue --- releases/release-5.2.0.md | 97 +++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index d6cf8fc9e6fb..46d089ddacbf 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -23,37 +23,37 @@ TiDB 版本:5.2 > **注意:** > -> 当从一个早期的 TiDB 版本升级到 TiDB 5.2 时,如需了解所有中间版本对应的兼容性更改说明,请查看对应版本的 [Release Note](/releases/release-notes.md)。 +> 当从一个早期的 TiDB 版本升级到 TiDB 5.2 时,如需了解所有中间版本对应的兼容性更改说明,请查看对应版本的 [Release Note](/releases/release-notes.md)。 ### 系统变量 -| 变量名 | 修改类型 | 描述 | -| :---------- | :----------- | :----------- | -| [`default_authentication_plugin`](/system-variables.md#default_authentication_plugin) | 新增 | 设置服务器对外通告的默认身份验证方式,默认值为 `mysql_native_password`。 | -| [`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated) | 新增 | 控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。 | -| [`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment) | 新增 | 控制优化器是否开启交叉估算,默认值为`ON`。 | -| [`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold) | 新增 | 设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。 | -| [`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only) | 新增 | 控制整个集群的只读状态,默认值为`OFF`。 | -| [`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入) | 修改 | 表示 statement summary 在内存中保存的语句的最大数量。默认值从 `200` 修改为 `3000`。 | -| `tidb_enable_streaming` | 废弃 | 系统变量 `enable-streaming`已废弃,不建议再使用。 | +| 变量名 | 修改类型 | 描述 | +| :---------- | :----------- | :----------- | +| [`default_authentication_plugin`](/system-variables.md#default_authentication_plugin) | 新增 | 设置服务器对外通告的默认身份验证方式,默认值为 `mysql_native_password`。 | +| [`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated) | 新增 | 控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。 | +| [`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment) | 新增 | 控制优化器是否开启交叉估算,默认值为`ON`。 | +| [`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold) | 新增 | 设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。 | +| [`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only) | 新增 | 控制整个集群的只读状态,默认值为`OFF`。 | +| [`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入) | 修改 | 表示 statement summary 在内存中保存的语句的最大数量。默认值从 `200` 修改为 `3000`。 | +| `tidb_enable_streaming` | 废弃 | 系统变量 `enable-streaming`已废弃,不建议再使用。 | ### 配置文件参数 -| 配置文件 | 配置项 | 修改类型 | 描述 | -| :---------- | :----------- | :----------- | :----------- | -| TiDB 配置文件 | [`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable) | 新增 | 控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。 | -| TiDB 配置文件 | [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) | 新增 | 控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。 | -| TiDB 配置文件 | [`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count) | 修改 | 表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。 | -| TiDB 配置文件 | `experimental.allow-expression-index` | 废弃 | 废弃 TiDB 配置文件中`allow-expression-index` 配置项 | -| TiKV 配置文件 | [`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) | 新增 | 对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。 | -| TiKV 配置文件 | [`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) | 新增 | TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。 | -| TiKV 配置文件 | [`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) | 修改 | 表示副本允许的最长未响应时间,超过将被标记为 `down`,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。 | -| TiKV 配置文件 | [`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) | 新增 | 指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。 | -| TiKV 配置文件 | [`storage.flow-control.enable`](/tikv-configuration-file.md#enable) | 新增 | 表示是否开启 TiKV 流量控制机制。默认值为 `true`。 | -| TiKV 配置文件 | [`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) | 新增 | 当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。 | +| 配置文件 | 配置项 | 修改类型 | 描述 | +| :---------- | :----------- | :----------- | :----------- | +| TiDB 配置文件 | [`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable) | 新增 | 控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。 | +| TiDB 配置文件 | [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) | 新增 | 控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。 | +| TiDB 配置文件 | [`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count) | 修改 | 表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。 | +| TiDB 配置文件 | `experimental.allow-expression-index` | 废弃 | 废弃 TiDB 配置文件中`allow-expression-index` 配置项 | +| TiKV 配置文件 | [`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) | 新增 | 对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。 | +| TiKV 配置文件 | [`raftstore.inspect-interval`](/tikv-configuration-file.md#inspect-interval) | 新增 | TiKV 每隔一段时间会检测 Raftstore 线程的延迟情况,该配置项设置检测的时间间隔。默认值为 `500ms`。 | +| TiKV 配置文件 | [`raftstore.max-peer-down-duration`](/tikv-configuration-file.md#max-peer-down-duration) | 修改 | 表示副本允许的最长未响应时间,超过将被标记为 `down`,后续 PD 会尝试将其删掉。默认值从 `5m` 修改为 `10m`。 | +| TiKV 配置文件 | [`server.raft-client-queue-size`](/tikv-configuration-file.md#raft-client-queue-size) | 新增 | 指定 TiKV 中发送 Raft 消息的缓冲区大小。默认值为 8192。 | +| TiKV 配置文件 | [`storage.flow-control.enable`](/tikv-configuration-file.md#enable) | 新增 | 表示是否开启 TiKV 流量控制机制。默认值为 `true`。 | +| TiKV 配置文件 | [`storage.flow-control.memtables-threshold`](/tikv-configuration-file.md#memtables-threshold) | 新增 | 当 KvDB 的 memtable 的个数达到该阈值时,流控机制开始工作。默认值为 5。 | | TiKV 配置文件 | [`storage.flow-control.l0-files-threshold`](/tikv-configuration-file.md#l0-files-threshold) | 新增 | 当 KvDB 的 L0 文件个数达到该阈值时,流控机制开始工作。默认值为 9。 | -| TiKV 配置文件 | [`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit) | 新增 | 当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。 | -| TiKV 配置文件 | [`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit) | 新增 | 当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。 | +| TiKV 配置文件 | [`storage.flow-control.soft-pending-compaction-bytes-limit`](/tikv-configuration-file.md#soft-pending-compaction-bytes-limit) | 新增 | 当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝部分写入请求并报错。默认值为 "192GB"。 | +| TiKV 配置文件 | [`storage.flow-control.hard-pending-compaction-bytes-limit`](/tikv-configuration-file.md#hard-pending-compaction-bytes-limit) | 新增 | 当 KvDB 的 pending compaction bytes 达到该阈值时,流控机制开始拒绝所有写入请求并报错。默认值为 "1024GB"。 | ### 其他 @@ -94,13 +94,13 @@ TiDB 版本:5.2 - 引入变量 `tidb_opt_limit_push_down_threshold` 控制优化器对 Limit/TopN 的下推行为,可以解决部分情况下因为估算误差导致 Limit/TopN 不能下推的问题。 [用户文档](/system-variables.md#tidb_opt_limit_push_down_threshold),[#26085](https://github.com/pingcap/tidb/issues/26085) - + - **提升优化器的索引过滤规则 (Index Selection)** 新增加了一些索引选择的裁剪规则,在通过统计信息进行对比之前,通过规则进一步对可能的选择的索引范围进行缩小。从而减小各种情况下选到不优索引的概率。 - + [用户文档](/choose-index.md) - + ### 事务 - **锁视图 (Lock View) 成为 GA 特性** @@ -109,11 +109,11 @@ TiDB 版本:5.2 在 5.2 中,Lock View 新增以下特性: - - 对于 Lock View 所属的各张表中的 SQL Digest 列, v5.1 额外增加了一列显示对应的归一化的 SQL 语句文本,无需手动查询 SQL Digest 对应的语句。 + - 对于 Lock View 所属的各张表中的 SQL Digest 列, v5.1 额外增加了一列显示对应的归一化的 SQL 语句文本,无需手动查询 SQL Digest 对应的语句。 - 增加了 `TIDB_DECODE_SQL_DIGESTS` 函数用于在集群中查询一组 SQL Digest 所对应的 SQL 语句的归一化形式(即去除格式和参数后的形式),简化了查询某一事务历史执行过的语句的操作 - - 在 `DATA_LOCK_WAITS` 和 `DEADLOCKS` 系统表中,增加一列显示 key 中解出的表名、row id、索引值等信息,简化了定位 key 所属的表、解读 key 的内容等信息的操作。 + - 在 `DATA_LOCK_WAITS` 和 `DEADLOCKS` 系统表中,增加一列显示 key 中解出的表名、row id、索引值等信息,简化了定位 key 所属的表、解读 key 的内容等信息的操作。 - 支持在 `DEADLOCKS` 表中收集可重试的死锁错误的信息,以便于排查因可重试的死锁引发的问题。默认不收集,可通过配置选项 `pessimistic-txn.deadlock-history-collect-retryable` 启用 。 - - `TIDB_TRX` 系统表支持区分正在执行查询的事务和闲置中的事务,即将原来的 `Normal` 状态拆分成 `Running` 和 `Idle` 状态。 + - `TIDB_TRX` 系统表支持区分正在执行查询的事务和闲置中的事务,即将原来的 `Normal` 状态拆分成 `Running` 和 `Idle` 状态。 用户文档: @@ -183,7 +183,7 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 新增专为 TiDB 设计的二进制 MQ 格式,比基于 JSON 的开放协议更紧凑 [#1621](https://github.com/pingcap/ticdc/pull/1621) - 移除对 file sorter 的支持 [#2114](https://github.com/pingcap/ticdc/pull/2114) - 支持日志轮替配置 [#2182](https://github.com/pingcap/ticdc/pull/2182) - + + TiDB Lightning - 支持 CSV 文件中除 `\r` 和 `\n` 之外的自定义行尾 [#1297](https://github.com/pingcap/br/pull/1297) @@ -205,10 +205,10 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 提升内置函数 `str_to_date` 在格式指定器中 `%b/%M/%r/%T` 的 MySQL 兼容性 [#25767](https://github.com/pingcap/tidb/pull/25767) - 修复因对同一条查询重复创建不同 binding 可能导致的多个 TiDB 上 binding cache 不一致的问题 [#26015](https://github.com/pingcap/tidb/pull/26015) - 修复升级可能会导致的 binding 无法被加载到缓存的问题 [#23295](https://github.com/pingcap/tidb/pull/23295) - - 对 SHOW BINDINGS 结果按照 (original_sql, update_time) 有序输出 [#26139](https://github.com/pingcap/tidb/pull/26139) + - 对 `SHOW BINDINGS` 结果按照 (original_sql, update_time) 有序输出 [#26139](https://github.com/pingcap/tidb/pull/26139) - 改进使用 binding 优化查询的逻辑,减少对查询的优化次数 [#26141](https://github.com/pingcap/tidb/pull/26141) - 支持标记为删除状态的 binding 进行自动垃圾回收 [#26206](https://github.com/pingcap/tidb/pull/26206) - - 在 EXPLAIN VERBOSE 的结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) + - 在 `EXPLAIN VERBOSE` 的结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) - 在打开 binding 演进或者执行 `admin evolve bindings` 时提供报错,避免自动演进绑定(目前为试验特性,已在当前 TiDB 版本关闭)影响到其他功能 [#26333](https://github.com/pingcap/tidb/pull/26333) @@ -231,7 +231,6 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 新增更多的函数支持:`INET_NTOA()`, `INET_ATON()`, `INET6_ATON`, `INET6_NTOA()` - 当 new collation 打开时,支持 MPP 模式下的 Shuffled Hash Join 和 Shuffled Hash Aggregation 运算 - 优化基础代码提升 MPP 性能 - - 为 tidb_broadcast_join_threshold_count 和 tidb_broadcast_join_threshold_size 新增 `-1` 为正无穷值 - 支持将 `STRING` 类型转换为 `DOUBLE` 类型 - 通过多线程优化右外连接中的非连接数据 - 支持在 MPP 查询中自动清理过期的 Region 信息 @@ -246,8 +245,8 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 优化 workerpool 以降低在高并发情况下 goroutine 的数量 [#2201](https://github.com/pingcap/ticdc/pull/2201) + Dumpling - - 通过 tidb_rowid 对 TiDB v3.x 的表进行数据划分以节省 TiDB 的内存 [#301](https://github.com/pingcap/dumpling/pull/301) - - 减少 Dumpling 对 information_schema 库的访问以提高稳定性 [#305](https://github.com/pingcap/dumpling/pull/305) + - 通过 `tidb_rowid` 对 TiDB v3.x 的表进行数据划分以节省 TiDB 的内存 [#301](https://github.com/pingcap/dumpling/pull/301) + - 减少 Dumpling 对 `information_schema` 库的访问以提高稳定性 [#305](https://github.com/pingcap/dumpling/pull/305) ## Bug 修复 @@ -300,15 +299,15 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1985](https://github.com/pingcap/ticdc/pull/1985) - - 修复 changefeed 创建成功后立即失败的问题 [#2115](https://github.com/pingcap/ticdc/pull/2115) - - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#2117](https://github.com/pingcap/ticdc/pull/2117) - - 修复 TiCDC Owner 崩溃时潜在的 DDL 丢失问题 [#2252](https://github.com/pingcap/ticdc/pull/2252) + - 修复 TiCDC owner 在刷新 checkpoint 时异常退出的问题 [#1902](https://github.com/pingcap/ticdc/issues/1902) + - 修复 changefeed 创建成功后立即失败的问题 [#2113](https://github.com/pingcap/ticdc/issues/2113) + - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#1625](https://github.com/pingcap/ticdc/issues/1625) + - 修复 TiCDC Owner 崩溃时潜在的 DDL 丢失问题 [#1260](https://github.com/pingcap/ticdc/issues/1260) - 修复 CLI 在默认的 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) - - 修复 TiCDC 遇到 `ErrSchemaStorageTableMiss` 错误时可能导致 changefeed 被意外重置的问题 [#2423](https://github.com/pingcap/ticdc/pull/2423) - - 修复 TiCDC 遇到 ErrGCTTLExceeded 错误时 changefeed 不能被 remove 的问题 [#2429](https://github.com/pingcap/ticdc/pull/2429) - - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#2431](https://github.com/pingcap/ticdc/pull/2431) - - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 [#2417](https://github.com/pingcap/ticdc/pull/2417) + - 修复 TiCDC 遇到 `ErrSchemaStorageTableMiss` 错误时可能导致 changefeed 被意外重置的问题 [#2422](https://github.com/pingcap/ticdc/issues/2422) + - 修复 TiCDC 遇到 `ErrGCTTLExceeded` 错误时 changefeed 不能被 remove 的问题 [#2391](https://github.com/pingcap/ticdc/issues/2391) + - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#1259](https://github.com/pingcap/ticdc/issues/1259) [#2424](https://github.com/pingcap/ticdc/issues/2424) + - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 [#2230](https://github.com/pingcap/ticdc/issues/2230) + Backup & Restore (BR) @@ -318,12 +317,12 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiDB Lightning - 修复 TiDB Lightning 解析 Parquet 文件中 `DECIMAL` 类型数据失败的问题 [#1272](https://github.com/pingcap/br/pull/1272) - - 修复 Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 的问题 [#1290](https://github.com/pingcap/br/issues/1290) - - 修复 Lightning 因 int handle 溢出导致导入数据失败的问题 [#1291](https://github.com/pingcap/br/issues/1291) - - 修复 Lightning 在 local backend 模式下因数据丢失可能遇到 checksum 不匹配的问题 [#1413](https://github.com/pingcap/br/pull/1413) - - 修复 Lightning 恢复 table schema 时与 clustered index 不兼容的问题 [#1364](https://github.com/pingcap/br/pull/1364) + - 修复 TiDB Lightning 恢复 table schema 时报错 "Error 9007: Write conflict" 的问题 [#1290](https://github.com/pingcap/br/issues/1290) + - 修复 TiDB Lightning 因 int handle 溢出导致导入数据失败的问题 [#1291](https://github.com/pingcap/br/issues/1291) + - 修复 TiDB Lightning 在 local backend 模式下因数据丢失可能遇到 checksum 不匹配的问题 [#1403](https://github.com/pingcap/br/issues/1403) + - 修复 TiDB Lightning 恢复 table schema 时与 clustered index 不兼容的问题 [#1362](https://github.com/pingcap/br/issues/1362) + Dumpling - 修复 Dumpling GC safepoint 设置过晚导致数据导出失败的问题 [#290](https://github.com/pingcap/dumpling/pull/290) - - 修复 Dumpling 在特定 MySQL 版本下获取上游表名时卡住的问题 [#325](https://github.com/pingcap/dumpling/pull/325) \ No newline at end of file + - 修复 Dumpling 在特定 MySQL 版本下获取上游表名时卡住的问题 [#322](https://github.com/pingcap/dumpling/issues/322) From 1262440cac3fd703554853d0785abb4a6ac925fb Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Thu, 26 Aug 2021 17:26:16 +0800 Subject: [PATCH 49/65] Update releases/release-5.2.0.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- releases/release-5.2.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 46d089ddacbf..58e9fe2dd0c8 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -125,11 +125,11 @@ TiDB 版本:5.2 ### 稳定性 -- **新增 TiFlash IO 限流功能** +- **新增 TiFlash I/O 限流功能** - TiFlash IO 限流功能主要针对磁盘带宽较小且明确知道磁盘带宽大小的云盘场景,默认关闭。 + TiFlash I/O 限流功能主要针对磁盘带宽较小且明确知道磁盘带宽大小的云盘场景,默认关闭。 - TiFlash IO Rate Limiter 提供了一个新的防止“读/写”任务之间过度竞争系统 IO 资源的机制,可以平衡系统对“读”和“写”任务的响应,并且可以根据读/写负载的情况自动限速。 + TiFlash I/O Rate Limiter 提供了一个新的防止“读/写”任务之间过度竞争系统 IO 资源的机制,可以平衡系统对“读”和“写”任务的响应,并且可以根据读/写负载的情况自动限速。 [用户文档](/tiflash/tiflash-configuration.md) From ccb8bd3bf0a0eda507be2c55eb75f14802a0f420 Mon Sep 17 00:00:00 2001 From: xixirangrang <35301108+hfxsd@users.noreply.github.com> Date: Thu, 26 Aug 2021 17:26:29 +0800 Subject: [PATCH 50/65] Update releases/release-5.2.0.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 58e9fe2dd0c8..7f4a029b91a2 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -13,7 +13,7 @@ TiDB 版本:5.2 - 新增表达式索引 (Expression index),极大提升查询的性能。 - 提升优化器的估算准确度 (Cardinality Estimation),有助于选中最优的执行计划。 - 锁视图 (Lock View) 成为 GA 特性,提供更直观方便的方式观察事务加锁情况以及排查死锁问题。 -- 新增 TiFlash IO 限流功能,提升 TiFlash 读写稳定性。 +- 新增 TiFlash I/O 限流功能,提升 TiFlash 读写稳定性。 - 优化 TiKV 预留空间管理,提升存储稳定性。 - 为 TiKV 引入新的流控机制代替之前的 RocksDB write stall 流控机制,提升 TiKV 流控稳定性。 - 简化 Data Migration (DM) 工具运维,降低运维管理的成本。 From 0b4b77d4adac87bb38dc991d628daa96c5436d14 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 26 Aug 2021 20:03:57 +0800 Subject: [PATCH 51/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 7f4a029b91a2..5fbceeb0d2c6 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -61,9 +61,6 @@ TiDB 版本:5.2 - v4.0 集群升级到 v5.2 集群后,[`tidb_multi_statement_mode`](/system-variables.md#tidb_multi_statement_mode-从-v4011-版本开始引入) 变量的默认值由 `WARN` 变为 `OFF`。 - 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 -- 升级至 5.2 版本时,TiKV 会通过 `block-cache.capacity` 计算 `memory-usage-limit`,此时 `memory-usage-limit` 的计算结果默认为 "`block-cache.capacity` / 0.45 * 0.75" 的值。 - - 例如,当[storage.block-cache] capacity = "24GB" 时,`memory-usage-limit`为 40GB (24GB/0.45*0.75 = 40GB)。 ## 新功能 From 0899fdb8d92e0839d5e74b5cc8d47e361668fb92 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 26 Aug 2021 21:52:24 +0800 Subject: [PATCH 52/65] Apply suggestions from code review Co-authored-by: Yujie Xia --- releases/release-5.2.0.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 5fbceeb0d2c6..8c1cb5ef9a61 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -176,7 +176,6 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 + TiCDC - - 新增 HTTP API,支持对 TiCDC 集群进行查询和修改 [#2416](https://github.com/pingcap/ticdc/pull/2416) - 新增专为 TiDB 设计的二进制 MQ 格式,比基于 JSON 的开放协议更紧凑 [#1621](https://github.com/pingcap/ticdc/pull/1621) - 移除对 file sorter 的支持 [#2114](https://github.com/pingcap/ticdc/pull/2114) - 支持日志轮替配置 [#2182](https://github.com/pingcap/ticdc/pull/2182) @@ -209,10 +208,6 @@ TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的 - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) - 在打开 binding 演进或者执行 `admin evolve bindings` 时提供报错,避免自动演进绑定(目前为试验特性,已在当前 TiDB 版本关闭)影响到其他功能 [#26333](https://github.com/pingcap/tidb/pull/26333) -+ TiKV - - - 限制 TiCDC sink 的内存消耗 [#10305](https://github.com/tikv/tikv/pull/10305) - - 为 TiCDC old value 缓存增加基于内存使用量的上限 [#10313](https://github.com/tikv/tikv/pull/10313) + PD From c68558ca9eaec530f7d66744028f27bda070a3e5 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 27 Aug 2021 10:32:38 +0800 Subject: [PATCH 53/65] Update releases/release-5.2.0.md Co-authored-by: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com> --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 8c1cb5ef9a61..f8ab190a7812 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -106,7 +106,7 @@ TiDB 版本:5.2 在 5.2 中,Lock View 新增以下特性: - - 对于 Lock View 所属的各张表中的 SQL Digest 列, v5.1 额外增加了一列显示对应的归一化的 SQL 语句文本,无需手动查询 SQL Digest 对应的语句。 + - 对于 Lock View 所属的各张表中的 SQL Digest 列, v5.2 额外增加了一列显示对应的归一化的 SQL 语句文本,无需手动查询 SQL Digest 对应的语句。 - 增加了 `TIDB_DECODE_SQL_DIGESTS` 函数用于在集群中查询一组 SQL Digest 所对应的 SQL 语句的归一化形式(即去除格式和参数后的形式),简化了查询某一事务历史执行过的语句的操作 - 在 `DATA_LOCK_WAITS` 和 `DEADLOCKS` 系统表中,增加一列显示 key 中解出的表名、row id、索引值等信息,简化了定位 key 所属的表、解读 key 的内容等信息的操作。 - 支持在 `DEADLOCKS` 表中收集可重试的死锁错误的信息,以便于排查因可重试的死锁引发的问题。默认不收集,可通过配置选项 `pessimistic-txn.deadlock-history-collect-retryable` 启用 。 From a8c28b58865ad13c4dfb9f4bc009703c57d36669 Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 27 Aug 2021 11:06:31 +0800 Subject: [PATCH 54/65] Update telemetry.md --- telemetry.md | 1 - 1 file changed, 1 deletion(-) diff --git a/telemetry.md b/telemetry.md index acbec40fe052..596e6786b3fa 100644 --- a/telemetry.md +++ b/telemetry.md @@ -24,7 +24,6 @@ TiDB、TiUP 及 TiDB Dashboard 默认会收集使用情况信息,并将这些 - 集群的部署情况,包括各个组件所在的硬件信息(CPU、内存、磁盘)、组件版本号、操作系统版本号等 - 系统的查询请求状态,例如查询请求次数、持续时长等 - 系统组件的使用情况,例如 Async Commit 功能是否有被使用 -- 内建函数的使用情况,包括 SQL 查询中各种函数的使用频次,其中不包含函数参数的具体信息 可以通过执行以下 SQL 语句查看 TiDB 收集的使用情况信息内容: From 6c33f774e1c47d10500afc7d2197432699428b0a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 11:08:38 +0800 Subject: [PATCH 55/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index f8ab190a7812..fe53f02b4b9b 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -164,12 +164,6 @@ TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes 支持在使用 Apple M1 芯片的本地 Mac 机器上使用 `tiup playground` 命令。 -### 遥测 - -TiDB 在遥测中新增收集特定功能的使用情况,比如内建函数的使用情况。 - -若要了解所收集的信息详情及如何禁用该行为,请参见[遥测](https://docs.pingcap.com/zh/tidb/stable/telemetry)文档。 - ## 功能增强 + Tools From 4bd3f73c98098d9aec0b9af3bc3cb75c257d19a8 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 11:09:56 +0800 Subject: [PATCH 56/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index fe53f02b4b9b..e98e0fcba5f9 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -33,7 +33,6 @@ TiDB 版本:5.2 | [`tidb_enable_auto_increment_in_generated`](/system-variables.md#tidb_enable_auto_increment_in_generated) | 新增 | 控制是否允许在创建生成列或者表达式索引时引用自增列,默认值为`OFF`。 | | [`tidb_opt_enable_correlation_adjustment`](/system-variables.md#tidb_opt_enable_correlation_adjustment) | 新增 | 控制优化器是否开启交叉估算,默认值为`ON`。 | | [`tidb_opt_limit_push_down_threshold`](/system-variables.md#tidb_opt_limit_push_down_threshold) | 新增 | 设置将 Limit 和 TopN 算子下推到 TiKV 的阈值,默认值为`100`。 | -| [`tidb_restricted_read_only`](/system-variables.md#tidb_restricted_read_only) | 新增 | 控制整个集群的只读状态,默认值为`OFF`。 | | [`tidb_stmt_summary_max_stmt_count`](/system-variables.md#tidb_stmt_summary_max_stmt_count-从-v40-版本开始引入) | 修改 | 表示 statement summary 在内存中保存的语句的最大数量。默认值从 `200` 修改为 `3000`。 | | `tidb_enable_streaming` | 废弃 | 系统变量 `enable-streaming`已废弃,不建议再使用。 | From 0cb72d725c6f5d8d42ff0555695f08edc7cfd46d Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 11:48:42 +0800 Subject: [PATCH 57/65] Apply suggestions from code review --- releases/release-5.2.0.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index e98e0fcba5f9..56dd89553eb2 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -169,7 +169,7 @@ TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes + TiCDC - - 新增专为 TiDB 设计的二进制 MQ 格式,比基于 JSON 的开放协议更紧凑 [#1621](https://github.com/pingcap/ticdc/pull/1621) + - 新增专为 TiDB 设计的比基于 JSON 的开放协议更紧凑的二进制 MQ 格式 [#1621](https://github.com/pingcap/ticdc/pull/1621) - 移除对 file sorter 的支持 [#2114](https://github.com/pingcap/ticdc/pull/2114) - 支持日志轮替配置 [#2182](https://github.com/pingcap/ticdc/pull/2182) @@ -200,8 +200,6 @@ TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes - 在 `EXPLAIN VERBOSE` 的结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) - 在打开 binding 演进或者执行 `admin evolve bindings` 时提供报错,避免自动演进绑定(目前为试验特性,已在当前 TiDB 版本关闭)影响到其他功能 [#26333](https://github.com/pingcap/tidb/pull/26333) - - + PD - 热点调度增加对 QPS 维度的支持,同时支持调整维度的优先级顺序[#3869](https://github.com/tikv/pd/issues/3869) From d10922aa77ef0428aaac09fe97bf4fe4f3cda038 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 12:07:17 +0800 Subject: [PATCH 58/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 56dd89553eb2..63b2e690870d 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -61,6 +61,8 @@ TiDB 版本:5.2 - 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 +- 从 TiDB 5.2 起,为了提高系统安全性,TiDB 建议(但不要求)对客户端的连接进行加密。如需加密,请在 TiDB 升级前或升级后将 `security.auto-tls` 设置为 `true`。当客户端开启连接加密时(大部分客户端会默认开启),MySQL 的 `have_openssl` 和 `have_ssl` 变量值从 `DISABLED` 更改为 `YES`,TiDB 将对连接数据进行加密。 + ## 新功能 ### SQL From 4aef1cde61e977ad6e94603a8ab9a4f326dabf7a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 13:42:17 +0800 Subject: [PATCH 59/65] Apply suggestions from code review Co-authored-by: Yujie Xia --- releases/release-5.2.0.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 63b2e690870d..45ae50076a84 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -135,11 +135,10 @@ TiDB 版本:5.2 TiKV 引入了新的流控机制代替之前的 RocksDB write stall 流控机制。相比于 write stall 机制,新的流控机制通过以下改进减少了流控对前台写入稳定性的影响: - 当 RocksDB compaction 压力堆积时,通过在 TiKV scheduler 层进行流控而不是在 RocksDB 层进行流控,避免 RocksDB write stall 造成的 raftstore 卡顿并造成 Raft 选举超时导致发生节点 leader 迁移的问题。 - 改善的流控算法,有效降低大写入压力下导致 QPS 下降的问题 + - 当 RocksDB compaction 压力堆积时,通过在 TiKV scheduler 层进行流控而不是在 RocksDB 层进行流控,避免 RocksDB write stall 造成的 raftstore 卡顿并造成 Raft 选举超时导致发生节点 leader 迁移的问题。 + - 改善流控算法,有效降低大写入压力下导致 QPS 下降的问题 - [用户文档](/tikv-configuration-file.md#storageflow-control) - , [#10137](https://github.com/tikv/tikv/issues/10137) + [用户文档](/tikv-configuration-file.md#storageflow-control), [#10137](https://github.com/tikv/tikv/issues/10137) - **自动检测并恢复集群中单个 TiKV 变慢带来的影响** @@ -288,7 +287,7 @@ TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes - 修复 changefeed 创建成功后立即失败的问题 [#2113](https://github.com/pingcap/ticdc/issues/2113) - 修复不合法格式的 rules filter 导致 changefeed 失败的问题 [#1625](https://github.com/pingcap/ticdc/issues/1625) - 修复 TiCDC Owner 崩溃时潜在的 DDL 丢失问题 [#1260](https://github.com/pingcap/ticdc/issues/1260) - - 修复 CLI 在默认的 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2385](https://github.com/pingcap/ticdc/pull/2385) + - 修复 CLI 在默认的 sort-engine 选项上与 4.0.x 集群的兼容性问题 [#2373](https://github.com/pingcap/ticdc/issues/2373) - 修复 TiCDC 遇到 `ErrSchemaStorageTableMiss` 错误时可能导致 changefeed 被意外重置的问题 [#2422](https://github.com/pingcap/ticdc/issues/2422) - 修复 TiCDC 遇到 `ErrGCTTLExceeded` 错误时 changefeed 不能被 remove 的问题 [#2391](https://github.com/pingcap/ticdc/issues/2391) - 修复 TiCDC 同步大表到 cdclog 失败的问题 [#1259](https://github.com/pingcap/ticdc/issues/1259) [#2424](https://github.com/pingcap/ticdc/issues/2424) From f6fd5bb66758dc95efe7c9750a8fd9b9b785bb56 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 13:45:03 +0800 Subject: [PATCH 60/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 45ae50076a84..d0aed1f3afa9 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -201,6 +201,7 @@ TiCDC 支持 HTTP 协议 OpenAPI 对 TiCDC 任务进行管理,在 Kubernetes - 在 `EXPLAIN VERBOSE` 的结果中显示查询优化是否使用了某个 binding [#26930](https://github.com/pingcap/tidb/pull/26930) - 增加新的状态变量 `last_plan_binding_update_time` 用于查看当前 TiDB 实例中 binding cache 对应的时间戳 [#26340](https://github.com/pingcap/tidb/pull/26340) - 在打开 binding 演进或者执行 `admin evolve bindings` 时提供报错,避免自动演进绑定(目前为试验特性,已在当前 TiDB 版本关闭)影响到其他功能 [#26333](https://github.com/pingcap/tidb/pull/26333) + + PD - 热点调度增加对 QPS 维度的支持,同时支持调整维度的优先级顺序[#3869](https://github.com/tikv/pd/issues/3869) From eaf733b8c670036acbb165dd2831df7b5c2cfe30 Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 27 Aug 2021 19:06:03 +0800 Subject: [PATCH 61/65] Update tidb-configuration-file.md --- tidb-configuration-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tidb-configuration-file.md b/tidb-configuration-file.md index ce415145268d..b2719fc4f189 100644 --- a/tidb-configuration-file.md +++ b/tidb-configuration-file.md @@ -323,7 +323,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `auto-tls` + 控制 TiDB 启动时是否自动生成 TLS 证书。 -+ 默认值:`true` ++ 默认值:`false` ## performance From dcb3618d992cf81601195a7286d618f10ce57b86 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 19:13:07 +0800 Subject: [PATCH 62/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index d0aed1f3afa9..6f46a7436304 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -61,7 +61,7 @@ TiDB 版本:5.2 - 升级前,请检查 TiDB 配置项 [`feedback-probability`](/tidb-configuration-file.md#feedback-probability) 的值。如果不为 0,升级后会触发 "panic in the recoverable goroutine" 报错,但不影响升级。 - 兼容 MySQL 5.7 的 noop 变量 `innodb_default_row_format`,配置此变量无实际效果 [#23541](https://github.com/pingcap/tidb/issues/23541)。 -- 从 TiDB 5.2 起,为了提高系统安全性,TiDB 建议(但不要求)对客户端的连接进行加密。如需加密,请在 TiDB 升级前或升级后将 `security.auto-tls` 设置为 `true`。当客户端开启连接加密时(大部分客户端会默认开启),MySQL 的 `have_openssl` 和 `have_ssl` 变量值从 `DISABLED` 更改为 `YES`,TiDB 将对连接数据进行加密。 +- 从 TiDB 5.2 起,为了提高系统安全性,建议(但不要求)对来自客户端的连接进行传输层加密,TiDB 提供 Auto TLS 功能在 TiDB 服务器端自动配置并开启加密。要使用 Auto TLS 功能,请在 TiDB 升级前将 TiDB 配置文件中的 [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) 设置为 `true`。 ## 新功能 From 2ff5c74aa3dfda0babb5ed7cddd92bb72cce4a29 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 27 Aug 2021 19:17:19 +0800 Subject: [PATCH 63/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index 6f46a7436304..edb31372926b 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -135,8 +135,8 @@ TiDB 版本:5.2 TiKV 引入了新的流控机制代替之前的 RocksDB write stall 流控机制。相比于 write stall 机制,新的流控机制通过以下改进减少了流控对前台写入稳定性的影响: - - 当 RocksDB compaction 压力堆积时,通过在 TiKV scheduler 层进行流控而不是在 RocksDB 层进行流控,避免 RocksDB write stall 造成的 raftstore 卡顿并造成 Raft 选举超时导致发生节点 leader 迁移的问题。 - - 改善流控算法,有效降低大写入压力下导致 QPS 下降的问题 + - 当 RocksDB compaction 压力堆积时,通过在 TiKV scheduler 层进行流控而不是在 RocksDB 层进行流控,避免 RocksDB write stall 造成的 raftstore 卡顿并造成 Raft 选举超时导致发生节点 leader 迁移的问题。 + - 改善流控算法,有效降低大写入压力下导致 QPS 下降的问题 [用户文档](/tikv-configuration-file.md#storageflow-control), [#10137](https://github.com/tikv/tikv/issues/10137) From f0a3d99c3dc7f7a8f87caec8a710ac654903af51 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 27 Aug 2021 19:19:57 +0800 Subject: [PATCH 64/65] Update releases/release-5.2.0.md --- releases/release-5.2.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-5.2.0.md b/releases/release-5.2.0.md index edb31372926b..cb464d895f75 100644 --- a/releases/release-5.2.0.md +++ b/releases/release-5.2.0.md @@ -41,7 +41,7 @@ TiDB 版本:5.2 | 配置文件 | 配置项 | 修改类型 | 描述 | | :---------- | :----------- | :----------- | :----------- | | TiDB 配置文件 | [`pessimistic-txn.deadlock-history-collect-retryable`](/tidb-configuration-file.md#deadlock-history-collect-retryable) | 新增 | 控制 [`INFORMATION\_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) 表中是否收集可重试的死锁错误信息。 | -| TiDB 配置文件 | [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) | 新增 | 控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `true`。 | +| TiDB 配置文件 | [`security.auto-tls`](/tidb-configuration-file.md#auto-tls) | 新增 | 控制 TiDB 启动时是否自动生成 TLS 证书,默认值为 `false`。 | | TiDB 配置文件 | [`stmt-summary.max-stmt-count`](/tidb-configuration-file.md#max-stmt-count) | 修改 | 表示 statement summary tables 中保存的 SQL 种类的最大数量。默认值从 `200` 修改为 `3000`。 | | TiDB 配置文件 | `experimental.allow-expression-index` | 废弃 | 废弃 TiDB 配置文件中`allow-expression-index` 配置项 | | TiKV 配置文件 | [`raftstore.cmd-batch`](/tikv-configuration-file.md#cmd-batch) | 新增 | 对请求进行攒批的控制开关,开启后可显著提升写入性能。默认值为 `true`。 | From d825de03f8df83e39bddc5d8e84df652e837a81b Mon Sep 17 00:00:00 2001 From: qiancai Date: Fri, 27 Aug 2021 19:50:15 +0800 Subject: [PATCH 65/65] Update v5.2-performance-benchmarking-with-tpcc.md --- benchmark/v5.2-performance-benchmarking-with-tpcc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/v5.2-performance-benchmarking-with-tpcc.md b/benchmark/v5.2-performance-benchmarking-with-tpcc.md index 6617a430e88e..03851267ed8b 100644 --- a/benchmark/v5.2-performance-benchmarking-with-tpcc.md +++ b/benchmark/v5.2-performance-benchmarking-with-tpcc.md @@ -6,7 +6,7 @@ title: TiDB TPC-C 性能对比测试报告 - v5.2.0 对比 v5.1.1 ## 测试概况 -本次测试对比了 TiDB v5.2.0 和 v5.1.1 在 OLTP 场景下的 TPC-C 性能表现。结果显示,由于 v5.2.0 默认设置了 `security.auto-tls: true`, v5.2.0 相比于 v5.1.1 在 TPC-C 性能上下降了4.30%。 +本次测试对比了 TiDB v5.2.0 和 v5.1.1 在 OLTP 场景下的 TPC-C 性能表现。结果显示,v5.2.0 相比于 v5.1.1 在 TPC-C 性能上下降了 4.22%。 ## 测试环境 (AWS EC2)