课程名称:101+ 1.6 Read and Write data in the TiDB database platform(TiDB 中的读写流程)
学习时长:10min
课程收获:对 TiDB 整体架构以及读写路程有大概的了解
课程内容:
基础架构介绍(同1.4内容)
略
请求处理的一般流程
SQL–>抽象语法树–>逻辑执行计划–>优化执行计划(CBO)–>执行查询
读请求处理流程
- 客户端连接TiDB并发送请求
- TiDB接受请求
- TiDB解析并优化客户端提交的SQL
- TiDB从PD获取start_ts
- TiDB根据执行计划和元信息生成一系列执行器
- TiDB通过gRPC发送协同处理请求到TiKV
- TiKV接受请求并过滤数据,再将数据返回TiDB
- TiDB接收并整理汇总TiKV发送来的数据
- TiDB将最终结果返回给客户端
写请求处理流程(1-5同读请求处理流程)
- 客户端连接TiDB并发送请求
- TiDB接受请求
- TiDB解析并优化客户端提交的SQL
- TiDB从PD获取start_ts
- TiDB根据执行计划和元信息生成一系列执行器
- TiDB发起commit请求
- TiKV进行二阶段提交,在commit阶段还会从PD获取commit_ts
- TiKV将结果返回给TiDB
- TiDB将结果返回给客户端
读&写来处理流程的主要区别
- 读只需要向PD获取一次TSO,写则有两次
- 写涉及到二阶段提交和分布式事务