title: TiDB 4.0 GA Release Notes
TiDB 4.0 GA Release Notes
发版日期:2020 年 5 月 28 日
TiDB 版本:4.0.0
兼容性变化
TiDB
- 优化事务过大时系统的报错信息,方便排查问题 #17219
TiCDC
重点修复的 Bug
TiKV
TiFlash
- 修复因 Raft Admin Command 处理逻辑不正确,系统 panic 导致数据可能会丢失的问题
新功能
TiDB
- 新增
committer-concurrency
配置项,用于控制 retry commit 阶段的 goroutine 数量 #16849 - 支持
show table partition regions
语法 #17294 - 新增
tmp-storage-quota
配置项,用于限制 tidb-server 使用的临时磁盘空间 #15700 - 创建和更改表时新增检查分区表是否使用唯一前缀索引的功能 #17213
- 支持
insert/replace into tbl_name partition
(partition_name_list
) 语句 #17313 - Distinct 函数支持检查 collations 的值 #17240
- 哈希分区裁剪时支持
is null
过滤条件 #17310 - 分区表中支持
admin check index
、admin cleanup index
和admin recover index
#17392 #17405 #17317 - 支持
in
表达式的范围分区裁剪 #17320
- 新增
TiFlash
- Learner 读取数据时通过 Lock CF 的
min commit ts
值过滤出符合条件的 TSO 对应的数据 - 若 Timestamp 类型的值小于
1970-01-01 00:00:00
,系统显式报错以避免计算结果出错 - Search log 的正则表达式支持使用 flag 参数
- Learner 读取数据时通过 Lock CF 的
TiKV
- 支持
ascii_bin
和latin1_bin
编码的排序规则 #7919
- 支持
PD
Tools
Bug 修复
TiDB
- 修复收发消息有不符合预期的超时,禁止合并发向 TiFlash 的消息 #17307
- 修复分区裁剪时未正确区分有符号/无符号整数的错误,并提高了性能 #17230
- 修复 3.1.1 升级到 4.0 时由于
mysql.user
表不兼容导致升级失败的问题 #17300 - 修复
update
语句分区选择不正确的问题 #17305 - 修复从 TiKV 收到未知错误消息时系统 panic 的问题 #17380
- 修复创建按 key 分区的分区表由于处理逻辑不正确导致系统 panic 的问题 #17242
- 修复某些情况下优化器处理逻辑不正确导致错误地选择
Index Merge Join
的问题 #17365 - 修复 Grafana 中
SELECT
语句的duration
的监控指标不准确的问题 #16561 - 修复当系统发生错误时,GC 线程卡住的问题 #16915
- 修复当列的类型是
Boolean
时,由于UNIQUE
约束比较的逻辑不正确导致输出结果不正确的问题 #17306 - 修复
tidb_opt_agg_push_down
开启且聚合函数下推分区表信息时,由于逻辑处理不正确导致系统 panic 的问题 #17328 - 修复某些情况下会访问已经发生故障的 TiKV 的问题 #17342
- 修复
tidb.toml
中的配置项isolation-read
不生效时的问题 #17322 - 修复通过
hint
强制执行流式聚合时由于逻辑处理不正确导致输出的结果顺序不正确的问题 #17347 - 修复不同
SQL_MODE
时insert
处理DIV
的行为 #17314
TiFlash
- 修复 Search log 功能正则表达式匹配的行为与其他组件不一致的问题
- 默认关闭 Raft Compact Log Command 延迟处理的优化,避免节点大量写入数据时重启时间过长的问题
- 修复部分场景因 TiDB 执行
DROP DATABASE
处理逻辑不正确导致系统启动不成功的问题 - 修复采集
Server_info
中 CPU 信息方式与其他组件不一样的问题 - 修复开启
batch coprocessor
功能时,执行Query
报错Too Many Pings
的问题 - 修复 Dashboard 因未上报
deploy path
信息导致相关信息显示不正确的问题
TiKV
PD
Tools