前情回顾

在前面的章节中,我们共同梳理了 TiDB v1/v2/v3 的相关内容。

本节将继续讨论 TiDB v4.0 大版本,在该版本中 TiDB 集群架构没有太大变化,不过 TiFlash 重要程度进一步提升,下图为 TiDB HTAP 形态架构,其中包含 TiFlash 节点。

星辰考古:TiDB v4.0 进化前夜_数据

TiDB v4 时间线

TiDB v3.x 的时间线是 2019.1–2020.12,TiDB v4.x 的时间线来到了 2020.1–2021.12

  • 2020-01-17,TiDB 4.0.0-beta 发布。
  • 2020-05-28,TiDB 4.0 GA。TiDB v4.0 在稳定性、易用性、性能、安全和功能方面进行了大量的改进。
  • 2020-12-21,TiDB 4.0.9 发布。
  • 2021-01-15,TiDB 4.0.10 发布。
  • 2021-12-17,TiDB 4.0.16 发布,这是 TiDB v4 系列的最后一个小版本。

20 年共发布 16 个小版本,21 年共发布 7 个小版本。

星辰考古:TiDB v4.0 进化前夜_配置项_02
(TiDB v4.0 与 v3.0 的 TPC-C 性能测试对比图)

星辰考古:TiDB v4.0 进化前夜_数据_03
(TiDB v4.0 与 v3.0 的 TPC-H 性能测试对比图)

TiDB v4 新特性

TiDB v4 引入 70 余项重要新特性,以下是几项关键功能:

热点调度支持更多维度。热点调度在决策时,除了根据写入/读取流量作为调度依据外,新引入 key 的维度。可以很大程度改善原有单一维度决策造成的 CPU 资源利用率不均衡的问题。

TiFlash 是 TiDB 为完善 Realtime HTAP 形态引入的关键组件,TiFlash 通过 Multi-Raft Learner 协议实时从 TiKV 复制数据,确保行存储引擎 TiKV 和列存储引擎 TiFlash 之间的数据强一致。TiKV、TiFlash 可按需部署在不同的机器,解决 HTAP 资源隔离的问题。

注:
TiFlash 是 TiDB 生态中的核心组件,从 TiDB 3.1 引入,于 22.04.01 正式开源,随 4.0 正式 GA。

TiDB Dashboard:DBA 通过 TiDB Dashboard UI 可以快速了解集群的集群拓扑、配置信息、日志信息、硬件信息、操作系统信息、慢查询信息、SQL 访问信息、诊断报告信息等,帮助 DBA 通过 SQL 快速了解、分析系统的各项指标。

星辰考古:TiDB v4.0 进化前夜_配置项_04
TiDB 热力图,来源: https://asktug.com/t/topic/813071

TiUP 是 4.0 版本中新推出的包管理器的工具,主要用于管理 TiDB 生态内的所有的包,提供组件管理、本地部署、集群管理、镜像管理、离线部署、性能测试等功能,将安装、部署、运维 TiDB 工具化,提升 DBA 部署、运维 TiDB 的效率。

悲观事务正式 GA 并作为默认事务模式提供,支持 Read Committed 隔离级别以及 SELECT FOR UPDATE NOWAIT 语法。

支持大事务,最大事务限制由 100 MB 提升到了 10 GB,同时支持乐观事务和悲观事务。

TiCDC 从 v4.0.6 起成为正式功能,可用于生产环境。TiCDC 是一款通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,具有将数据还原到与上游任意 TSO 一致状态的能力,同时提供开放数据协议 (TiCDC Open Protocol),支持其他系统订阅数据变更。

星辰考古:TiDB v4.0 进化前夜_数据_05
图为 TiCDC 架构图

星辰考古:TiDB v4.0 进化前夜_配置项_06
图为 TiCDC 集群及节点内部组件的设计图

下面按 TiDB, TiKV, PD, TiFlash, TiCDC 组件分别摘录了部分重要新特性,以供参考。

