TiDB 3.0.0-rc.3 Release Notes
发版日期:2019 年 6 月 21 日
TiDB 版本:3.0.0-rc.3
TiDB Ansible 版本:3.0.0-rc.3
Overview
2019 年 6 月 21 日,TiDB 发布 3.0.0-rc.3 版本,对应的 TiDB Ansible 版本为 3.0.0-rc.3。相比 3.0.0-rc.2 版本,该版本对系统稳定性、易用性、功能、优化器、统计信息以及执行引擎做了很多改进。
TiDB
SQL 优化器
- 删除收集虚拟生成列的统计信息功能 #10629
- 修复点查时主键常量溢出的问题 #10699
- 修复
fast analyze
因使用未初始化的信息导致 panic #10691 - 修复 prepare
create view
语句执行过程中因列信息错误导致执行失败的问题 #10713 - 修复在处理 window function 时列信息未拷贝的问题 #10720
- 修复 index join 中内表过滤条件在某些情况下的选择率估计错误的问题 #10854
- 新增变量
stats-lease
值为 0 时系统自动加载统计数据功能 #10811
执行引擎
- 修复在
StreamAggExec
调用 Close
函数资源未正确释放问题 #10636 - 修复对分区表执行
show create table
结果中 table_option
与 partition_options
顺序不正确问题 #10689 - 通过支持逆序扫数据提升
admin show ddl jobs
的性能 #10687 - 修复 RBAC 中对
show grants
语句带 current_user
字段时结果与 MySQL 不兼容的问题 #10684 - 修复 UUID 在多节点上可能生成重复值的问题 #10712
- 修复
explain
没考虑 show view
权限的问题 #10635 - 新增
split table region
语句,手动分裂表的 Region,缓解热点问题 #10765 - 新增
split index region
语句,手动分裂索引的 region 缓解热点问题 #10764 - 修复连续执行多个
create user
、grant
或 revoke
等类似语句执行不正确的问题 #10737 - 新增黑名单禁止下推表达式到 coprocessor 功能 #10791
- 新增查询超出内存配置限制时打印
expensive query
日志的功能 #10849 - 新增
bind-info-lease
配置项控制修改绑定执行计划的更新时间 #10727 - 修复因持有
execdetails.ExecDetails
指针时 Coprocessor 的资源无法快速释放导致的在大并发场景下 OOM 的问题 #10832 - 修复某些情况下
kill
语句导致的 panic 问题 #10876
Server
- 修复 GC 时可能发生的 goroutine 泄露问题 #10683
- 支持 slow query 里面显示
host
信息 #10693 - 支持循环利用与 TiKV 交互的空闲链接 #10632
- 修复 RBAC 对开启
skip-grant-table
选项的支持问题 #10738 - 修复
pessimistic-txn
配置失效的问题 #10825 - 修复主动取消的 ticlient 请求还会被重试的问题 #10850
- 提高在悲观事务和乐观事务冲突情况下的性能 #10881
DDL
- 修复在使用
alter table
修改 charset 时导致 blob
类型改变的问题 #10698 - 新增列属性包含
AUTO_INCREMENT
时利用 SHARD_ROW_ID_BITS
打散行 ID 功能,缓解热点问题 #10794 - 禁止通过
alter table
添加存储的生成列 #10808 - 优化无效 DDL 元信息存活时间,使集群升级后一段时间 DDL 操作比较慢的情况变短 #10795
PD
- 新增
enable-two-way-merge
配置项,控制合并时仅允许单向合并 #1583 - 新增
AddLightLearner
和 AddLightPeer
的调度操作,Region Scatter 调度不受 limit 机制限 #1563 - 修复系统启动时因数据可能只进行一副本复制而导致可靠性不足的问题 #1581
- 优化配置检查逻辑,防止配置项错误 #1585
- 调整
store-balance-rate
配置的定义为每分钟产生 balance operator 数量的上限 #1591 - 修复 store 可能一直无法产生调度操作的问题 #1590
TiKV
Engine
- 修复因迭代器未检查状态导致系统生成残缺 snapshot 的问题 #4936
- 修复在机器异常掉电时由于接收 snapshot 未及时将数据刷新到磁盘导致丢数据的问题 #4937
Server
- 新增检查
block-size
配置的有效性功能 #4928 - 新增 read index 相关监控项 #4830
- 新增 GC worker 相关监控项 #4922
Raftstore
- 修复 local reader 的 cache 没有正确清理的问题 #4778
- 修复进行 transfer leader 和 conf change 时可能导致请求延迟增加的问题 #4734
- 修复误报 stale command 的问题 #4682
- 修复 command 可能一直 pending 的问题 #4810
- 修复 snapshot 文件未及时落盘而导致掉电后文件损坏的问题 #4807,#4850
Coprocessor
- 向量计算支持 Top-N #4827
- 向量计算支持 Stream 聚合 #4786
- 向量计算中支持 AVG 聚合函 #4777
- 向量计算中支持 First 聚合函数 #4771
- 向量计算中支持 SUM 聚合函数 #4797
- 向量计算中支持 MAX/MIN 聚合函数 #4837
- 向量计算中支持 Like 表达式 #4747
- 向量计算中支持 MultiplyDecimal 表达式 #4849
- 向量计算中支持 BitAnd/BitOr/BitXor 表达式 #4724
- 向量计算中支持 UnaryNot 表达式 #4808
Transaction
- 修复悲观事务中非悲观锁冲突导致出错的问题 #4801,#4883
- 减少在开启悲观事务后乐观事务的无用计算,提高性能 #4813
- 新增单语句 rollback,保证在当前语句发生死锁时不需要 rollback 整个事务 #4848
- 新增悲观事务相关监控项 #4852
- 支持
ResolveLockLite
命令用于轻量级清锁以优化在冲突严重时的性能 #4882
tikv-ctl
- 新增
bad-regions
命令支持检测更多的异常情况 #4862 tombstone
命令新增强制执行功能 #4862
Misc
- 新增
dist_release
编译命令 #4841
Tools
- TiDB Binlog
- 修复 Pump 因写入失败时未检查返回值导致偏移量错误的问题 #640
- Drainer 新增
advertise-addr
配置,支持容器环境中使用桥接模式 #634 - Pump 新增
GetMvccByEncodeKey
函数,加快事务状态查询 #632
TiDB Ansible