资讯专栏INFORMATION COLUMN

TiDB 3.0.0-rc.1 Release Notes

you_De / 1465人阅读

摘要:用动态规划决定连接的执行顺序,当参与连接的表数量不多于时启用。在逻辑优化阶段消除聚合函数时特殊处理,防止产生错误的执行结果。该特性通过对进行执行计划绑定,以确保执行稳定性。执行引擎支持对和算子进行内存追踪控制。

2019 年 5 月 10 日,TiDB 发布 3.0.0-rc.1 版,对应的 TiDB-Ansible 版本为 3.0.0-rc.1。相比 3.0.0-beta.1 版本,该版本对系统稳定性、易用性、功能、优化器、统计信息以及执行引擎做了很多改进。

TiDB

SQL 优化器

利用列之间的顺序相关性提升代价估算准确度,并提供启发式参数 tidb_opt_correlation_exp_factor 用于控制在相关性无法被直接用于估算的场景下对索引扫描的偏好程度。

当过滤条件中包含相关列时,在抽取复合索引的访问条件时尽可能多地匹配索引的前缀列。

用动态规划决定连接的执行顺序,当参与连接的表数量不多于 tidb_opt_join_reorder_threshold 时启用。

在构造 Index Join 的的内表中,以复合索引作为访问条件时,尽可能多地匹配索引的前缀列。

提升对单列索引上值为 NULL 的行数估算准确度。

在逻辑优化阶段消除聚合函数时特殊处理 GROUP_CONCAT ,防止产生错误的执行结果。

当过滤条件为常量时,正确地将它下推到连接算子的子节点上。

在逻辑优化阶段列剪裁时特殊处理一些函数,例如 RAND() ,防止产生和 MySQL 不兼容的执行结果。

支持 FAST ANALYZE,通过tidb_enable_fast_analyze 变量控制。该特性通过用对 Region 进行采样取代扫描整个 region 的方式加速统计信息收集。

支持 SQL PLAN MANAGEMENT。该特性通过对 SQL 进行执行计划绑定,以确保执行稳定性。该特性目前处于测试阶段,仅支持对 SELECT 语句使用绑定的执行计划,不建议在生产场景中直接使用。

执行引擎

支持对 TableReaderIndexReaderIndexLookupReader 算子进行内存追踪控制。

在慢日志中展示更多 COPROCESSOR 端执行任务相关细节。如 COPROCESSOR 任务数,平均/最长/90% 执行/等待时间,执行/等待时间最长的 TiKV 地址等。

支持 PREPARE 不含占位符的 DDL 语句。

Server

TiDB 启动时,只允许 DDL owner 执行 bootstrap

新增 tidb_skip_isolation_level_check 变量控制检查隔离级别设置为 SERIALIZABLE 时不报错

在慢日志中,将隐式提交的时间与 SQL 执行时间融合在一起

RBAC 权限管理

支持 SHOW GRANT

支持 SET DEFAULT ROLE

支持 GRANT ROLE

修正了插件退出时导致 TiDB 退出的问题

修正只读语句被错误地放到事务历史中的问题

kill 语句可以更快的结束 SQL 的执行,并快速释放资源

增加启动选项 config-check 来检查配置文件的合法性

修正非严格模式下对于写入 NULL 字段的合法性检查

DDL

为 CREATE TABLE 添加了 pre_split_regions 选项,该选项可以在建表时预先分配 Table Region,避免建表后大量写入造成的写热点

优化了部分 DDL 语句的执行性能

FULLTEXT KEY 新增不支持全文索引的 warning

修正了旧版本 TiDB 中,UTF8 和 UTF8MB4 编码的兼容性问题

修正了一个表的 shard_row_id_bits 的潜在 BUG

修正了 ALTER TABLE Charset 后,Column Charset 不会跟随变化的 BUG

修正了使用 BINARY/BIT 作为 Column Default Value 时,SHOW COLUMN 可能出错的 BUG

修正了 SHOW FULL COLUMNS 语句中,CHARSET / COLLATION 显示的兼容性问题

现在 SHOW COLLATIONS 语句只会列出 TiDB 所实际支持的 COLLATIONS

PD

升级 ETCD 版本

统一 etcd 的日志格式与 pd server 一致

修复 prevote 可能无法选出 Leader 的问题

快速 drop 掉会失败的 propose 和 read 请求,减少阻塞后面的请求时间

修复 Lease 的死锁问题

修复 store 读热点的 keys 统计不正确问题

支持从单一 PD 节点强制重建 PD 集群

修复 Scatter Region 产生无效 Operator Step 的问题

