【TiDB 4.0 PCTA 学习笔记】- 1.4 TiDB 平台架构和全景图@2班+陆亚尧

课程名称:101+ 1.4 TiDB 平台架构和全景图

学习时长:

60min

课程收获:

熟悉理解TIDB的整体架构、体系结构、各组件功能

课程内容:

【整体框架】

TiDB主要分为3个核心组件:TiDB Server ,PD Server 和TiKV Server,还有用于解决用户复杂OLAP需求的TiSpark组件。部署一个单机版的TiDB,这三个组件都需要启动。
框架图如下:

TiDB Server

TiDB Server负责接收应用成发送过来的SQL请求,处理SQL相关的逻辑,并通过PD找到存储所需数据的TiKV地址,与TiKV交互获取数据,最终返回结果。TiDB Server是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy或F5)对外提供统一得结束地址。

TiSpark

TiSpark就是Spark SQL on TiKV,是解决用户复杂OLAP需求的主要组件,将Spark SQL 直接运行在TiDB存储层上,同时融合TiKV 分布集群的优势,和 TiDB 一起为用户一站式解决 HTAP (Hybrid Transactional/Analytical Processing)需求。TiSPark依赖于TiKV集群和PD的存在。

TiKV Server

TiKV Server 负责存储数据,对于数据存储需要保证实现以下功能:

  • 支持跨数据中心的容灾;
  • 写入速度足够快;
  • 读取速度方便;
  • 支持数据修改与并发修改数据;
  • 多条记录修改后保证原子性。

TiKV的存储模型与SQL中Table无关,TiKV就是一个高性能高可靠性的巨大的(分布式)的map。
TiKV通过RocksDB将数据持久化到磁盘上,而不是直接向磁盘上写数据,也就是说具体的数据落地是用RocksDB负责。RokcsDB 是一个高性能的单机引擎。
TiDB采用Raft协议来保证数据一致性,Raft是一个一致性算法,PingCAP公司对Raft协议的实现做了大量的优化来保证这一协议切实可行。
Raft是一个一致性协议,提供了以下几个重要的功能:

  • Leader选举;
  • 成员变更;
  • 日志复制;

TiKV利用Raft来做数据复制,每个数据变更都会落地为一条Raft日志,通过Raft的日志复制功能,将数据安全可靠地同步到Group的多数节点中,以防单机失效。数据的写入是通过Raft这一层的接口写入,而不是直接写RocksDB。通过Raft实现,我们拥有一个分布式的巨大Map,也就不用担心某台机器挂掉。
下图为数据的存储流程。
%E5%9B%BE%E7%89%87
TiKV是以Region为单位做存储与复制,将key-value分段存储在节点上,每一段是一系列连续的key,也就是分Range,每一段就是一个Region。每个Region中存储的数据不超过一定的大小(默认是64mb),每一个Region都可以用StartKey到EndKey这样一个左闭右开区间来描述。

TiKV以Region为单位做数据的复制,也就是一个Region的数据会保存多个副本,每个副本叫做一个Replica.Replica之间是通过Raft来保证数据的一致性,一个Region的多个Replica会保存在不同的节点上,构成一个Raft Group。其中Replica会作为这个Group的leader,其他的Replica作为Follower。所有的读和写都是通过Leader进行,在由leader复制给Follower。

4.0引入TIFlash列式存储引擎,TIDB同时支持AP和TP业务


小结:TiKV是一个分布式key-value存储系统,一个巨大的分布式Map系统,一个全局有序的分布式key-value引擎。

PD Server

Placement Driver(简称PD)是TiDB里面全局中心总控节点,是整个集群的管理模块,负责整个集群的调度。

  • 信息收集

    一、每个TiKV节点会定期向PD汇报节点的整体信息。
    二、每个Raft Group的Leader会定期向PD汇报信息

  • 调度策略
    PD收集了这些信息后,还需要一些策略来制定具体的调度计划。
    一、一个Region的Replica数量正确
    二、一个Raft Group中的多个Replica不在同一个位置
    三、副本在Store之间的分布均匀分配
    四、Leader数量在Store之间均匀分配
    五、访问热点数量在Store之间均匀分配
    六、各个Store的存储空间占用大致相等
    七、控制调度速度,避免影响在线服务
    八、支持手动下线节点

  • 全局时间戳TSO

小结:作为中心中控节点,PD通过集成etcd,自动得支持auto failover,无须担心单点故障问题。同时PD也通过etcd的raft,保证了数据强一致性,不用担心数据丢失问题。除此之外,PD还负责全局ID的生成,以及全局时间戳TSO的生成,保存整个集群TiKV的元信息,负责给client提供路由功能。

【生态工具】
TIUP 4.0引入的安装部署,下载、分发、组件管理
Lightning 全量导入 支持SQL dump 导出的Mydumper或CSV的数据源
Dumpling 全量导出工具 可选SQL或CSV
Backup&Restore (BR) 分布式备份恢复工具,TIKV存储层入手 可单库单表
Change data capture (CDC) 增量数据同步工具,拉取TIKV的row change log
Data Migration (DM) MYSQL迁移到TIDB工具
Dashboard TIDB监控工具

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

搬运出处: