TiDB 4.0.15 Release Notes
发版日期:2021 年 9 月 27 日
TiDB 版本:4.0.15
兼容性更改
TiDB
修复在新会话中执行
SHOW VARIABLES
速度较慢的问题。该修复回退了 #21045 中的部分更改,可能会引起兼容性问题。#24326以下 Bug 修复涉及执行结果变化,可能引起兼容性变化:
- 修复了
greatest(datetime) union null
返回空字符串的问题 #26532 - 修复了
having
可能执行错误的问题 #26496 - 修复了当
between
表达式两边的 collation 不一致会导致查询结果错误的问题 #27146 - 修复了
extract
函数的参数是负数时查询结果错误的问题 #27236 - 修复了当
group_concat
函数包含非bin
的 collation 时查询结果错误的问题 #27429 - 修复将
Apply
算子转为Join
时漏掉列信息的问题 #27233 - 修复将非法字符串转为
DATE
类型时的非预期行为 #26762 - 修复开启 New Collation 时多列的
count distinct
返回结果错误的问题 #27091
- 修复了
功能增强
TiKV
- 支持动态修改 TiCDC 配置 #10645
提升改进
TiDB
- 基于直方图的 row count 来触发 auto-analyze #24237
TiKV
PD
- 提升了 PD 之间同步 Region 信息的性能 #3932
Tools
Backup & Restore (BR)
Dumpling
TiDB Lightning
- 支持导入数据到带有表达式索引或带有基于虚拟生成列的索引的表中 #1404
TiCDC
- TiCDC 总是内部从 TiKV 拉取 old value,提升 TiCDC 易用性 #2397
- 当某张表的 Region 从某个 TiKV 节点全部迁移走时,减少 goroutine 资源的使用 #2284
- 在高并发下减少 workerpool 中创建的 goroutine 数量 #2211
- 异步执行 DDL 语句,不阻塞其他 changefeed #2295
- 为所有 KV 客户端创建全局共享的 gRPC 连接池 #2531
- 遇到无法恢复的 DML 错误立即退出,不进行重试 #1724
- 优化 Unified Sorter 使用内存排序时的内存管理 #2553
- 为执行 DDL 语句新增 Prometheus 监控指标 #2595 #2669
- 禁止使用不同的 major 和 minor 版本启动 TiCDC 节点 #2601
- 移除
file sorter
文件排序器 #2325 - 清理被删 changefeed 的监控数据和已退出处理节点的监控数据 #2156
- 优化 Region 初始化后的清锁算法 #2188
Bug 修复
TiDB
TiKV
PD
TiFlash
- 修复多盘部署时数据不一致的潜在问题
- 修复当查询过滤条件包含诸如
CONSTANT
、<
、<=
、>
、>=
或COLUMN
时出现错误结果的问题 - 修复写入压力大时 metrics 中 store size 不准确的问题
- 修复 TiFlash 多盘部署时无法恢复数据的潜在问题
- 修复 TiFlash 长时间运行后无法回收 Delta 历史数据的潜在问题
Tools
Backup & Restore (BR)
- 修复了备份和恢复中平均速度计算不准确的问题 #1405
TiCDC
- 修复集成测试中遇到由于 DDL Job 重复导致的
ErrSchemaStorageTableMiss
错误 #2422 - 修复遇到
ErrGCTTLExceeded
错误时 changefeed 无法被删除的问题 #2391 - 修复
capture list
命令输出中出现已过期 capture 的问题 #2388 - 修复 TiCDC processor 出现死锁的问题 #2017
- 修复重新调度一张表时多个处理器将数据写入同一张表引发的数据不一致的问题 #2230
- 修复元数据管理出现
EtcdWorker
快照隔离被破坏的问题 #2557 - 修复因为 DDL sink 错误导致 changefeed 不能被停止的问题 #2552
- 修复一个 TiCDC Open Protocol 的问题:当一个事务中没有任何数据写入时候,TiCDC 产生一个空消息 #2612
- 修复 TiCDC 在处理无符号
TINYINT
类型时崩溃的问题 #2648 - 减小 gRPC 窗口来避免 Region 数量过多时触发内存溢出 #2202
- 修复因 TiCDC capture 过多 Regions 出现的 OOM 问题 #2673
- 修复将
mysql.TypeString, mysql.TypeVarString, mysql.TypeVarchar
等类型的数据编码为 JSON 时进程崩溃的问题 #2758 - 修复在创建新的 changefeed 时可能发生的内存泄漏问题 #2389
- 修复同步任务从一个表结构变更的 finish TS 开始时 DDL 处理失败的问题 #2603
- 修复 owner 在执行 DDL 语句时崩溃可能导致 DDL 任务丢失的问题 #1260
- 修复
SinkManager
中对 map 的不安全并发访问 #2298
- 修复集成测试中遇到由于 DDL Job 重复导致的