1.6 Read and Write data in the TiDB database platform(TiDB 中的读写流程)@3班 + 奉慕海

课程名称:301 + TiDB 中的读写流程

学习时长:

课程收获:

TiDB 中的读写流程

课程内容:

1.TiDB SQL处理流程
1)SQL转换成AST抽象语法树
2)生成逻辑执行计划
3)优化执行计划
4)根据CPU选择实际执行计划
5)根据执行计划发送对应请求给TiKV节点

  1. 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将整理的结果返回给客户端

  2. 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将结果返回客户端

学习过程中遇到的问题或延伸思考:

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