TiDB

  • 新增 SQL Binding 的自动捕获和自动演进功能 #13199 #12434
  • information_schema.tables 表新增 TIDB_ROW_ID_SHARDING_INFO 列,输出列的 RowID 打散相关的信息(例如:表 A 指定 SHARD_ROW_ID_BITS,该列的值为 “SHARD_BITS={bit_number}”) #13418
  • 支持在 CREATE TABLE 语句中指定 auto_random 选项 #16813
  • AUTO RANDOM 被移出实验特性并正式 GA (TiDB 4.0.3)
  • 支持将列属性 AUTO_INCREMENT 变更为 AUTO_RANDOM #24608
  • 新增 DDLJobs 系统表,用于查询 DDL 任务详细信息 #14837
  • 新增 Sequence 功能 #14731 #14589 #14674 #14442
  • 新增大小写不敏感的排序规则,用户可在新集群上启用 utf8mb4_general_ci 和 utf8_general_ci #33
  • 支持 uft8_unicode_ci 和 utf8mb4_unicode_ci 排序规则 #22558
  • 增强 RECOVER TABLE 语法,现在该语法支持恢复被 Truncate 的表 #15398
  • 新增 Flashback 命令,支持恢复被 Truncate 的表。
  • 新增 SQL 语法 BACKUP/RESTORE 来进行数据备份恢复 #15274 #16960
  • 支持 show table partition regions 语法 #17294
  • 支持新增分区时自动分裂 Region 的功能 #17665
  • 新增动态修改、更新配置项的功能,配置项由 PD 持久化存储 #14750 #14303 #14830
  • 支持使用 SHOW CONFIG 语法显示 PD 和 TiKV 的配置 #16475
  • 支持 SET CONFIG 语句进行 PD/TiKV 节点配置修改 #16853
  • 新增系统自动根据负载均衡策略从不同角色上读取数据的功能,且新增 leader-and-follower 系统变量用于控制开启此功能 #14761
  • 默认打开 Coprocessor cache #16710
  • 默认打开 tidb_allow_batch_cop #18552
  • 默认打开执行信息的收集 #18518
  • 支持会话和全局变量 sql_select_limit #17604
  • 添加 txn-entry-size-limit 配置项,用于限制事务中单个 key-value 记录的大小 #21843
  • 在 v4.0 中将 tidb_multi_statement_mode 的默认值从 WARN 更改为 OFF。建议使用客户端库的多语句功能。#25749
  • 支持在 INSERT 语句中使用 MEMORY_QUOTA() hint #18101
  • 支持在广播 Join 中使用外连接 #19664
  • 对于自动提交语句的重试转换到悲观锁模式 #19796
  • 使用标准错误替换 TiDB 中的错误码和错误信息 #19888
  • 支持接受来自 MySQL 8.0 客户端的连接 #19959
  • Grafana 面板支持多集群 #22534
  • Grafana 升级到 v7.5.11 以解决安全漏洞

TiKV

  • 升级 RocksDB 的版本到 6.4.6
  • 新增从 Follower 副本读取数据的功能
  • 支持将动态修改配置的结果持久化存储到硬盘 #6684
  • 支持基于负载的 Region split #7623
  • 为错误定义错误码 #8387
  • 支持日志输出为 JSON 格式 #8382

注:
TiDB 3.0.20 中内置 RocksDB v5.18.3,升级到 TiDB 4.0.16 后, RocksDB 版本升级到 v6.4.6。
在作者的印象中,PingCAP 从不避讳使用了开源组件,如 RocksDB, etcd, ClickHouse 等。
TiDB 源于开源,拥抱开源,贡献开源,海纳百川,与世界开发者协同科技创新。
本文只讨论 TiDB 相关技术内容,就不提套壳、马甲、超过 100% 兼容之类的事情了。

PD

  • 新增根据存储节点负载信息优化热点调度的功能
  • 新增 Placement Rules 功能,通过组合不同的调度规则,精细控制任意一段数据的副本的数量、存放位置、存储主机类型、角色等信息
  • 新增通过 UI 访问集群热点数据分布功能 #2086
  • member API 返回信息新增部署路径和组件版本信息 #2130
  • pd-ctl 新增 component 命令用于修改、查看组件配置信息 (experimental) #2092
  • 支持将动态修改配置的结果持久化存储到硬盘 #2153
  • 移除 config manager 以使其它组件自行控制它们的配置 #2349
  • 支持 JSON 格式日志 #2565
  • PD 客户端中添加 GetAllMembers 函数,用于获取 PD 成员信息 #2980
  • 添加了配置项 enable-redact-log,可以设置将日志中的用户数据脱敏 #3266

TiFlash

  • 存储引擎中的粗糙索引默认开启
  • 支持运行在 ARM 架构
  • 在 TiFlash 中支持在广播 Join 中使用外连接
  • 支持 CAST 函数下推
  • 添加了配置项 security.redact_info_log,可以设置将日志中的用户数据脱敏
  • 新增工具用于检测当前 tiflash replica 的状态

