写点什么

TiDB 体系结构

  • 2022 年 7 月 11 日
  • 本文字数:990 字

    阅读完需:约 3 分钟

作者: TiDBer_oIJ5fkzz 原文来源:https://tidb.net/blog/8ab09493


【是否原创】是


【首发渠道】TiDB 社区


【正文】



如图所示,TiDB 体系中三大组成部分:PD、TiDB Server、TiKV


1、 PD:负责产生全局的 TSO 时间、控制 Region 在 TIkv 中的分布、产生全局事务 ID、还有其他 ID。


2、 TiDB: 没有数据落地,接收客户端 sql 语句,对 sql 语句进行解析和编译,最终形成执行计划。DDL 语句和基于 MVCC 的老版本数据的回收,也是 TiDB Server 操作。


3、 TiKV: 数据以键值队存储在 TiKV 中,主要负责数据持久化、MVCC、Coprocessor、事务以及自身副本的高可用和强一致性(由 Muti-raft 实现)。


4、 TiFlash:列式存储引擎,主要由扩展的 raft 共识算法与 Tikv 进行数据同步,实现负载均衡、强一致读取和实时更新,对于 OLTP 场景这样就实现了对分析型业务和事务型业务进行隔离,对既有 oltp 又有 olap 的是有利的。



TiDB Server 有六大功能:


1、处理客户端的连接


2、SQL 语句的解析和编译


3、关系型数据与 KV 的转化


4、SQL 语句的执行


5、在线 DDL 的执行


6、垃圾回收



TiKV 的五大功能:


1、 Tikv 最主要的功能就是负责数据的持久化。


2、 TIkv 内部是选择基于 lsm-tree 的 Rocks DB 引擎作为存储引擎,而 Rocksdb 通过 Wal 机制保证数据的不丢失。


3、 分布式事务支持:Tidb 数据库基于 percolator 事务模型的两阶段提交过程中,每个 Tikv 会单独分配存储锁的空间,叫 CF lock(列簇),这样,配合 Tidb server 和 PD 全局 TSO 授时服务,就实现了去中心化的两阶段提交。支持乐观锁与悲观锁。在 5.0 之后,实现了两阶段提交中,第二阶段异步提交功能。在 oltp 中的高并发、小 sql 场景里,大大降低了写入延迟。


4、 MVCC:实现并发控制、隔离级别、分布式事务、数据快速恢复的基础。历史数据会存储一段时间,最后由 GC 进行回收。


5、 Coprocessor:数据的过滤、部分的聚合、求最大最小值等,这些被下推分布式存储节点,可以利用 Tikv 的 cpu 能力,多个 tikv 可以并行的进行计算,由于他们已经过滤了数据,相比不计算上传 TiDB server 要少,减少了网络的交互成本,TiDB Server 的计算成本也相对减少。



PD 的五大功能:


1、整个集群 TiKV 的元数据存储


2、分配全局 ID 和事务 ID


3、生成全局时间戳 TSO


4、收集集群信息进行调度


5、提供 TiDBit Dashboard 服务



TiFlash 的四大功能:


1、列式存储提高分析查询效率


2、支持强一致性和实时性


3、业务隔离


4、智能选择


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB体系结构_TiDB 底层架构_TiDB 社区干货传送门_InfoQ写作社区