目录
1. TiDB体系结构
- 水平扩容或者缩容
- 金融级高可用
- 实时 HTAP
- 云原生的分布式数据库
- 兼容MySQ 5.7 协议
2. TiDBsever
- 处理客户端的连接
- SQL语句的解析和编译,生成执行计划
- 关系型数据与 kv 的转化(insert语句)(将关系型数据转化为 KV 存储进行持久化,以及将 KV 存储转化为关系型数据返回给客户端)
- SQL 语句的执行
- 执行 online DDL
- 垃圾回收(GC)
TiDB Server 是无状态的,不存储数据。支持扩展,缓解连接压力
3. TiKV
- 数据持久化(行存)
- 副本的强一致性和高可用性
- MVCC(多版本并发控制)
- 分布式事务支持
- Coprocessor(算子下推)
每个TiKV中运行了rocksdb数据库保证数据持久化,TiDB中存的是KeyValue对,键值对存在rocksdb kv实例,rocksdb raft存raft log指令(增删改),Raft协议保证高可用,有其他副本存在其他节点(默认总共三个副本,其中一个副本是leader可读写)
一个region在96M~144M之间
4. PD(Placement Driver)
PD:集群大脑,元数据存在PD(数据在在哪些TiKV或者TiFlash上),每条sql的开始时间(TSO时间戳),事务开始和结束的TSO
- 整个集群 TiKV 的元数据存储
- 分配全局 ID 和事务 ID
- 生成全局时间戳 TSO
- 收集集群信息进行调度
- 提供 TiDB Dashboard服务
5. TiFlash
- 异步复制
- 一致性
- 列式存储提高分析查询效率
- 业务隔离
- 智能选择 (支持手动选择)
TiKV 承载 OLTP 业务,TiFlash 承载 OLAP 业务,达到业务隔离。TiDB Server 根据 SQL 进行预测,智能选择使用 TiKV 还是 TiFlash 进行查询,也可以人工指定
总结
- 描述 TiDB 数据库的整体架构
- 理解 TiDB server,Tikv,TiFlash 和PD 的主要功能
来自TiDB官方学习资料