TiCDC

自 v4.0.6 起,TiCDC 成为正式功能,可用于生产环境

  • 支持通过 cdc cli 来管理同步任务 (changefeed) #546
  • 支持输出 maxwell 格式的数据 #869
  • 为 maxwell 协议默认开启 old value 特性 #1144
  • 支持快照级别一致性复制 #932
  • 默认启用 unified sorter 特性 #1230
  • 在 capture 元信息中添加版本信息和在 changefeed 元信息中创建该 changefeed 的 CLI 版本 #1342
  • 若任务的暂停同步时间超过 1 天,再次启动该任务时需要二次确认 #1497
  • 遇到无法恢复的 DML 错误立即退出,不进行重试 #1724
  • 为 EtcdWorker 添加 tick 频率限制,防止 PD 的 etcd 写入次数过于频繁影响 PD 服务 #3112

TiDB v4 兼容性变化

TiDB

  • 修改配置项 log.enable-slow-log 的类型,由整数型改为布尔类型 #14864
  • 调整修改系统表 mysql.userpassword 列名为 authentication_string,与 MySQL 5.7 保持一致(该变动会导致升级后不能回退) #14598
  • txn-total-size-limit 配置项的默认值由 1GB 调整为 100MB #14522
  • 新增动态修改、更新配置项的功能,配置项由 PD 持久化存储 #14750 #14303 #14830
  • tidb-server 状态端口被占用时由原来打印一条告警日志改成拒绝启动 #15177
  • 去掉了特别为开启 Binlog 时定义的事务容量上限 (100 MB),现在事务的容量上限统一为 10 GB,但若开启 Binlog 且下游是 Kafka,由于 Kafka 消息大小的限制是 1 GB,请根据情况调整 txn-total-size-limit 配置参数 #16941
  • 移除慢查询日志和 statement summary 表中的敏感信息 #18130
  • 禁止在 sequence 缓存中出现负数 #18103
  • CLUSTER_INFO 表中不再显示 tombstone 状态的 TiKV 和 TiFlash 节点 #17953
  • 诊断规则 current-load 变更为 node-check #17660
  • 修改 drop partitiontruncate partition 的参数 #18930
  • add partition 操作添加状态检查 #18865
  • 废弃配置文件中 enable-streaming 配置项 #21055
  • 以下 Bug 修复涉及执行结果变化,可能引起兼容性变化:
    • 修复了 greatest(datetime) union null 返回空字符串的问题 #26532
    • 修复了 having 可能执行错误的问题 #26496
    • 修复了当 between 表达式两边的 collation 不一致会导致查询结果错误的问题 #27146
    • 修复了 extract 函数的参数是负数时查询结果错误的问题 #27236
    • 修复了当 group_concat 函数包含非 bin 的 collation 时查询结果错误的问题 #27429
    • 修复将 Apply 算子转为 Join 时漏掉列信息的问题 #27233
    • 修复将非法字符串转为 DATE 类型时的非预期行为 #26762
    • 修复开启 New Collation 时多列的 count distinct 返回结果错误的问题 #27091

TiKV

  • 新增 readpool.unify-read-pool 配置项,默认值为 True,用于控制点查是否共用 Coprocessor 的处理线程
  • 调整 unify-read-pool 配置项的方式,仅在新部署的集群时默认启用,旧集群保持原来的方式 #7059
  • 默认关闭 hibernate region #7618
  • 将加密相关的配置移到 security 分类下,即调整配置项 [encryption][security.encryption] #7810
  • 减少开启加密时的 I/O 开销和锁冲突。该修改向下不兼容。如果需要降级至 v4.0.9 以下,需要将 security.encryption.enable-file-dictionary-log 配置为 false,并在降级前重启 #9195
  • 在 v4.0.16 以前,当把一个非法的 UTF-8 字符串转换为 Real 类型时会直接报错。自 v4.0.16 起,TiDB 会依照该字符串中的合法 UTF-8 前缀进行转换 #11466

注:
关于 Unnify Read Pool 的内容,我们在上文  星辰考古:TiDB v3.x 忆水木 的文末有所提及,细心的小伙伴可能已经注意到了。
这里再推荐一篇文章:
TiDB 4.0 新 Feature 原理及实践:统一读线程池  https://tidb.net/blog/56f2a0cd

