TiDB 5.1.1 Release Notes

    发版日期:2021 年 7 月 30 日

    TiDB 版本:5.1.1

    • TiDB

      • 对于从 v4.0 升级至 v5.1 的集群, 的默认值为 OFF。建议使用客户端库的多语句功能,参考 tidb_multi_statement_mode 文档
      • 将系统变量 tidb_stmt_summary_max_stmt_count 的默认值从 200 修改为 3000 #25874
      • 访问 table_storage_stats 表需要 SUPER 权限
      • 访问 information_schema.user_privileges 表需要 mysql.user 上的 SELECT 权限来显示其他人的权限 #26311
      • 访问 information_schema.cluster_hardware 需要 CONFIG 权限
      • 访问 information_schema.cluster_info 表需要 PROCESS 权限 #26297
      • 访问 information_schema.cluster_load 表需要 PROCESS 权限
      • 访问 information_schema.cluster_systeminfo 表需要 PROCESS 权限 #26297
      • 访问 information_schema.cluster_log 表需要 PROCESS 权限
      • 访问 表需要 CONFIG 权限 #26150
    • TiDB Dashboard

      • 新增 OIDC SSO 支持。通过设置兼容 OIDC 标准的 SSO 服务(例如 Okta、Auth0 等),用户可以在不输入 SQL 密码的情况下登录 TiDB Dashboard
    • TiFlash

      • 支持 DAG 请求中的 HAVING() 函数
      • Stale Read 成为正式功能 (GA)
      • 避免对 paramMarker 的分配以加快数据插入速度 #26076
      • 支持稳定结果模式,使查询结果更稳定
      • 支持将函数 json_unquote() 下推到 TiKV #26265
      • 支持 MPP 查询的重试
      • 对于 point getbatch point get 算子,在唯一索引写入过程中,将悲观锁 LOCK 记录转化为 PUT 记录 #26225
      • 禁止使用 Stale 查询来进行创建视图
      • 在 MPP 模式下彻底下推 COUNT(DISTINCT) 聚合函数 #26194
      • 在发起 MPP 查询之前检查 TiFlash 的可用性
      • 不允许将读时间戳设置为将来的时间 #25763
      • 当聚合函数在 EXPLAIN 语句中不能被下推时打印警告日志
      • 增加 statements_summary_evicted 表来记录集群的驱逐数量信息 #25587
      • 提升内置函数 str_to_date 在格式指定器中 %b/%M/%r/%T 的 MySQL 兼容性
    • TiKV

      • 提升 prewrite 请求的幂等性以减少不确定性错误的概率 #10586
      • 预防处理多个过期命令时出现栈溢出的风险
      • 分离处理读写的 ready 状态以减少读延迟 #10592
      • 降低 I/O 限流器开启后对数据导入速度的影响
      • 提升 Raft gRPC 连接的负载均衡 #10495
    • Tools

      • TiCDC

        • 移除 file sorter 文件排序器
        • 优化连接 PD 时缺少证书情况下的报错提示 #1973
      • TiDB Lightning

        • 为恢复 schema 添加重试机制
      • Dumpling

        • 上游是 TiDB v3.x 集群时,使用 _tidb_rowid 来切分表以减少 TiDB 的内存使用 #295
        • 减少访问数据库元信息的频率以提升性能和稳定性
      • 修复了 tidb_enable_amend_pessimistic_txn=on 下更改列类型可能出现数据丢失的问题 #26203
      • 修复了 last_day 函数的行为在 SQL 模式下不兼容的问题
      • 修复 LIMIT 位于窗口函数之上时可能出现的 panic 问题 #25344
      • 修复了提交悲观事务可能会导致写冲突的问题
      • 修复关联子查询中 Index Join 的结果不正确问题 #25799
      • 修复了成功提交的悲观事务可能会报提交失败的问题
      • 修复在 类型列上 Merge Join 结果不正确的问题 #25669
      • 修复了在悲观事务中索引键值可能会被重复提交的问题
      • 修复了优化器在定位分区时存在整数溢出的风险 #26227
      • 修复了将 DATE 类型转换成时间戳时可能会写入无效值的问题
      • 修复了 Coprocessor Cache 监控项未在 Grafana 中显示的问题 #26338
      • 修复了遥测引起的干扰日志 #25785
      • 修复了索引前缀的查询范围问题
      • 修复了并发 truncate 同一个 partition 会导致 DDL 执行卡住的问题 #26229
      • 修复了 EMUN 元素重复的问题
      • 修复了 CTE 迭代器没有正确关闭的问题 #26112
      • 修复 LOAD DATA 语句可能不正常导入非 utf8 数据的问题
      • 修复在无符号整数列上使用窗口函数可能导致崩溃的问题 #25956
      • 修复了清除 Async Commit 锁时可能会导致 TiDB panic 的问题
      • 修复了 Stale Read 不完全兼容 PREPARE 语句的问题 #25800
      • 修复 ODBC 类常数(例如 {d '2020-01-01'})不能被用作表达式的问题
      • 修复了单独运行 TiDB 时出现的一个错误 #25555
    • TiKV

      • 修复 Load Base Split 误用 batch_get_command 中未编码键的问题
      • 修复在线变更 resolved-ts.advance-ts-interval 配置无法立即生效的问题 #10426
      • 修复在超过 4 副本的罕见场景下 Follower 元信息损坏的问题
      • 修复开启加密后再次生成同样的 snapshot 会出现 panic 的问题 #9786
      • 修正 tikv_raftstore_hibernated_peer_state 监控指标项 #10330
      • 修复 coprocessor 中 json_unquote() 函数错误的参数类型
      • 修复悲观事务中索引键被重复 commit 的问题 #10468
      • 修复 ReadIndex 请求在 leader 迁移后返回过期数据的问题
    • PD

      • 修复多个调度器产生调度冲突时无法生产预期调度的问题 #3807
      • 修复当调度器被删除后,可能会再度运行的问题 #2572
    • TiFlash

      • 修复执行扫表任务时出现进程崩溃的潜在问题
      • 修复处理 DAG 请求时出现 duplicated region 报错的问题
      • 修复读负载高的情况下进程崩溃的问题
      • 修复执行 DateFormat 函数时出现进程崩溃的潜在问题
      • 修复执行 MPP 任务时出现内存泄漏的潜在问题
      • 修复执行 COUNTCOUNT DISTINCT 函数时出现非预期结果的问题
      • 修复多盘部署时出现数据无法恢复的潜在问题
      • 修复 TiDB Dashboard 无法正确显示 TiFlash 磁盘信息的问题
      • 修复析构 SharedQueryBlockInputStream 时出现进程崩溃的潜在问题
      • 修复析构 MPPTask 时出现进程崩溃的潜在问题
      • 修复通过快照同步数据后可能出现的数据不一致的问题
    • Tools

      • TiCDC

        • 修复对 New Collation 的支持
        • 修复了运行时因非同步访问共享 map 可能导致 panic 的问题 #2300
        • 修复了 DDL 语句执行时 owner 崩溃可能导致的 DDL event 遗漏的问题
        • 修复了试图过早在 TiDB 中解锁的问题 #2188
        • 修复了表迁移后节点崩溃可能导致数据丢失的问题
        • 修复了 changefeed update--sort-dir and --start-ts 的处理逻辑 #1921
        • 修复了错误计算待恢复数据的大小的问题
        • 修复了从 cdclog 恢复数据时会遗漏 DDL event 的问题 #870
      • TiDB Lightning

        • 修复 TiDB Lightning 解析 Parquet 文件中 DECIMAL 类型数据失败的问题