【TIDB 4.0 PCTA学习笔记】1.6 Read and Write data in the TiDB database platform(TiDB 中的读写流程

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

关键知识点: TiDB 架构;读写流程

TiDB 架构


**TIDB:**数据库的sql层,无状态,对外暴露链接,执行sql解析和优化,生成执行计划,依赖外部组件实现负载均衡,本身不存储数据,转发数据请求到tikv层

TIKV:基于rock是DB的存储引擎,具有高度分层的特性。在底层的rcksdb的kv存储上层实现了raft协议保证数据一致性、在raft层上又实现了mvcc,在MVCC事务多版本并发控制,在mvcc上层式关于Trans层实现事务,tikv式分布式强一致的kv存储引擎,这个式不依赖于分布式文件系统的

PD:分配分布式事务ID,事务在开始和结束的时候需要全局tso号,实现region和leader的调度,让数据和请求可以均衡的打散到所有tikv上。通过etc实现高可用
在4.0 通过dashboard查看个节点的状态

读写流程

读写流程在tidb中
SQL转换AST,抽象语法树,生产逻辑执行计划,对生产的执行计划进行优化,优化完成后,cbo选择实际执行的执行计划,根据实际的执行计划,发送给tikv

读请求处理流程:

1.客户端与TiDB建立连接,并发送请求至TiDB

2.TiDB接收客户端发送的请求,获取客户端发送的sql语句

3.TiDB解析sql文本,并生成AST语法树,进行优化

4.TiDB从 PD 获取 start_ts

5.TiDB根据执行计划和表的 metadata 生成 executor

6.TiDB使用gRPC将 coprocessor请求发送给TiKV

7.TiKV接受请求, 按照请求过滤数据,并将结果返回给TiDB

8.TiDB接收所有返回结果,整理汇总数据

9.TiDB将结果返回给客户端

写请求处理流程:

1.客户端与TiDB建立连接,并发送请求至TiDB

2.TiDB接收客户端发送的请求,获取似sql

3.TiDB解析sql文本,并生成AST语法树,进行优化

4.TiDB从 PD 获取 start_ts

5.TiDB根据执行计划和表的 metadata 生成 executor

6.TiDB发起 commit 请求

7.TiKV使用两阶段提交 (prewrite/commit),TiDB 在 commit 阶段向kv请求阶段获取commit_ts

8 tikv 将提交的结果返回给tidb

9 tidb 将结果返回给客户端

读写请求流程:执行计划在tidb阶段生成,对表的扫描在TIKV上执行。读请求一次tso,写请求两次tso,一次start,一次commit。对于写请求会涉及到两端提交,以及分布式事务