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

栏目: 软件资讯 · 发布时间: 3年前

内容简介:TiDB 4.0.9 现已发布,该版本具体更新内容如下: 兼容性更改 TiDB 废弃配置文件中 enable-streaming 配置项 #21055 TiKV 减少开启加密时的 I/O 开销和锁冲突。该修改向下不兼容。如果需要降级至 v4.0.9 以下,需要...

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

兼容性更改

  • TiDB

    • 废弃配置文件中 enable-streaming 配置项 #21055
  • TiKV

    • 减少开启加密时的 I/O 开销和锁冲突。该修改向下不兼容。如果需要降级至 v4.0.9 以下,需要将 security.encryption.enable-file-dictionary-log 配置为 false,并在降级前重启 #9195

新功能

  • TiFlash

    • 支持将存储引擎的新数据分布在多个硬盘上,分摊 I/O 压力(实验特性)
  • TiDB Dashboard

    • SQL 语句分析功能的列表界面支持显示所有字段并排序 #749
    • 集群拓扑页面支持缩放 #772
    • SQL 语句分析及慢日志页面支持显示 SQL 语句的临时存储占用大小 #777
    • SQL 语句分析及慢日志列表界面支持导出列表数据 #778
    • 支持配置自定义 Prometheus 地址 #808
    • 新增集群实例统计摘要页面 #815
    • 慢日志详情页面新增更多时间字段 #810

优化提升

  • TiDB

    • 在转换等值条件为其它条件时,通过使用启发式规则,避免生成 (index) merge join 以得到更好的执行计划 #21146
    • 区分用户变量的类型 #21107
    • 在配置文件中添加了 performance.gogc 配置项,用于设置 GOGC #20922
    • 提升 Timestamp 和 Datetime 类型的二进制输出结果与 MySQL 的兼容性 #21135
    • 优化用户使用 LOCK IN SHARE MODE SQL 语句时输出的报错信息 #21005
    • 优化在可剪切的表达式进行常量折叠时输出的错误信息,避免输出不必要的警告或错误信息 #21040
    • 优化 LOAD DATA 语句执行 PREPARE 时的报错信息 #21199
    • 修改整型列的类型时,忽略掉整型字段的零值填充的属性 #20986
    • 在 EXPLAIN ANALYZE 结果中输出 DML 语句执行器相关运行时的信息 #21066
    • 禁止在一条语句中对主键做出多次不同的修改 #21113
    • 添加连接空闲时间的监控项 #21301
    • 新增运行 runtime/trace 分析 工具 时系统自动临时开启慢日志的功能 #20578
  • TiKV

    • 添加标记以跟踪 split 命令的来源 #8936
    • 支持动态修改 pessimistic-txn.pipelined 配置项 #9100
    • 减少运行 Backup & Restore 和 TiDB Lightning 时对系统的性能影响 #9098
    • 添加 Ingesting SST 报错的监控项 #9096
    • 阻止 Leader 在任意副本需要复制日志时进入休眠状态 #9093
    • 提高 Pipelined locking 的成功率 #9086
    • 调整配置项 apply-max-batch-size 和 store-max-batch-size 的默认值为 1024 #9020
    • 添加 max-background-flushes 配置 #8947
    • 默认关闭 RocksDB consistency check 以提高性能 #9029
    • 将 Region 大小的查询操作移出 pd heartbeat worker 以减轻其压力 #9185
  • PD

    • TiKV store 转变为 Tombstone 状态时检查 TiKV 集群的版本号,防止用户降级和升级过程中的开启不兼容特性#3213
    • 禁止低版本的 TiKV 强制从 Tombstone 状态转为 Up #3206
  • TiDB Dashboard

    • 对于 SQL 语句文本点击 “展开” 后支持保持展开状态 #775
    • 默认在新窗口打开 SQL 语句分析和慢日志详情 #816
    • 改进慢日志页面部分时间字段描述 #817
    • 改进错误信息提示,显示更完整的错误内容 #794
  • TiFlash

    • 降低 Replica read 时的延迟
    • 优化 TiFlash 的错误信息
    • 优化在大数据量下,对缓存数据大小的限制
    • 添加正在处理的 Coprocessor 请求数量的 metric
  • Tools

    • Backup & Restore (BR)

      • BR 不再接受存在歧义的 --checksum false(不会正确关闭 checksum) 命令行参数,正确用法为 --checksum=false #588
      • 支持暂时性地调整 PD 的参数,在 BR 意外退出后,PD 能自动恢复回正常参数 #596
      • 支持恢复数据表的统计信息 #622
      • 系统自动重试 read index not ready 和 proposal in merging mode 两种错误 #626
    • TiCDC

      • 添加对 TiKV 开启 Hibernate Region 的告警规则 #1120
      • 优化 schema storage 的内存使用 #1127
      • 增加 Unified Sorter 功能,可以在数据量较大的情况下提升增量扫阶段的同步速度(实验特性)#1122
      • 支持在 TiCDC Open Protocol 中配置单条 Kafka 消息的最大大小和包含的最大行变更数量(仅在 Kafka sink 生效)#1079
    • Dumpling

      • 对导出失败部分的数据进行重试 #182
      • 支持同时设置 -F 和 -r 两个参数 #177
      • 默认不导出系统表 #194
      • 在设置 --transactional-consistency 参数时支持重建 MySQL 链接 #199
    • TiDB Lightning

      • 默认不恢复系统表 #459
      • 支持为 auto-random 的主键设置默认值 #457
      • 完善 Local 模式下分裂 Region 的精度 #422
      • 支持给 tikv-importer.region-split-sizemydumper.read-block-sizemydumper.batch-size 和 mydumper.max-region-size 设置可读的参数(比如 "2.5 GiB")#471
    • TiDB Binlog

      • 在写下游出错时给 Drainer 设置非零退出码 #1012

