[Lesson 01] TiDB数据库架构概述

目录

一 章节目标 

二 TiDB 体系结构 

1 TiDB Server

2.1 TiKV

2.2 TiFlash

3 PD

参考 


一 章节目标 

  • 理解TiDB数据库整体架构
  • 了解TiDB Server TiKV tiFlash 和 PD的主要功能

二 TiDB 体系结构 

了解这些体系结构是如何实现TiDB的核心功能的

[Lesson 01] TiDB数据库架构概述_第1张图片

1 TiDB Server

[Lesson 01] TiDB数据库架构概述_第2张图片

  • TiDB Server 是无状态的,所以可以结合负载均衡的组件LVS。
  • 数据并不是存储在TiDB Server中。
  • 负责与应用交互 ,SQL语句发送到TiDB Server中,然后进行解析 编译 优化这条SQL语句,并且生成执行计划。
  • TiDB Server 可以横向扩展或者缩容,通过增加个数均衡每个TiDB Server的负载。
  • 垃圾回收,定期处理数据的历史版本

2.1 TiKV

分层去了解TiKV,可以类比TCP、IP的七层协议,从最简单的数据持久化(存储在一个单机的rocksdb中),然后一层一层的加协议,最终实现一个数据库的所需的完整功能

[Lesson 01] TiDB数据库架构概述_第3张图片

  • 数据持久化 是利用单机的KV存储引擎 rocksdb  kv,rocksdb raft是存储指令的 
  • 高可用 raft 协议。每个region多副本 ,其中有一个leader  ,其他的region跟随leader的变化。
  • 支持MVCC。数据多版本。
  • 支持事务
  • 算子下推,主要是发挥分布式数据库的优势,每个TIKV都有CPU,可以让TIKV单独处理自己的部分,比如where age >= 10的条件,可以在每个TIKV node上单独处理完成。除了过滤,还能做投影 聚合 等方面的计算工作

2.2 TiFlash

[Lesson 01] TiDB数据库架构概述_第4张图片

  • 一致性 ,TiFlash存储的数据和 TiKV是一样的 , 是TiKV的列存储版本
  • 参与复制,数据是实时的。
  • 行存适合OLTP,TiKV承载的功能;列存适合OLAP ,TiFlash承载的功能,暴力扫描 ,分析数据,生成报表
  • 智能扫描/手动指定  数据有行存和列存,数据库如何选使用那个存储引擎。

因为有了TiFlash的加入 TiDB才能HATP数据库

3 PD

[Lesson 01] TiDB数据库架构概述_第5张图片

PD是TIDB的大脑

  • 存储元数据 。数据的region与TiKV的对应关系。例如记录T表存储在哪几个TiKV node 上
  • 提供授时管理 。记录时间戳 例如每个SQL开始执行时间 TSO,执行结束时间 
  • 收集信息进行调度。TiKV  会定时发送信息到PD,如果某个表的数据分布不均衡,例如集中分布在某个TiKV上,

参考 

TiDB 整体架构 | PingCAP 文档中心

https://learn.pingcap.com/learner/course/960001

你可能感兴趣的:(TiDB,tidb,数据库架构,数据库)