TiDB 4.0.16 Release Notes

    TiDB 版本:4.0.16

    • TiKV

      • 在 v4.0.16 以前,当把一个非法的 UTF-8 字符串转换为 Real 类型时会直接报错。自 v4.0.16 起,TiDB 会依照该字符串中的合法 UTF-8 前缀进行转换
    • Tools

      • TiCDC

        • 将 Kafka Sink 的默认值改为 1 MB,防止 TiCDC 发送过大消息到 Kafka 集群 #2962
        • 将 Kafka Sink partition-num 的默认值改为 3,使 TiCDC 更加平均地分发消息到各个 Kafka partition
      • 升级 Grafana 到 v7.5.11,规避老版本的安全漏洞
    • TiKV

      • 当使用 Backup & Restore 恢复数据或使用 TiDB Lightning 的 Local-backend 导入数据时,采用 zstd 算法压缩 SST 文件,从而减小磁盘使用空间
    • Tools

      • Backup & Restore (BR)

        • 增强恢复的鲁棒性 #27421
      • TiCDC

        • 为 EtcdWorker 添加 tick 频率限制,防止 PD 的 etcd 写入次数过于频繁影响 PD 服务
        • 优化 TiKV 重新加载时的速率限制控制,缓解 changefeed 初始化时 gPRC 的拥堵问题 #3110
      • 修复在统计信息模块的估算代价中,当执行 range 转 points 时由于数值溢出而导致的查询崩溃 #23625
      • 修复当 ENUM 类型作为 IFCASE WHEN 等控制函数的参数时,返回结果不正确的问题
      • 修复由于 tidb_enable_vectorized_expression 设置的值不同(onoff)导致 GREATEST 函数返回结果不一致的问题 #29434
      • 修复在某些情况下 Planner 可能缓存无效 join 计划的问题
      • 修复当 sql_mode 为空时,TiDB 无法插入 null 到非 null 列的问题 #11648
      • 修正 和 LEAST 函数的返回值类型错误
      • 修复 grantrevoke 操作在授予和撤销全局权限时,报 privilege check fail 错误的问题 #29675
      • 修复当 CASE WHEN 函数和 ENUM 类型一起使用时的崩溃问题
      • 修复 microsecond 函数的向量化表达式版本结果不正确的问题 #29244
      • 修复 hour 函数在向量化表达式中执行结果错误的问题
      • 修复乐观事务冲突可能导致事务相互阻塞的问题 #11148
      • 修复 auto analyze 输出的日志信息不完整的问题
      • 修复当 SQL_MODE 为 ‘NO_ZERO_IN_DATE’ 时,使用非法的默认时间不报错的问题 #26766
      • 修复 Grafana 上 Coprocessor Cache 监控面板不显示数据的问题。现在 Grafana 会显示 hits/miss/ 的数据
      • 修复并发 truncate 同一个分区会导致 DDL 语句执行卡住的问题 #26229
      • 修复将 Decimal 转为 String 时长度信息错误的问题
      • 修复使用 NATUAL JOIN 连接多张表时,查询结果中多出一列的问题 #29481
      • 修复 IndexScan 使用前缀索引时,TopN 被错误下推至 indexPlan 的问题
      • 修复在 DOUBLE 类型的自增列上重试事务会导致数据错误的问题 #29892
    • TiKV

      • 修复在极端情况下同时进行 Region Merge、ConfChange 和 Snapshot 时,TiKV 会出现 Panic 的问题
      • 修复 Decimal 除法计算的结果为 0 时符号为负的问题 #29586
      • 修复 TiKV 监控项中实例级别 gRPC 的平均延迟时间不准确的问题
      • 修复在缺失下游数据库时出现 TiCDC Panic 的问题 #11123
      • 修复因 channel 打满而导致的 Raft 断连的问题
      • 修复由于无法在 Max/Min 函数中正确识别 Int64 是否为有符号整数,导致 Max/Min 函数的计算结果不正确的问题 #10158
    • PD

      • 修复 TiKV 节点缩容后可能导致 Panic 的问题
      • 修复因 Region syncer 卡住而导致 leader 选举慢的问题 #3936
      • 允许 Evict Leader 调度器调度拥有不健康副本的 Region
    • TiFlash

      • 修复 TiFlash 在部分平台上由于缺失 nsl 库而无法启动的问题
    • Tools

        • 修复传输事务超过 1 GB 时 Drainer 会退出的问题 #28659
      • TiCDC

        • 修复监控 checkpoint lag 出现负值的问题
        • 修复在容器环境中 OOM 的问题 #1798
        • 修复在多个 TiKV 崩溃或强制重启时可能遇到复制中断的问题
        • 修复执行 DDL 后的内存泄漏的问题 #3174
        • 修复当发生 ErrGCTTLExceeded 错误时,changefeed 不快速失败的问题
        • 修复当上游 TiDB 实例意外退出时,TiCDC 同步任务推进可能停滞的问题 #3061
        • 修复当 TiKV 向同一 Region 发送重复请求时,TiCDC 进程 Panic 的问题
        • 修复 TiCDC 产生的 Kafka 消息体积不受 max-message-size 约束的问题 #2962
        • 修复 tikv_cdc_min_resolved_ts_no_change_for_1m 监控在没有 changefeed 的情况下持续更新的问题
        • 修复当写入 Kafka 消息发生错误时,TiCDC 同步任务推进可能停滞的问题 #2978
        • 修复当开启 时,可能某些没有有效索引的分区表被忽略的问题
        • 修复在创建新的 changefeed 时可能发生的内存泄漏问题 #2389
        • 修复可能因为 Sink 组件提前推进 resolved ts 导致数据不一致的问题
        • 修复 changefeed 更新命令无法识别全局命令行参数的问题 #2803