TiDB 4.0.2 Release Notes
发版日期:2020 年 7 月 1 日
TiDB 版本:4.0.2
兼容性
-
TiDB
-
移除慢查询日志和 statement summary 表中的敏感信息 #18130
- 禁止在 sequence 缓存中出现负数 #18103
CLUSTER_INFO表中不再显示 tombstone 状态的 TiKV 和 TiFlash 节点 #17953- 诊断规则
current-load变更为node-check#17660 -
PD
-
持久化
store-limit配置项,弃用store-balance-rate配置 #2557
新更改
新功能
-
TiDB
-
支持在
INSERT语句中使用MEMORY_QUOTA()hint #18101 - 支持基于 TLS 证书 SAN 属性的登录认证 #17698
REGEXP()函数支持 collation #17581- 支持会话和全局变量
sql_select_limit#17604 - 支持新增分区时自动分裂 Region 的功能 #17665
- 支持函数
IF()/BITXOR()/BITNEG()/JSON_LENGTH()下推到 TiFlash Coprocessor 上执行 #17651 #17592 - 支持聚合函数
APPROX_COUNT_DISTINCT(),用于快速计算COUNT(DISTINCT)的近似值 #18120 - TiFlash 支持了 collation,支持相应的函数下推 #17705
INFORMATION_SCHEMA.INSPECTION_RESULT表新增STATUS_ADDRESS列,用于展示节点的 status 地址 #17695MYSQL.BIND_INFO表新增SOURCE列,用于展示 binding 的创建方式 #17587PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST表新增PLAN_IN_CACHE和PLAN_CACHE_HITS列,用于展示 plan cache 的使用情况 #17493- 新增配置项
enable-collect-execution-info和会话级变量tidb_enable_collect_execution_info用于控制是否记录算子的执行信息并打印到慢查询日志中 #18073 #18072 - 新增全局变量
tidb_slow_log_masking,用于控制是否脱敏慢查询日志中的查询 #17694 - 增加对 TiKV 配置项
storage.block-cache.capacity的诊断规则 #17671 - 新增 SQL 语法
BACKUP/RESTORE来进行数据备份恢复 #15274 -
TiKV
-
TiKV Control 支持
encryption-meta命令 #8103 - 增加
RocksDB::WriteImpl相关的 perf context 监控 #7991 -
PD
-
对 leader 执行
remove-peer操作时,让这个 operator 不等待超时,立刻失败 #2551 - 对 TiFlash 节点设置更合理的 store limit 配置默认值 #2559
-
TiFlash
-
Coprocessor 支持新的聚合函数
APPROX_COUNT_DISTINCT - 存储引擎中的粗糙索引默认开启
- 支持运行在 ARM 架构
- Coprocessor 支持
JSON_LENGTH函数下推 -
TiCDC
-
支持 Capture 节点扩容时迁移部分子任务到新加节点 #665
- Cli 中添加清理 TiCDC GC TTL 的功能 #652
- 在 MQ sink 中支持输出 Canal 协议 #649
改进提升
-
TiDB
-
降低当集群中 CM-Sketch 占用过多内存时,Golang 内存分配带来的查询延迟 #17545
- 缩短 TiKV 故障恢复时集群 QPS 的恢复时间 #17681
- 为 partition 表上的查询支持聚合函数下推到 TiKV 或者 TiFlash coprocessor #17655
- 提升索引上等值条件的行数估算准确度 #17611
-
TiKV
-
优化 PD client panic 日志信息 #8093
- 重新加回
process_cpu_seconds_total和process_start_time_seconds监控 #8029 -
TiFlash
-
提升从旧版本升级时的兼容性
- 降低 delta index 的内存使用量
- 使用更高效的 delta index update 算法
-
Tools
-
Backup & Restore (BR)
- 提升多表场景下的恢复数据性能 #266
Bug 修复
-
TiDB
-
修复
tidb_isolation_read_engines更改后从 plan cache 中获取的执行计划不正确的问题 #17570 - 修复某些情况下
EXPLAIN FOR CONNECTION返回运行时错误的问题 #18124 - 修复某些情况下
last_plan_from_cache结果不正确的问题 #18111 - 修复执行 plan cache 中的
UNIX_TIMESTAMP()时的运行时错误 #18002 #17673 - 修复
HashJoin算子的孩子节点返回NULL类型的结果时,计算过程中的运行时错误 #17937 - 修复当在同一个数据库中并发执行
DROP DATABASE语句和相关 DDL 语句时的运行错误 #17659 - 修复当
COERCIBILITY()的输入参数是用户变量时结果不正确的问题 #17890 - 修复
IndexMergeJoin算子偶尔卡住的问题 #18091 - 修复
IndexMergeJoin算子触发 oom-action 后被取消执行时卡住的问题 #17654 - 修复
Insert和Replace算子的内存统计过大的问题 #18062 - 修复在执行
DROP DATABASE的同时对同一个数据库中的表DROP TABLE时,数据不再向 TiFlash 同步的问题 #17901 - 修复 TiDB 和对象存储服务之间
BACKUP/RESTORE失败的问题 #17844 - 修复权限检查失败时的错误信息 #17724
- 修复
DELETE/UPDATE语句的 feedback 被错误收集的问题 #17843 - 禁止更改非
AUTO_RANDOM表的AUTO_RANDOM_BASE值 #17828 - 修复通过
ALTER TABLE ... RENAME在数据库间移动表时,AUTO_RANDOM列分配到错误结果的问题 #18243 - 修复系统变量
tidb_isolation_read_engines的值中没有tidb时某些系统表无法访问的问题 #17719 - 修复 JSON 中大整数和浮点数比较的精度问题 #17717
- 修复
COUNT()函数的返回类型中DECIMAL不正确的问题 #17704 - 修复
HEX()函数的输入类型是二进制字符串时结果不正确的问题 #17620 - 修复查询
INFORMATION_SCHEMA.INSPECTION_SUMMARY表没有指定过滤条件时返回结果为空的问题 #17697 - 修复
ALTER USER语句使用哈希后的密码更新用户信息后,密码不符合预期的问题 #17646 - 为
ENUM和SET类型支持 collation #17701 - 修复
CREATE TABLE时预切分 Region 的超时机制不生效的问题 #17619 - 修复某些情况下 DDL 后台作业重试时,schema 未正确更新导致的 DDL 原子性问题 #17608
- 修复
FIELD()函数的参数包含 column 时结果不正确的问题 #17562 - 修复某些情况下
max_execution_timehint 不生效的问题 #17536 - 修复某些情况下
EXPLAIN ANALYZE的结果中并发信息被多次打印的问题 #17350 - 修复对
STR_TO_DATE函数的%h解析和 MySQL 不兼容问题 #17498 - 修复
tidb_replica_read设置成follower,并且 Region 的 leader 和 follower/learner 之间出现网络分区后,TiDB 发送的 request 一直重试的问题 #17443 - 修复某些情况下 TiDB 一直 ping PD 的 follower 的问题 #17947
- 修复老版本的 range partition 表无法在 4.0 集群中加载的问题 #17983
- 修复当多个 Region 的请求同时超时时整个 SQL 语句超时的问题 #17585
- 修复解析日期类型的分隔符时和 MySQL 不兼容的问题 #17501
- 修复少数情况下发给 TiKV 的请求错发给 TiFlash 的问题 #18105
- 修复当前事务中主键被插入/删除但主键的锁却被另一事务清除可能造成结果不一致的问题 #18250
-
TiKV
-
修复 status server 的内存安全问题 #8101
- 修复 json 数字比较的精度丢失问题 #8087
- 修改错误的慢查询日志 #8050
- 修复 merge 可能导致 peer 无法被移除的问题 #8048
- 修复
tikv-ctl recover-mvcc未清除无效的悲观锁 #8047 - 修复一些遗漏的 Titan 监控 #7997
- 修复向 TiCDC 返回
duplicated error的问题 #7887 -
PD
-
验证
pd-server.dashboard-address配置项的正确性 #2517 - 修复设置
store-limit-mode为auto时可能引起 PD panic 的问题 #2544 - 修复某些情况下热点不能识别的问题 #2463
- 修复某些情况下 Placement Rules 会使 store 状态变更为 tombstone 的进程被阻塞的问题 #2546
- 修复某些情况下从低版本升级后,PD 无法正常启动的问题 #2564
-
TiFlash
-
修正 proxy 遇到
region not found时可能的 panic 的问题 - 修正 schema 同步遇到 I/O exception 时可能无法继续同步的问题
