课程名称:301 + TiDB 中的读写流程
学习时长:
课程收获:
TiDB 中的读写流程
课程内容:
1.TiDB SQL处理流程
1)SQL转换成AST抽象语法树
2)生成逻辑执行计划
3)优化执行计划
4)根据CPU选择实际执行计划
5)根据执行计划发送对应请求给TiKV节点
-
TIDB执行读请求
1)客户端与TIDB建议链接并发送请求给TiDB
2)TIDB获取客户端请求的SQL语句
3)TiDB负责parses和compiles 阶段,对SQL进行解析和AST语法树优化,制定和优化执行计划
4)TiDB与PD进行交互,获取start_ts信息
5)TiDB根据执行计划 以及table元信息生成executor执行器
6)TiDB通过gRPC的方式将coprocessor请求发送给TiKV
7)TiKV接受到请求,并按请求过滤数据发送给TiDB
8)TiDB接收到所有请求结果后整理汇总数据
9)TiDB将整理的结果返回给客户端 -
TIDB执行写请求
1)客户端与TIDB建议链接并发送请求给TiDB
2)TIDB获取客户端请求的SQL语句
3)TiDB负责parses和compiles 阶段,对SQL进行解析和AST语法树优化,制定和优化执行计划
4)TiDB与PD进行交互,获取start_ts信息
5)TiDB根据执行计划 以及table元信息生成executor执行器
【前5步与读请求一致】
6)TiDB发起commit请求
7)TiDB进行二阶段提交two-phase-commit(prewrite/commit)先获取start_ts,在二阶段(2PC)提交的commit请求向PD获取commit_ts
8)TiKV将请求的结果返回给TiDB
9)TiDB将结果返回客户端