修复 Region Merge Operator 超时时间过短的问题

热点调度使用高优先级

添加 PD server 端处理 TSO 请求的耗时 Metrics

添加相对应的 Store ID 和 Address 到 store 相关的 Metrics

支持 GetOperator 服务

修复 Heartbeat stream 下发送 error 找不到 store 的问题

TiKV

Engine

修复读流量统计不准确问题

修复 prefix extractor panic 的问题

优化内存管理,减少 Iterator Key Bound Option 的内存分配和拷贝

修复 Merge Region 时未考虑 Learner log gap 造成的 panic 问题

支持不同的 column families 共享 block cache

Server

减少 batch commands 的上下文切换开销

检查 seek iterator status 的合法性

RaftStore

可配置化 properties index distance

Coprocessor

新增 batch index scan executor

新增向量化 evaluation 框架

新增 batch 执行器统计框架

构建 RPN expression 时检查 max column 以防止 evaluation 阶段 column offset 越界的问题

实现 BatchLimitExecutor

ReadPool 使用 tokio-threadpool 替换原本的 futures-cpupool,减少 context switch

新增 batch 聚合框架

新增 BatchSelectionExecutor

实现 batch aggression function AVG

实现 RPN function LogicalAnd

Misc

支持选用 tcmalloc 为内存分配器

Tools

TiDB-Binlog

修复 unsigned int 类型的主键列的 binlog 数据为负数,造成同步出错中断的问题

删除下游是 pb 时的压缩选项,修改下游名字 pb 成 file

Pump 新增 storage.sync-log 配置项,支持 Pump 本地存储异步刷盘

Pump 和 Drainer 之间通讯支持流量压缩

Drainer 新增 syncer.sql-mode 配置项,支持使用不同 sql-mode 解析 DDL query

Drainer 新增 syncer.ignore-table 配置项,支持过滤不需要同步的表

Lightning

使用 row id 或者列的默认值填充 dump 文件中缺少的 column 数据

Importer 修复部分 SST 导入失败依然返回导入成功的 bug

Importer 支持 upload SST 到 TiKV 限速

Lightning 优化导入表的顺序,按照表的数据大小顺序进行导入,减少导入过程中大表执行 checksum 和 Analyze 对集群的影响,并且提高 Checksum 和 Analyze 的成功率

提升 Lightning encode SQL 性能,性能提升 50%,直接解析数据源文件内容成 TiDB 的 types.Datum,省去 KV encoder 的多余解析工作

日志格式改为 Unified Log Format

新增一些命令行选项,即使缺少配置文件也能使用

数据同步对比工具 (sync-diff-inspector)

支持 checkpoint,记录校验状态,重启后从上次进度继续校验

增加配置项 only-use-checksum,只通过计算 checksum 来检查数据是否一致

TiDB-Ansible

TiKV 监控变更以及更新 Ansible、Grafana、Prometheus 版本

summary 监控适用于用户查看集群状态

trouble_shooting 监控适用于 DBA 排查问题

details 监控适用于开发分析问题

修复下载 Kafka 版本 Binlog 失败的 BUG

修改操作系统版本限制,仅支持 CentOS 7.0 及以上,Red Hat 7.0 及以上版本的操作系统

滚动升级时的版本检测改为多并发

更新 README 中文档链接

移除重复的 TiKV 监控项,新增 trouble shooting 监控项

优化 table-regions.py 脚本,按表显示 leader 分布

更新 drainer 配置文件

优化 TiDB 监控,新增以 SQL 类别显示延迟的监控项

更新 Lightning 配置文件,新增 tidb_lightning_ctl 脚本

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18013.html

相关文章

  • What’s New in TiDB 3.0.0-rc.1

    摘要:提升系统性能算子,进一步提升执行性能。采用存储结构减少内存分配及拷贝,的共享提升命中率等手段大幅提升性能。新增系统配置项合法性检查,优化系统监控项等,提升产品易用性。在此对各位贡献者表示由衷的感谢。 作者:段兵 2019 年 5 月 10 日,TiDB 3.0.0-rc.1 版本正式推出,该版本对系统稳定性,性能,安全性,易用性等做了较多的改进,接下来逐一介绍。 提升系统稳定性 众所周...

    2i18ns 评论0 收藏0
  • TiDB 3.0 Beta Release Notes

    摘要:年月日,发布版,对应的。相比版本,该版本对系统稳定性优化器统计信息以及执行引擎做了很多改进。新特性支持支持支持支持优化器重新支持聚合消除的优化规则优化子查询,将其转化为添加变量以支持新的优化器。 2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以...

    goji 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<