【TiDB 4.0 PCTA 学习笔记】- 1.6 Read and Write data in the TiDB database platform(TiDB 中的读写流程)@1班+赵燕雄

课程名称:1.6 Read and Write data in the TiDB database platform(TiDB 中的读写流程)

学习时长:20min

课程收获:

了解到TiDB三大组件功能和读写请求的执行流程

课程内容:

三大组件:
1、处理SQL的TiDB组件
功能:可以理解为数据库的server层,解析sql和将请求转发给存储层
2、负责调度的PD组件
功能:rcoksdb存储,raft保证一致性,实现MVCC多版本并发控制,事务层实现事务相关功能
3、负责存储的TiKV组件
功能:1、分配分布式事务id,事务开始提交时需要的全局tso号
2、region和leader的调度,让请求均匀分散到TiKV节点上
3、提供dashboard,方便检查集群状态

TiDB SQL执行流程
sql -> 转化为抽象语法树 -> ast生成逻辑执行计划 -> 对执行计划进行优化 -> 优化完成选择实际执行计划 -> 将实际执行计划发送给对应的TiKV节点

读请求处理过程
1、客户端与TiDB建立连接,并发送请求给TiDB
2、TiDB接受客户端发送的请求,获取sql语句
3、TiDB进行parses和compiles阶段对sql解析,生成ast语法树进行优化
4、与PD交互获取start_ts信息
5、根据执行计划和元信息生成executor执行器
6、通过gRPC,将请求发送给TiKV
7、TiKV接受请求,并按请求处理数据,并将数据返回给TiDB
8、TiDB接受所有返回数据进行汇总
9、TiDB将整理的数据返回给客户端

写请求处理过程
1、客户端与TiDB建立连接,并发送请求给TiDB
2、TiDB接受客户端发送的请求,获取sql语句
3、TiDB进行parses和compiles阶段对sql解析,生成ast语法树进行优化
4、与PD交互获取start_ts信息
5、根据执行计划和元信息生成executor执行器
6、TiDB发起commit请求
7、TiKV参照percolator进行二阶段提交prewrite阶段和commit阶段,在commit的阶段会向PD请求commit_ts
8、TiKV将请求的结果返回给TiDB
9、TiDB将结果返回给客户端

备注:读请求只向PD请求一次ts,写请求请求两次ts

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