PD

  • 持久化 store-limit 配置项,弃用 store-balance-rate 配置 #2557

其他

  • oom-action 参数设置为 cancel 时,当查询语句触发 OOM 阈值后会被 kill 掉,升级到 4.0 版本后除了 select 语句,还可能 kill 掉 insert/update/delete 等 DML 语句。
  • 4.0 版本增加了 rename 时对表名长度的检查,长度限制为 64 个字符。升级后 rename 后的表名长度超过这个限制会报错,3.0 及之前的版本则不会报错。
  • 4.0 版本增加了对分区表的分区名长度的检查,长度限制为 64 个字符。升级后,当你创建和修改分区表时,如果分区名长度超过这个限制会报错,3.0 及之前的版本则不会报错。
  • 4.0 版本对 explain 执行计划的输出格式做了改进,需要注意是否有针对 explain 制订了自动化的分析程序。
  • 4.0 版本支持 Read Committed 隔离级别。升级到 4.0 后,在悲观事务里隔离级别设置为 READ-COMMITTED 会生效,3.0 及之前的版本则不会生效。
  • 4.0 版本执行 alter reorganize partition 会报错,之前的版本则不会报错,只是语法上支持没有实际效果。
  • 4.0 版本创建 linear hash partition 和 subpartition 分区表时实际不生效,会转换为普通表,之前的版本则转换为普通分区表。

TiDB 3.0.20 升级到 4.0.16

在上文中我们搭建了 TiDB 3.0.20 作为 PoC 环境,本文基于此环境升级到 4.0.16 版本。

注意事项

  1. 从 TiDB 3.0 开始已经支持使用 TiUP 管理集群,如果你还在使用 TiDB Ansible,需先使用 TiUP 纳管集群,参考 tiup cluster import
  2. TiDB 目前暂不支持版本降级或升级后回退。如需将 3.0 之前的版本升级到最新 LTS 版本,需先升级到 TiDB 4.0,再进行后续升级操作。
  3. 升级前,需确认集群中没有正在运行的 DDL 操作,且升级过程中,也要避免 DDL 请求。
  4. TiDB 4.0 新增了排序规则支持框架,由参数 new_collations_enabled_on_first_bootstrap 控制,该参数默认关闭,但需注意,从 TiDB v6 开始该参数默认开启,更多内容可参考:  TiDB 6.x 新特性解读 | Collation 规则

升级速览

  1. 升级前,检查集群状态。
[root@tidb1 ~]# tiup cluster display mytidb
Cluster type:       tidb
Cluster name:       mytidb
Cluster version:    v3.0.20
Deploy user:        tidb
SSH type:           builtin
Grafana URL:        http://192.0.2.86:3000
ID                Role          Host        Ports        OS/Arch       Status  Data Dir                      Deploy Dir
--                ----          ----        -----        -------       ------  --------                      ----------
192.0.2.86:9093   alertmanager  192.0.2.86  9093/9094    linux/x86_64  Up      /tidb-data/alertmanager-9093  /tidb-deploy/alertmanager-9093
192.0.2.86:3000   grafana       192.0.2.86  3000         linux/x86_64  Up      -                             /tidb-deploy/grafana-3000
192.0.2.81:2379   pd            192.0.2.81  2379/2380    linux/x86_64  Up      /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.0.2.82:2379   pd            192.0.2.82  2379/2380    linux/x86_64  Up      /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.0.2.83:2379   pd            192.0.2.83  2379/2380    linux/x86_64  Up|L    /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.0.2.86:9090   prometheus    192.0.2.86  9090         linux/x86_64  Up      /tidb-data/prometheus-9090    /tidb-deploy/prometheus-9090
192.0.2.81:4000   tidb          192.0.2.81  4000/10080   linux/x86_64  Up      -                             /tidb-deploy/tidb-4000
192.0.2.82:4000   tidb          192.0.2.82  4000/10080   linux/x86_64  Up      -                             /tidb-deploy/tidb-4000
192.0.2.81:20160  tikv          192.0.2.81  20160/20180  linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.0.2.82:20160  tikv          192.0.2.82  20160/20180  linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.0.2.83:20160  tikv          192.0.2.83  20160/20180  linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
Total nodes: 11
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  1. 在中控节点执行升级。
[root@tidb1 ~]# time tiup cluster upgrade mytidb v4.0.16 --force --wait-timeout 600
Before the upgrade, it is recommended to read the upgrade guide at https://docs.pingcap.com/tidb/stable/upgrade-tidb-using-tiup and finish the preparation steps.
This operation will upgrade tidb v3.0.20 cluster mytidb to v4.0.16:
will upgrade and restart component "                 pd" to "v4.0.16",
will upgrade and restart component "               tikv" to "v4.0.16",
will upgrade and restart component "               tidb" to "v4.0.16",
...
Do you want to continue? [y/N]:(default=N) y
Upgrading cluster...
+ [ Serial ] - Download: component=tidb, version=v4.0.16, os=linux, arch=amd64
+ [ Serial ] - BackupComponent: component=tidb, currentVersion=v3.0.20, remote=192.0.2.81:/tidb-deploy/tidb-4000
+ [ Serial ] - CopyComponent: component=tidb, version=v4.0.16, remote=192.0.2.81:/tidb-deploy/tidb-4000 os=linux, arch=amd64
+ [ Serial ] - InitConfig: cluster=mytidb, user=tidb, host=192.0.2.81, path=/root/.tiup/storage/cluster/clusters/mytidb/config-cache/tidb-4000.service, deploy_dir=/tidb-deploy/tidb-4000, data_dir=[], log_dir=/tidb-deploy/tidb-4000/log, cache_dir=/root/.tiup/storage/cluster/clusters/mytidb/config-cache
deploy monitored
refresh monitored config
+ [ Serial ] - UpgradeCluster
Upgrading component pd
Upgrading component tikv
Upgrading component tidb
	Restarting instance 192.0.2.81:4000
	Restart instance 192.0.2.81:4000 success
Upgrading component prometheus
Upgrading component grafana
Upgrading component alertmanager
Stopping component node_exporter
Stopping component blackbox_exporter
Starting component node_exporter
Starting component blackbox_exporter
Upgraded cluster `mytidb` successfully
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  1. 升级完成后,检查集群状态。

这里可以看到新增的 UI Dashboard 运行在 83 节点上。

[root@tidb1 ~]# tiup cluster display mytidb
Cluster type:       tidb
Cluster name:       mytidb
Cluster version:    v4.0.16
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://192.0.2.83:2379/dashboard
Grafana URL:        http://192.0.2.86:3000
ID                Role          Host        Ports        OS/Arch       Status  Data Dir                      Deploy Dir
--                ----          ----        -----        -------       ------  --------                      ----------
192.0.2.86:9093   alertmanager  192.0.2.86  9093/9094    linux/x86_64  Up      /tidb-data/alertmanager-9093  /tidb-deploy/alertmanager-9093
192.0.2.86:3000   grafana       192.0.2.86  3000         linux/x86_64  Up      -                             /tidb-deploy/grafana-3000
192.0.2.81:2379   pd            192.0.2.81  2379/2380    linux/x86_64  Up|L    /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.0.2.82:2379   pd            192.0.2.82  2379/2380    linux/x86_64  Up      /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.0.2.83:2379   pd            192.0.2.83  2379/2380    linux/x86_64  Up|UI   /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.0.2.86:9090   prometheus    192.0.2.86  9090         linux/x86_64  Up      /tidb-data/prometheus-9090    /tidb-deploy/prometheus-9090
192.0.2.81:4000   tidb          192.0.2.81  4000/10080   linux/x86_64  Up      -                             /tidb-deploy/tidb-4000
192.0.2.82:4000   tidb          192.0.2.82  4000/10080   linux/x86_64  Up      -                             /tidb-deploy/tidb-4000
192.0.2.81:20160  tikv          192.0.2.81  20160/20180  linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.0.2.82:20160  tikv          192.0.2.82  20160/20180  linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.0.2.83:20160  tikv          192.0.2.83  20160/20180  linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
Total nodes: 11
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  1. 连接 tidb-server 查看版本信息。
[root@tidb1 ~]# tidb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25-TiDB-v4.0.16 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

(root@127.1) [(none)] 00:28:36> select version(), tidb_version()\G
*************************** 1. row ***************************
     version(): 5.7.25-TiDB-v4.0.16
tidb_version(): Release Version: v4.0.16
Edition: Community
Git Commit Hash: 75f81d2d7faae72575c4e471ec0b96756796284a
Git Branch: heads/refs/tags/v4.0.16
UTC Build Time: 2021-12-02 04:17:32
GoVersion: go1.13
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false
1 row in set (0.00 sec)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

