title: TiDB 4.0 RC.1 Release Notes
TiDB 4.0 RC.1 Release Notes
发版日期:2020 年 4 月 28 日
TiDB 版本:4.0.0-rc.1
兼容性变化
重点修复的 Bug
TiDB
TiKV
TiFlash
- 修正多数据路径配置下进行 rename table 会导致数据丢失的问题
- 修正当 Region 处于 merge 状态时读取产生的数据错误
- 修正当 Region 处于非 normal 状态时读取产生的数据错误
- 修正 TiFlash 中表名的映射方式以正确支持
recover table
/flashback table
- 修正数据存储路径以解决
rename table
时潜在的数据丢失问题 - 修正 Super batch 开启后,有一定概率 TiDB panic 的问题
- 修正在线更新时的读模型以优化读性能
TiCDC
Backup & Restore (BR)
新功能
TiDB
TiKV
Placement Driver (PD)
- 移除
config manager
以使其它组件自行控制它们的配置 #2349
- 移除
TiFlash
- 添加 DeltaTree 引擎读写负载相关 metrics 上报
- 缓存
handle
列和version
列减小单次读请求的磁盘 I/O - 增加了 TiFlash 对于
FromUnixTime
和Date_format
函数的支持 - 根据第一块盘估算全局状态并上报
- Grafana 添加 DeltaTree 引擎读写负载相关图表
- 优化 TiFlash chunk encode decimal 的数据
- 实现了 Diagnostics(SQL 诊断)的 gRPC API,以支持
INFORMATION_SCHEMA.CLUSTER_INFO
等系统表的查询
TiCDC
Backup & Restore (BR)
- 支持在存储的 URL 中配置 S3/GCS #246
Bug 修复
TiDB
- 修复系统表由于 unsigned 列定义导致无法正确显示负数的问题 #16004
- 当使用
use_index_merge
hint 包含不存在的索引时添加警告 #15960 - 禁止多个 TiDB server 共享同一个临时目录 #16026
- 修复打开 plan cache 时,执行
explain for connection
语句 panic 的问题 #16285 - 修复显示
tidb_capture_plan_baselines
系统变量不正确的问题 #16048 - 修复
prepare
语句中的group by
语句解析错误的问题 #16377 - 修复
analyze primary key
可能 panic 的问题 #16081 - 修复
cluster_info
系统表中 TiFlash 节点信息错误的问题 #16024 - 修复 index merge 可能 panic 的问题 #16360
- 修复 index merge 遇到 generated column 时导致结果错误的问题 #16359
- 修复
show create table
语句显示 sequence 默认值错误的问题 #16526 - 修复主键使用 sequence 作为默认值时出现
not-null
的错误的问题 #16510 - 修复当 TiKV 持续返回
StaleCommand
期间执行 SQL 卡住不报错的问题 #16530 - 修复
CREATE DATABASE
时仅指定COLLATE
时会报错的问题,同时在SHOW CREATE DATABASE
结果中添加缺失的COLLATE
部分 #16540 - 修复打开 plan-cache 时,分区裁剪失败的问题 #16723
- 修复点查在 handle 溢出时返回错误结果的问题 #16755
- 修复等值时间查询
slow_query
系统表返回错误结果的问题 #16806
TiKV
- 解决 OpenSSL 的安全性问题:CVE-2020-1967 #7622
- 避免将 BatchRollback 产生的 rollback 记录标为保护的记录以改善冲突较多场景下的性能 #7604
- 修复锁竞争严重的场景下,不必要地唤醒事务导致多余的重试和性能下降的问题 #7551
- 修复多次 merge 时,Region 可能卡住的问题 #7518
- 修复删除 learner 时,learner 可能并未被删除的问题 #7518
- 修复 follower read 可能使 raft-rs panic 的问题 #7408
- 修复 SQL 可能因 “group by constant” 错误失败的问题 #7383
- 修复当一个乐观锁对应的 primary lock 是悲观锁时,该乐观锁可能阻塞读的问题 #7328
Placement Driver (PD)
TiFlash
- 禁用存储引擎的粗糙索引优化
- 修正对 Region 进行 resolve lock 时遇到需要跳过的 lock 抛异常的问题
- 修正 Coprocessor 统计信息收集的 NPE
- 修正 Region meta 的检查以保证 Region Split/Region Merge 流程的正确性
- 修正对 Coprocessor response 大小未做估算导致的消息大小超过 gRPC 限制的问题
- 修正 TiFlash 对
AdminCmdType::Split
命令的处理