课程名称:课程版本(101)+ 1.6 Read and Write data in the TiDB database platform(TiDB 中的读写流程)
学习时长:
15 min
课程收获:
再一次复习TiDB的基本架构,了解TiDB对于读写请求的处理
课程内容:
TiDB Overview
TiDB
- 接受客户端请求
- 解析SQL
- 无状态,多个TiDB实例
- 需要外部软件实现负载均衡
- 不存储数据,将请求转发TiKV
TiKV
- 底层是KV存储数据库 RocksDB
- Raft 协议保证数据一致性
- MVCC 实现事务多版本并发控制
- 最上层为事务层
PD
- 分配分布式事务ID,TSO
- 实现 Region 和 Leader的调度
- ETCD 实现高可用
- Dashboard功能
SQL Processing Flow
- 客户端建立连接并发送请求
- TiDB 接收请求并接收 SQL
- TiDB 解析 SQL,生成抽象语法树,制定计划并优化
- 从 PD 获取 start_ts
- TiDB 获取数据元信息,生成执行器
- TiDB 通过 gRPC 将请求发送到 coprocessor
- TiKV 接收请求,查询数据,并将结果返回给 TiDB
- TiDB 接收所有结果后,汇总数据
- TiDB 将结果返回给客户端
Write request in TiDB
- 客户端建立连接并发送请求
- TiDB 接收请求并接收 SQL
- TiDB 解析 SQL,生成抽象语法树,制定计划并优化
- 从 PD 获取 start_ts
- TiDB 获取数据元信息,生成执行器
- TiDB 发起commit 请求
- TiDB 进行二阶段提交(prewrite/commit),在 commit 阶段向 PD 获取 commit_ts
- TiKV 将结果返回给 TiDB
- TiDB 将结果返回给客户端