学习目标
- 理解数据库整体架构
- 了解 TiDB Server 、TiKV、TiFlash、和 PD 的主要功能
文章末尾获取笔记、视频资料,持续更新
体系架构
- 水平扩容或者缩容
- 金融级高可用
- 实时 HTAP
- 云原生的分布式数据库
- 兼容 MySql5.7 协议
TiDB 体系架构图
组件
TiDB Server
TiDB Server 是 TiDB 分布式数据库的 SQL 层,是整个系统的入口。
功能
- 处理客户端的连接
- SQL语句的解析、编译、生成执行计划
生成sql语句,然后在TiKV 或者 TiFLASH上执行
- 关系型数据与 KV 的转化
TiKV 存的数据是键值对,将数据表转换为 KV 键值对
- SQL语句执行(DDL语句)
- 执行 online DDL
- 垃圾回收(默认时间10分钟)
TiDB Server 工作流程
- 客户端请求 ->
- 协议解析 ->
- SQL 解析 ->
- 查询优化 ->
- 生成执行计划 ->
- 分布式执行 ->
- 返回结果
复制代码 TiKV
TiKV是TiDB 分布式数据库的存储层
存储结构
- Region (数据分片)
- ├── Leader
- └── Followers (多个副本)
- ├── Follower 1
- └── Follower 2
复制代码 功能
- 数据持久化
- 副本的强一致性和高可用性
- MVCC (多版本并发控制)
- 分布式事务支持
- Coprocessor (算子下推)
TiKV 技术架构图核心组件
- 如上图所示
- RocksDB:底层存储引擎
- Raft:分布式一致性协议实现
- MVCC:多版本并发控制
- Transaction:分布式事务处理
复制代码 关键特性
- 数据分片 (Region)
- 按 Key Range 进行数据分片
- 每个 Region 默认大小约 96MB到140MB
- 超过阈值会自动分裂(Split)
- 负载均衡时会自动调度
- 复制与一致性
- 采用 Multi-Raft 模型
- 通常采用 3 副本或 5 副本
- 强一致性保证
- 自动故障转移
TiFlash
它是 TiDB 的列式存储引擎,专门用于 OLAP 分析场景
功能
- 异步复制
- 一致性
- 列式存储提高分析查询效率
- 业务隔离
- 智能选择
也可以手动指定sql选择 TiKV 或者 TiFlash
TiFlash 架构图
PD
功能
- 整个集群TiKV的元数据存储
- 分配全局ID和事务ID
- 生成全局时间戳TSO
- 收集集群信息进行调度
- 提供 TiDB Dashboard 服务
PD 技术架构图测试
答案:
公众号回复 TIDB 获得笔记、视频
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |