内容简介:2019 年 6 月 28 日,TiDB 发布 3.0 GA 版本,对应的 TiDB Ansible 版本为 3.0.0。相比于 V2.1,V3.0.0 版本在以下方面有重要改进:官网链接:
Overview
2019 年 6 月 28 日,TiDB 发布 3.0 GA 版本,对应的 TiDB Ansible 版本为 3.0.0。
相比于 V2.1,V3.0.0 版本在以下方面有重要改进:
- 稳定性方面,显著提升了大规模集群的稳定性,集群支持 150+ 存储节点,300+ TB 存储容量长期稳定运行。
- 易用性方面有显著的提升,降低用户运维成本,例如:标准化慢查询日志,制定日志文件输出规范,新增
EXPLAIN ANALYZE,SQL Trace 功能方便排查问题等。 - 性能方面,与 2.1 相比,TPC-C 性能提升约 4.5 倍,Sysbench 性能提升 50%+。 因支持 View,TPC-H 50G Q15 可正常运行。
- 新功能方面增加了窗口函数、视图( 实验特性 )、分区表、插件系统、悲观锁( 实验特性 )、
SQL Plan Management等特性。
TiDB
-
新功能
- 新增 Window Function,支持所有 MySQL 8.0 中的窗口函数,包括
NTILE,LEAD,LAG、PERCENT_RANK、NTH_VALUE、CUME_DIST、FIRST_VALUE、LAST_VALUE、RANK、DENSE_RANK、ROW_NUMBER函数 - 新增 View 功能( 实验特性 )
-
完善 Table Partition 功能:
- Range Partition
- Hash Partition
- 新增插件系统,官方提供 IP 白名单( 企业版特性 ),审记日志( 企业版特性 )等插件
- 新增
SQL Plan Management功能,通过绑定 SQL 执行计划确保查询的稳定性( 实验特性 )
- 新增 Window Function,支持所有 MySQL 8.0 中的窗口函数,包括
-
SQL 优化器
- 优化
NOT EXISTS子查询,转化为 Anti Semi Join 提升性能 - 优化
Outer Join常量传播,新增Outer Join消除优化规则,避免无效计算,提升性能 - 优化
IN子查询,先聚合后执行Inner Join,提升性能 - 优化 Index Join,适应更多的场景,提升性能
- 优化 Range Partition 的 Partition Pruning 优化规则,提升性能
- 优化
_tidb_rowid查询逻辑,避免全表扫描,提升性能 - 当过滤条件中包含相关列时,在抽取复合索引的访问条件时尽可能多地匹配索引的前缀列,提升性能
- 利用列之间的顺序相关性,提升代价估算准确度
- 基于统计信息的贪心算法及动态规划算法改进了
Join Order,提升多表关联的执行速度 - 新增 Skyline Pruning,利用规则防止执行计划过于依赖统计信息,提升查询的稳定性
- 提升单列索引上值为 NULL 时行数估算准确度
- 新增
FAST ANALYZE,通过在各个 Region 中随机采样避免全表扫描的方式提升统计信息收集性能 - 新增单调递增的索引列增量
Analyze功能,提升统计信息收集性能 - 支持
DO语句中使用子查询 - 支持在事务中使用 Index Join
- 优化
prepare/execute,支持不带参数的 DDL 语句 - 修改变量
stats-lease值为 0 时系统的行为,使其自动加载统计 - 新增导出历史统计信息功能
- 新增导入导出列的关联性信息功能
- 优化
-
SQL 执行引擎
- 优化日志输出,
EXECUTE语句输出用户变量,COMMIT语句输出慢查询日志,方便排查问题 - 新增
EXPLAIN ANALYZE功能,提升SQL 调优易用性 - 新增
admin show next_row_id功能,方便获取下一行 ID - 新增
JSON_QUOTE、JSON_ARRAY_APPEND、JSON_MERGE_PRESERVE、BENCHMARK、COALESCE、NAME_CONST6 个内建函数 - 优化 Chunk 大小控制逻辑,根据查询上下文件动态调整,降低 SQL 执行时间和资源消耗,提升性能
- 新增
TableReader、IndexReader和IndexLookupReader算子内存追踪控制 - 优化 Merge Join 算子,使其支持空的
ON条件 - 优化单个表列较多时写入性能,提升数倍性能
- 通过支持逆序扫数据提升
admin show ddl jobs的性能 - 新增
split table region语句,手动分裂表的 Region,缓解热点问题 - 新增
split index region语句,手动分裂索引的 Region 缓解热点问题 - 新增黑名单禁止下推表达式到 Coprocessor 功能
- 优化 Expensive Query 日志,在日志中打印执行时间或者使用内存超过阈值的 SQL 查询
- 优化日志输出,
-
DDL
- 支持字符集从
utf8转换到utf8mb4的功能 - 修改默认字符集从
utf8变为utf8mb4 - 新增
alter schema语句修改数据库 charset 和 collation 功能 - 新增 ALTER ALGORITHM
INPLACE/INSTANT功能 - 新增
SHOW CREATE VIEW功能 - 新增
SHOW CREATE USER功能 - 新增快速恢复误删除的表功能
- 新增动态调整
ADD INDEX的并发数功能 - 新增 pre_split_regions 选项,在
CREATE TABLE时预先分配 Region,缓解建表后大量写入造成的写热点问题 - 新增通过 SQL 语句指定表的索引及范围分裂 Region,缓解热点问题
- 新增
ddl_error_count_limit全局变量,控制 DDL 任务重次数 - 新增列属性包含
AUTO_INCREMENT时利用SHARD_ROW_ID_BITS打散行 ID 功能,缓解热点问题 - 优化无效 DDL 元信息存活时间,使集群升级后一段时间 DDL 操作比较慢的情况变短
- 支持字符集从
-
事务
- 新增悲观事务模型( 实验特性 )
-
优化事务处理逻辑,适应更多场景,具体如下:
-
tidb_disable_txn_auto_retry的默认值为on,即不会重试非自动提交的事务 - 新增
tidb_batch_commit系统变量控制将事务拆分成多个事务并发执行 - 新增
tidb_low_resolution_tso系统变量控制批量获取tso个数,减少事务获取tso的次数以适应某些数据一致性要求较低的场景 - 新增
tidb_skip_isolation_level_check变量控制事务检查隔离级别设置为 SERIALIZABLE 时是否报错 - 修改
tidb_disable_txn_auto_retry系统变量的行为,修改为影响所有的可重试错误
-
-
权限管理
- 对 `ANALYZE`、`USE`、`SET GLOBAL`、`SHOW PROCESSLIST` 语句进行权限检查 - 新增基于角色的权限访问控制功能 (RBAC)(**实验特性**)
-
Server
-
优化慢查询日志,具体包括:
- 重构慢查询日志格式
- 优化慢查询日志内容
- 优化查询慢查询日志的方法,通过内存表
INFORMATION_SCHEMA.SLOW_QUERY,ADMIN SHOW SLOW语句查询慢查询日志
- 制定日志格式规范,重构日志系统,方便 工具 收集分析
- 新增 SQL 语句管理 TiDB Binlog 服务功能,包括查询状态,开启 TiDB Binlog,维护发送 TiDB Binlog 策略
- 新增通过
unix_socket方式连接数据库 - 新增 SQL 语句
Trace功能 - 新增
/debug/zipHTTP 接口,获取 TiDB 实例的信息,方便排查问题 -
优化监控项,方便排查问题,如下:
high_error_rate_feedback_total
- 优化系统初始化流程,仅允许 DDL Owner 执行初始化操作,缩短初始化或升级过程中的启动时间
- 优化
kill query语句执行逻辑,提升性能,确保资源正确释放 - 新增启动选项
config-check检查配置文件合法性 - 新增
tidb_back_off_weight系统变量,控制内部出错重试的退避时间 - 新增
wait_timeout、interactive_timeout系统变量,控制连接空闲超过变量的值,系统自动断开连接。 - 新增连接 TiKV 的连接池,减少连接创建时间
-
-
兼容性
ALLOW_INVALID_DATES SHOW CREATE DATABASE IF NOT EXISTS
PD
- 新增从单个节点重建集群的功能
- 将 Region 元信息从 etcd 移到 go-leveldb 存储引擎,解决大规模集群 etcd 存储瓶颈问题
-
API
remove-tombstone ScanRegions GetOperator GetStores
-
配置
enable-two-way-merge hot-region-schedule-limit hot-region-cache-hits-threshold store-balance-rate
-
调度器优化
waitingOperator shuffle-hot-region
-
模拟器
- 新增数据导入场景模拟
- 新增为 Store 设置不同的心跳间隔的功能
-
其他
- 升级 etcd,解决输出日志格式不一致,prevote 时选举不出 Leader,Lease 死锁等问题
- 制定日志格式规范,重构日志系统,方便工具收集分析
- 新增调度参数,集群 Label 信息,PD 处理 TSO 请求的耗时,Store ID 与地址信息等监控指标
TiKV
- 新增分布式 GC 以及并行 Resolve Lock 功能,提升 GC 的性能
- 新增逆向
raw_scan和raw_batch_scan功能 - 新增多线程 Raftstore 和 Apply 功能,提升单节点内可扩展性,提升单节点内并发处理能力,提升单节点的资源利用率,降低延时,同等压力情况下性能提升 70%
- 新增批量接收和发送 Raft 消息功能,写入密集的场景 TPS 提升 7%
- 新增 Apply snapshot 之前检查 RocksDB level 0 文件的优化,避免产生 Write stall
- 新增 Titan 存储引擎插件,提升 Value 超过 1KiB 时系统的性能,一定程度上缓解写放大问题( 实验特性 )
- 新增悲观事务模型( 实验特性 )
- 新增通过 HTTP 方式获取监控信息功能
- 修改 Insert 语义,仅在 Key 不存在的时候 Prewrite 才成功
- 制定日志格式规范,重构日志系统,方便工具收集分析
- 新增配置信息,Key 越界相关的性能监控指标
- RawKV 使用 Local Reader,提升性能
-
Engine
Iterator Key Bound Option
-
Server
batch commands
-
RaftStore
- 新增 hibernate Regions 功能,优化 RaftStore CPU 的消耗( 实验特性 )
- 删除 local reader 线程
-
Coprocessor
EXPLAIN ANALYZE
Tools
-
TiDB Lightning
TiKV-Importer TiKV-Importer
-
TiDB Binlog
advertise-addr
-
sync-diff-inspector
- 新增 checkpoint 功能,支持从断点继续校验的功能
- 新增 only-use-checksum 配置项,控制仅通过计算 checksum 校验数据的一致性
- 新增采用 TiDB 统计信息以及使用多个 Column 划分 Chunk 的功能,适应更多的场景
TiDB Ansible
-
升级监控组件版本到安全的版本
- Prometheus 从 2.2.1 升级到 2.8.1 版本
- Pushgateway 从 0.4.0 升级到 0.7.0 版本
- Node_exporter 从 0.15.2 升级到 0.17.0 版本
- Alertmanager 从 0.14.0 升级到 0.17.0 版本
- Grafana 从 4.6.3 升级到 6.1.6 版本
- Ansible 从 2.5.14 升级到 2.7.11 版本
- 新增 TiKV summary 监控面板,方便查看集群状态
- 新增 TiKV trouble_shooting 监控面板,删除重复项,方便排查问题
- 新增 TiKV details 监控面板,方便调试排查问题
- 新增滚动升级并发检测版本是否一致功能,提升滚动升级性能
- 新增 lightning 部署运维功能
- 优化
table-regions.py脚本,新增按表显示 leader 分布功能 - 优化 TiDB 监控,新增以 SQL 类别显示延迟的监控项
- 修改操作系统版本限制,仅支持 CentOS 7.0 及以上,Red Hat 7.0 及以上版本的操作系统
- 新增预测集群最大 QPS 的监控项,默认隐藏
官网链接: https://www.pingcap.com/index.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高可用架构(第1卷)
高可用架构社区 / 电子工业出版社 / 2017-11-1 / 108.00元
《高可用架构(第1卷)》由数十位一线架构师的实践与经验凝结而成,选材兼顾技术性、前瞻性与专业深度。各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。不仅架构师可以从中受益,其他IT、互联网技术从业者同样可以得到提升。一起来看看 《高可用架构(第1卷)》 这本书的介绍吧!
HEX CMYK 转换工具
HEX CMYK 互转工具
HEX HSV 转换工具
HEX HSV 互换工具