目录
一 章节目标
二 TiDB 体系结构
1 TiDB Server
2.1 TiKV
2.2 TiFlash
3 PD
参考
一 章节目标
- 理解TiDB数据库整体架构
- 了解TiDB Server ,TiKV ,TiFlash 和 PD的主要功能
二 TiDB 体系结构
了解这些体系结构是如何实现TiDB的核心功能的
1 TiDB Server
- TiDB Server 是无状态的,所以可以结合负载均衡的组件LVS。
- 数据并不是存储在TiDB Server中。
- 负责与应用交互 ,SQL语句发送到TiDB Server中,然后进行解析 编译 优化SQL语句,并且生成执行计划。
- TiDB Server 可以横向扩展或者缩容,通过增加个数均衡每个TiDB Server的负载。
- 垃圾回收,定期处理数据的历史版本
2.1 TiKV
分层去了解TiKV,可以类比TCP/IP的七层协议。换做是TiKV ,从最简单的数据持久化(存储在一个单机的RocksDB中),然后一层一层的加协议,最终实现一个数据库的所需的完整功能。
- 数据库最基础的要求是 数据持久化。 是利用单机的KV存储引擎 rocksdb kv,rocksdb raft是存储指令的
- 之后要保证数据多副本实现高可用 。是利用Raft 协议实现。每个Region多副本 ,其中有一个leader ,其他的region跟随leader的变化
- 支持MVCC(数据多版本)
- 分布式事务支持
- 算子下推,主要是发挥分布式数据库的优势,每个TIKV都有CPU,可以让TIKV单独处理自己的部分,比如where age >= 10的条件,可以在每个TIKV node上单独处理完成。除了过滤,还能做投影 聚合 等方面的计算工作。
2.2 TiFlash
- 一致性 ,TiFlash存储的数据和 TiKV是一样的 , 是TiKV的列存储版本
- 参与复制,数据是实时的。
- 行存适合OLTP,是TiKV承载的功能;列存适合OLAP ,是TiFlash承载的功能,比如暴力扫描 ,分析数据,生成报表等
- 数据有行存和列存,数据库如何选使用那个存储引擎?可以通过 智能扫描/手动指定
因为有了TiFlash的加入 TiDB才能HATP数据库
3 PD
PD是TIDB的大脑
- 存储元数据 。数据的region与TiKV的对应关系。例如记录T表存储在哪几个TiKV node 上
- 提供授时管理 。记录时间戳 例如每个SQL开始执行时间 TSO,执行结束时间
- 收集信息进行调度。TiKV 会定时发送信息到PD,如果某个表的数据分布不均衡,例如集中分布在某个TiKV上,
参考
TiDB 整体架构 | PingCAP 文档中心文章来源:https://www.toymoban.com/news/detail-561863.html
https://learn.pingcap.com/learner/course/960001文章来源地址https://www.toymoban.com/news/detail-561863.html
到了这里,关于[Lesson 01] TiDB数据库架构概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!