Skip to content

Latest commit

 

History

History
149 lines (108 loc) · 9.94 KB

release-4.0.0-rc.1.md

File metadata and controls

149 lines (108 loc) · 9.94 KB
title aliases summary
TiDB 4.0 RC.1 Release Notes
/docs-cn/dev/releases/release-4.0.0-rc.1/
/docs-cn/dev/releases/4.0.0-rc.1/
TiDB 4.0 RC.1 发布说明:TiDB 4.0.0-rc.1 版本兼容性变化包括 TiKV 默认关闭 hibernate region,TiDB Binlog 增加对 Sequence DDL 的支持。重点修复了多个 Bug,包括 TiDB 事务内执行 INSERT ... ON DUPLICATE KEY UPDATE 语句插入多行重复数据可能出错的问题等。新增功能包括 TiDB 支持发送 batch coprocessor 请求给 TiFlash 等。Bug 修复包括 TiDB 系统表由于 unsigned 列定义导致无法正确显示负数的问题等。

TiDB 4.0 RC.1 Release Notes

发版日期:2020 年 4 月 28 日

TiDB 版本:4.0.0-rc.1

兼容性变化

  • TiKV

    • 默认关闭 hibernate region #7618
  • TiDB Binlog

    • Drainer 增加对 Sequence DDL 的支持 #950

重点修复的 Bug

  • TiDB

    • 修复由于未检查 MemBuffer,事务内执行 INSERT ... ON DUPLICATE KEY UPDATE 语句插入多行重复数据可能出错的问题 #16689
    • 修复 lock 多行重复 keys 时导致数据索引不一致的问题 #16769
    • 修复回收空闲 gRPC 连接导致 TiDB panic 的问题 #16303
  • TiKV

    • 修复 TiDB 探活请求触发的死锁问题 #7540
    • 修复事务的 min commit ts 可能溢出、影响数据正确性的问题 #7642
  • TiFlash

    • 修正多数据路径配置下进行 rename table 会导致数据丢失的问题
    • 修正当 Region 处于 merge 状态时读取产生的数据错误
    • 修正当 Region 处于非 normal 状态时读取产生的数据错误
    • 修正 TiFlash 中表名的映射方式以正确支持 recover table/flashback table
    • 修正数据存储路径以解决 rename table 时潜在的数据丢失问题
    • 修正 Super batch 开启后,有一定概率 TiDB panic 的问题
    • 修正在线更新时的读模型以优化读性能
  • TiCDC

    • 修复 TiCDC 内部维护的 schema 信息对于读写操作时序问题没有正确处理导致同步失败问题 #438 #450 #478 #496
    • 修复 TiKV client 遇到部分 TiKV 异常没有正确维护内部资源的 bug #499 #492
    • 修复节点异常残留元数据信息没有正确清理的 bug #488 #504
    • 修复 TiKV client 没有正确处理 prewrite 重复发送的问题 #446
    • 修复 TiKV client 没有正确处理在初始化前接收到冗余 prewrite 的问题 #448
  • Backup & Restore (BR)

    • 修复关闭 checksum 情况下,仍然执行 checksum 的问题 #223
    • 修复 TiDB 开启 auto-random 或 alter-pk 时,增量备份失败的问题 #230 #231

新功能

  • TiDB

    • 支持发送 batch coprocessor 请求给 TiFlash #16226
    • 默认打开 Coprocessor cache #16710
    • 在 SQL 语句的特殊注释中,只有被注册了语句片段才能被 parser 正常解析,否则将被忽略 #16157
    • 支持使用 SHOW CONFIG 语法显示 PD 和 TiKV 的配置 #16475
  • TiKV

    • 支持在备份到 S3 时使用用户提供的 KMS key 进行服务端加密 #7630
    • 支持基于负载的 Region split #7623
    • 支持 common name 验证 #7468
    • 通过检查文件锁避免多个 TiKV 实例绑定相同的地址 #7447
    • Encryption at rest 支持 AWS KMS #7465
  • Placement Driver (PD)

    • 移除 config manager 以使其它组件自行控制它们的配置 #2349
  • TiFlash

    • 添加 DeltaTree 引擎读写负载相关 metrics 上报
    • 缓存 handle 列和 version 列减小单次读请求的磁盘 I/O
    • 增加了 TiFlash 对于 FromUnixTimeDate_format 函数的支持
    • 根据第一块盘估算全局状态并上报
    • Grafana 添加 DeltaTree 引擎读写负载相关图表
    • 优化 TiFlash chunk encode decimal 的数据
    • 实现了 Diagnostics(SQL 诊断)的 gRPC API,以支持 INFORMATION_SCHEMA.CLUSTER_INFO 等系统表的查询
  • TiCDC

    • 在 Kafka sink 模块提供发送批量消息支持 #426
    • 支持在 processor 内使用文件排序 #477
    • 增加自动 resolve lock 的支持 #459
    • 增加自动向 PD 设置 TiCDC 服务级别 safepoint 的功能 #487
    • 增加数据同步时的时区配置 #498
  • 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)

    • 修复部分 API TLS 认证失败的问题 #2363
    • 修复 config API 不能识别带有前缀的配置项的问题 #2354
    • 修复找不到 scheduler 时会返回 500 错误的问题 #2328
    • 修复 scheduler config balance-hot-region-scheduler list 命令返回 404 错误的问题 #2321
  • TiFlash

    • 禁用存储引擎的粗糙索引优化
    • 修正对 Region 进行 resolve lock 时遇到需要跳过的 lock 抛异常的问题
    • 修正 Coprocessor 统计信息收集的 NPE
    • 修正 Region meta 的检查以保证 Region Split/Region Merge 流程的正确性
    • 修正对 Coprocessor response 大小未做估算导致的消息大小超过 gRPC 限制的问题
    • 修正 TiFlash 对 AdminCmdType::Split 命令的处理