TiDB 整体架构
TiDB Server: 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。
PD: 是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。
TiKV Server: 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎
TiDB 数据库的存储
TIKV 分层架构
Transaction:分布式 key-values 存储引擎
MVCC:高度分层
Raft:通过Raft协议保证数据一致性
Local KV Storage:不依赖于分布式文件系统
TiKV 数据存储的两个关键点:
这是一个巨大的 Map(可以类比一下 C++ 的 std::map)&#