Bug 修复

  • TiDB

    • 修复了前缀索引和 OR 条件一起使用时结果不正确的问题 #21287
    • 修复了开启自动重试后可能出现的一处 panic #21285
    • 修复了根据列类型检查分区表定义时出现的一处问题 #21273
    • 修复了分区表对于列的类型检查的一处问题。分区表达式的值的类型和分区列的类型必须一致 #21136
    • 修复了哈希分区表对于分区名唯一性检查的问题 #21257
    • 修复非 INT 类型的值,插入到哈希分区表后结果不正确的问题 #21238
    • 修复了在部分写入类的场景中,使用了 index join 会遇到非预期报错的问题 #21249
    • 修复了在 CASE WHEN 中 BigInt 无符列的值被错误地转换成有符类型的问题 #21236
    • 修复了 index hash join 和 index merge join 没有考虑 collation 的问题 #21219
    • 修复了分区表在建表和查询时,没有考虑 collation 的问题 #21181
    • 修复了慢日志记录的查询结果可能不全的问题 #21211
    • 修复了一处数据库名大小写处理不当,导致的 DELETE 未正确删除数据的问题 #21206
    • 修复了执行 DML 语句导致 schema 的内存被覆盖的问题 #21050
    • 修复了使用 join 时,无法查询到合并后的列的问题 #21021
    • 修复了一些 semi-join 的查询结果不正确的问题 #21019
    • 修复了表锁对于 UPDATE 语句不生效的问题 #21002
    • 修复创建递归的视图出现栈溢出的问题 #21001
    • 修复了 index merge join 在执行外连接的时候,结果不符合预期的问题 #20954
    • 修复了一处事务问题,该场景下应该返回结果未知,但是却返回了执行失败 #20925
    • 修复 explain for connection 无法显示最后一次执行计划的问题 #21315
    • 修复在 Read Committed 隔离级别下,Index Merge 结果不正确的问题 #21253
    • 修复了由于事务写冲突重试导致的 auto-ID 分配失败 #21079
    • 修复了 JSON 数据无法通过 load data 无法正确导入到 TiDB 的问题 #21074
    • 修复新增加 Enum 类型列的默认值问题 #20998
    • 对于日期类型的数学计算,保留原始的数据类型信息,修复 adddate 函数插入非法值的问题 #21176
    • 修复了部分场景错误地生成了 PointGet 的执行计划,导致执行结果不正确 #21244
    • 在 ADD_DATE 函数中忽略夏令时的转换,以和 MySQL 兼容 #20888
    • 修复了插入尾部带有超出 varchar 和 char 长度限制的空白字符的字符串时报错的 bug #21282
    • 修复了对比 int 和 year 类型时没有将 [1, 69] 的整数转换为 [2001, 2060] 以及没有将 [70, 99] 的整数转换为 [1970, 1999] 的兼容性 bug #21283
    • 修复了 sum() 函数计算 Double 类型字段的结果溢出导致 panic 的问题 #21272
    • 修复了 DELETE 语句未能给 unique key 加悲观锁的问题 #20705
    • 修复了快照读能够命中 lock cache,返回错误结果的问题 #21539
    • 修复了在同一个事务中读取大量数据时可能发生的内存泄漏问题 #21129
    • 修复了在子查询中省略表别名时的语法解析错误问题 #20367
  • TiKV

    • 修复当列个数大于 255 时,下推返回错误结果集的问题 #9131
    • 修复网络隔离时 Region Merge 可能会导致数据丢失的问题 #9108
    • 修复使用 latin1 字符集时,ANALYZE 语句会导致 panic 的问题 #9082
    • 修复类型转换中将数字转成时间会得到错误结果的问题 #9031
    • 修复当开启加密时无法使用 TiDB Lightning 导入数据的问题 #8995
    • 修复使用 0.0.0.0 时 advertise-status-addr 异常的问题 #9036
    • 修复当事务删除 key 时却报 key 已存在的问题 #8930
    • 修复 RocksDB cache 映射错误导致的数据错误问题 #9029
    • 修复当 Leader 切换时 Follower Read 可能返回旧数据的问题 #9240
    • 修复悲观锁下可能读到旧值的问题 #9282
    • 修复 transfer leader 后 replica read 可能会读到旧值的问题 #9240
    • 修复 TiKV 在 profiling 结束后再收到 SIGPROF 会 panic 的问题 #9229
  • PD

    • 修复在特殊情况下 Placement Rule 指定的 leader 绑定不生效的问题 #3208
    • 修复 trace-region-flow 在配置更新时被置为 false 的问题 #3120
    • 修复特殊情况下 safepoint 有无限 TTL 的问题 #3143
  • TiDB Dashboard

    • 修复部分时间显示混杂中英文的问题 #755
    • 修复部分不兼容的浏览器中没有提示不兼容的问题 #776
    • 修复部分情况下事务时间戳显示不正确的问题 #793
    • 修复部分 SQL 文本格式化后成为无效 SQL 语句的问题 #805
  • TiFlash

    • 修复 INFORMATION_SCHEMA.CLUSTER_HARDWARE 中可能包含未被使用的硬盘信息的问题
    • 修复 Delta cache 内存占用量估算偏少的问题
    • 修复由线程统计信息引起的内存泄露问题
  • Tools

    • Backup & Restore (BR)

      • 修复因 S3 secret access keys 中存在特殊字符而导致失败的问题 #617
    • TiCDC

      • 修复某些异常情况下存在多个 Owner 的问题 #1104
      • 修复在 TiKV 节点意外退出或重启恢复情况下 TiCDC 不能正常同步的问题,该 bug 在 v4.0.8 引入 #1198
      • 修复在表初始化过程中会向 etcd 中重复写入元数据的问题 #1191
      • 修复 schema storage 缓存 TiDB 表信息的过程中因更新表信息延迟或过早 GC 导致同步中断的问题 #1114
      • 修复 schema storage 在 DDL 频繁的情况下会消耗过多内存的问题 #1127
      • 修复在同步任务暂停或取消之后会产生 goroutine 泄露的问题 #1075
      • 增加 Kafka producer 最大重试时间到 600s,避免在下游 Kafka 服务或网络抖动情况下同步中断 #1118
      • 修复 Kafka 消息所包含行变更数量不能正常生效的问题 #1112
      • 修复当 TiCDC 与 PD 间网络出现抖动,并且同时操作 TiCDC changefeed 暂停和恢复,可能会出现部分表数据没有被同步的问题 #1213
      • 修复 TiCDC 与 PD 网络不稳定情况下 TiCDC 可能出现进程非预期退出的问题 #1218
      • 在 TiCDC 内部使用全局 PD client,以及修复 PD client 被错误关闭导致同步阻塞的问题 #1217
      • 修复 TiCDC owner 节点可能在 etcd watch client 里消耗过多内存的问题 #1224
    • Dumpling

      • 修复在某些情况下 MySQL 链接关闭导致 Dumpling 卡住的问题 #190
    • TiDB Lightning

      • 修复使用错误信息编码 key 的问题 #437
      • 修复 GC life time TTL 不生效的问题 #448
      • 修复手动关闭时可能出现的 panic 问题 #484

 更新说明:https://docs.pingcap.com/zh/tidb/stable/release-4.0.9


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Text Processing in Python

Text Processing in Python

David Mertz / Addison-Wesley Professional / 2003-6-12 / USD 54.99

Text Processing in Python describes techniques for manipulation of text using the Python programming language. At the broadest level, text processing is simply taking textual information and doing som......一起来看看 《Text Processing in Python》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器