【TiIDB 4.0 PCTA 学习笔记】- 1.6 TiDB 中的读写流程@1班 - 江坤

课程名称:课程版本(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 将结果返回给客户端

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

TiDB 源码阅读系列文章(三)SQL 的一生 | PingCAP

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。