【TiDB 4.0 PCTA 学习笔记】- 1.3/1.4/1.5

课程名称:课程版本(101/201/301)+ 课程名称

学习时长:20

课程收获:

重新熟悉TIDB架构
了解TIDB 4.0新特性

课程内容:

TIDB核心由三大组件构成:TIDB,PD,TIKV
TIDB:
负责处理与客户端建立连接,处理客户端请求,并通过PD找到所需数据存储的TIKV地址,与TIKV交互获取数据,最终返回结果。与MySQL的Server层类似。
TIDB是无状态服务,本身不存储数据,只负责计算,理论上可以无限水平扩展。多节点实例对应用连接不是很友好,可以在数据库和应用中间使用负载均衡组件来进行流量均衡。

PD:
存储整个集群的元数据(某个Key/value存储在那个TIKV),对TIKV集群进行调度和负载君以及事务调度,分配全局事务ID(时间戳)。

TIKV:
TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

TIKV是在rocksdb的基础上进行修改,采用LSM数据结构存储数据,很好的减少了随机写,提升了写性能,但是LSM架构中读性能会有所影响。

总结:
TIDB采用存储计算分离架构,在扩缩容上可以做到非常灵活。PD单节点负责全局事务ID的签发,让整个分布式集群摆脱对时钟同步的依赖,但是目前的架构同时提供服务的节点只有一个,在超高tps场景下可能会成为限制集群扩展的瓶颈。TIKV采用raft协议保证数据多副本一致性,小单位的range设计能让集群扩缩容时,更便捷的迁移数据。

TIDB4.0新特性:
运维管理:
TIUP新推出的包管理器的工具,主要用于管理 TiDB 生态内的所有的包,提供组件管理、Playground、Cluster、TUF、离线部署等功能,将安装、部署、运维 TiDB 工具化,提升 DBA 部署、运维 TiDB 的效率。

TiDB Dashboard:
         TIDB web运维管理工具,大大提升DBA运维管理的效率。

 弹性调度功能
         结合 Kubernetes,可根据实时负载状态,动态扩缩节点,能够有效地缓解业务高峰的压力并且节约不必要的成本开销。


  TIDB:
      事务:
               大事务限制从3.x版的100M限制提升至10G。
               事务模式默认为悲观事务
      引擎:
              tiflash列式引擎,提高OLAP能力。

学习过程中参考的其他资料