分布式 NewSQL 数据库,TiDB 5.0.2 发布

科技资讯 投稿 76200 0 评论

分布式 NewSQL 数据库,TiDB 5.0.2 发布

TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适OLAP 场景的混合数据库。

TiDB 5.0.2 现已发布,该版本具体更新内容如下:

兼容性更改

  • Tools

    • 在 cdc cli changefeed 命令中废弃 --sort-dir 参数,用户可在 cdc server 命令中设定 --sort-dir

    • TiCDC

新功能

  • TiKV

    • 默认开启 Hibernate Region 特性

提升改进

  • TiDB

    • 当内存中的统计信息缓存是最新的时,避免后台作业频繁读取 mysql.stats_histograms 表造成高 CPU 使用率

  • TiKV

    • BR 支持 S3 兼容的存储(基于 virtual-host 寻址模式)

    • 为 TiCDC 扫描的速度添加背压 (back pressure 功能 

    • 减少 TiCDC 进行初次扫描的内存使用量 

    • 提升了悲观事务中 TiCDC Old Value 的缓存命中率 

    • 让 Region 分裂更均匀,缓解有写入热点时 Region 大小的增长速度超过分裂速度的问题

  • TiFlash

    • 优化锁操作以避免 DDL 语句和读数据相互阻塞

    • 支持 INTEGER 和 REAL 类型转化为 REAL 类型

  • Tools

    • 修复备份失败却没有错误输出的问题

    • 优化了一些含糊的报错信息

    • 支持检查备份的版本信息

    • 支持备份和恢复 mysql schema 下的系统表

    • 添加关于数据表内存使用情况的监控 

    • 优化排序阶段的内存和 CPU 使用

    • 删除了一些可能让用户困惑的无用日志信息

    • TiCDC

    • Backup & Restore (BR

    • Dumpling

Bug 修复

  • TiDB

    • 修复了在某些情况下,使用前缀索引和 Index Join 导致的 panic 的问题

    • 修复了 point get 的 prepare plan cache 被事务中的 point get 语句不正确使用的问题

    • 修复了当排序规则为 ascii_bin 或 latin1_bin 时,写入错误的前缀索引值的问题

    • 修复了正在执行的事务被 GC worker 中断的问题 

    • 修复了当 new-collation 开启且 new-row-format 关闭的情况下,点查在聚簇索引下可能出错的问题

    • 为 Shuffle Hash Join 重构分区键的转换功能

    • 修复了当查询包含 HAVING 子句时,在构建计划的过程中 panic 的问题

    • 修复了列裁剪优化导致 Apply 算子和 Join 算子执行结果错误的问题

    • 修复了从 Async Commit 回退的主锁无法被清除的问题

    • 修复了一个统计信息 GC 的问题,该问题可能导致重复的 fm-sketch 记录

    • 当悲观锁事务收到 ErrKeyExists 错误时,避免不必要的悲观事务回滚

    • 修复了当 sql_mode 包含 ANSI_QUOTES 时,数值字面值无法被识别的问题

    • 禁止如 INSERT INTO table PARTITION (<partitions> ... ON DUPLICATE KEY UPDATE 的语句从 non-listed partitions 读取数据

    • 修复了当 SQL 语句包含 GROUP BY 以及 UNION 时,可能会出现的 index out of range 的问题

    • 修复了 CONCAT 函数错误处理排序规则的问题

    • 修复了全局变量 collation_server 对新会话无法生效的问题

  • TiKV

    • 修复了由于读取旧值而导致的 TiCDC OOM 问题

    • 修复了聚簇主键列在次级索引上的 latin1_bin 字符集出现空值的问题

    • 新增 abort-on-panic 配置,允许 TiKV 在 panic 时生成 core dump 文件。用户仍需正确配置环境以开启 core dump。

    • 修复了 TiKV 不繁忙时 point get 查询性能回退的问题

  • PD

    • 修复在 store 数量多的情况下,切换 PD Leader 慢的问题

    • 修复删除不存在的 evict leader 调度器时出现 panic 的问题

    • 修复 offline peer 在合并完后未更新统计的问题

  • TiFlash

    • 修复并发复制共享 Delta 索引导致结果错误的问题

    • 修复当存在数据缺失的情况下 TiFlash 无法启动的问题

    • 修复旧的 dm 文件无法被自动清理的问题

    • 修复 TiFlash 在 Compaction Filter 特性开启时可能崩溃的问题

    • 修复 ExchangeSender 可能传输重复数据的问题

    • 修复了从 Async Commit 回退的锁无法被 TiFlash 清除的问题

    • 修复当 TIMEZONE 类型的转换结果包含 TIMESTAMP 类型时返回错误结果的问题

    • 修复 TiFlash 在 Segment Split 期间异常退出的问题

    • 修复非根节点 MPP 任务的执行信息显示不正确的问题

  • Tools

    • 修复在生成 KV 数据时可能发生的 panic 问题

    • 修复 TiDB-backend 模式下因没有开启 autocommit 而无法加载数据的问题

    • 修复数据导入期间 Batch Split Region 因键的总大小超过 Raft 条目限制而可能失败的问题

    • 修复 log restore 时丢失删除事件的问题

    • 修复 BR 发送过多无用 RPC 请求到 TiKV 的问题

    • 修复备份失败却没有错误输出的问题

    • 修复 Avro 输出中丢失时区信息的问题

    • 支持清理 Unified Sorter 过期的文件并禁止共享 sort-dir 目录

    • 修复存在大量过期 Region 信息时 KV 客户端可能锁死的问题

    • 修复 --cert-allowed-cn 参数中错误的帮助消息

    • 修复因更新 explicit_defaults_for_timestamp 而需要 MySQL SUPER 权限的问题

    • 添加 sink 流控以降低内存溢出的风险

    • 修复调度数据表时可能发生的同步终止问题

    • 修复 TiCDC changefeed 断点卡住导致 TiKV GC safe point 不推进的问题

    • TiCDC

    • Backup & Restore (BR

编程笔记 » 分布式 NewSQL 数据库,TiDB 5.0.2 发布

赞同 (117) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