直观变化

  1. 默认 Schema 新增 METRICS_SCHEMA

它是基于 Prometheus 中 TiDB 监控指标的一组视图。每个表的 PromQL(Prometheus 查询语言)的源均可在 INFORMATION_SCHEMA.METRICS_TABLES 表中找到。

  1. TiDB 状态端口输出信息增加。
[root@tidb1 ~]# curl -s localhost:10080/info | jq
{
  "is_owner": true,
  "max_procs": 2,					<-- New!
  "gogc": 100,						<-- New!
  "version": "5.7.25-TiDB-v4.0.16",
  "git_hash": "75f81d2d7faae72575c4e471ec0b96756796284a",
  "ddl_id": "0d3ad6f4-5932-494e-8285-1c702390151a",
  "ip": "192.0.2.81",
  "listening_port": 4000,
  "status_port": 10080,
  "lease": "45s",
  "binlog_status": "Off",
  "start_timestamp": 1720456032		<-- New!
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  1. ROOT 用户权限增加。

TiDB v3.0.20 中 ROOT 用户默认权限 25 项,升级后,TiDB v4.0.16 中有 28 项,新增三个权限。

RELOAD
FILE
CONFIG
  • 1.
  • 2.
  • 3.

TiDB v4 系列的新功能、兼容性变化介绍,以及升级演示就到这里了。

总结

依惯例,我们再看下 TiDB v4 时期(2020-2021) 的几件重要事情:

  • 2020.03,教大家从零到一写分布式数据库的 Talent Plan Courses 正式发布
  • 2020.05,电子书《TiDB in Action 4.0》由 102 作者在 48 小时内完稿并上线,目录: https://book.tidb.io/SUMMARY.html
  • 2020.09,PingCAP 团队的论文《TiDB: A Raft-based HTAP Database 》入选 VLDB 2020 ,成为业界第一篇 Real-time HTAP 分布式数据库工业实现的论文
  • 2020.10,TiDB 培训认证项目两周年,TiDB 4.0 PCTA/PCTP 认证项目上线
  • 2020.11,完成 2.7 亿美元的 D 轮融资
  • 2020.12,TiDB 通过信通院分布式数据库性能与基础能力两项评测
  • 2020.12,TiDB 社区 AskTUG 成员突破 5300 人,27 人获得 MVA 荣誉称号
  • 2021.01,PingCAP 连续两年在 CNCF 全球贡献排行榜中位列中国企业第一位,全球排名第 6 位
  • 2021.04,面向企业级核心场景的 TiDB 5.0 GA 发版

星辰考古:TiDB v4.0 进化前夜_配置项_07

如果用一个词来总结 TiDB 1.0 到 4.0 的这 6 年,一定是“创业维艰”。国产基础软件领域,尤其是数据库赛道,国内长年使用国际领先的商业软件或国际通用的开源软件,在一片红海中从零全新打造国产数据库,推行商用,投产几百家客户的生产环境,并得到资本市场的认可,这是 国产基础软件的骄傲

星辰考古:TiDB v4.0 进化前夜_数据_08

【星辰考古】系列的四个章节就到这里。

下一期,我们开启新篇章,【星辰往事】,共同讨论 TiDB v5.x/v6.x 的内容。

素材来源

本文素材来自 PingCAP 官方网站及网络,包括但不局限于:

#tidb #pingcap #htap #国产数据库

🌻 往期精彩 ▼

  • [Oracle]
    • [Oracle 数据库全面升级为 23ai]
    • [python-oracledb 已率先支持 Oracle 23ai]
    • [一文带你了解 Oracle 23ai 新特性 Vector 的基础用法]
  • [MySQL]
    • [MySQL 9.0 的 VECTOR 文档更新]
    • [MySQL 9.0.0 新鲜出炉!支持向量类型]
    • [「合集」MySQL 8.x 系列文章汇总]
    • [如何选择适合的 MySQL Connector/J 版本]
  • [TiDB]
    • [星辰考古:TiDB v3.x 忆水木]
    • [星辰考古:TiDB v2.x 回忆杀]
    • [敢于公布BUG的国产数据库才是好数据库]
  • [PG]
    • [[RL9] Rocky Linux 9.4 搭载 PG 16.1]
    • [即将告别PG 12,建议升级到PG 16.3版本]
    • [后 EL 7 时代,PG 16 如何在 CentOS 7 上运行]

– / END / –