课程名称:1.3 A Brief History About the TiDB database platform (TiDB 发展简史)
学习时长:
30min
课程收获:
了解TIDB的发展历史
课程内容:
- Ancient days of TiDB
- 已经做到的:
- 无限扩展
- 兼容MySQL语法和协议
- 透明的数据分割策略
- 强一致性、分布式事务支持
- 架构
- PD
主管源数据的存储以及TiKV的调度 - TiDB
无状态的SQL引擎,承担计算任务,可以多实例启动部署 - TiKV
分布式KV存储引擎,采用raft算法进行副本间的复制达到高可用
- PD
- 简单来说,TiDB可以看成是容量无限大的单机版的MySQL
- 数据中心能力
- Syncer
- Coprocessor
- Syncer
- TiDB非常适合中台场景
- 协议上兼容
- 不需要数据封片
- 实时的数据汇总
- 1.0存在的缺点
- TP
- 总体上来讲没有大问题
- AP 场景
- 复杂的查询过慢
- 在复杂的AP场景中经常OOM
- 无法与大数据平台进行整合
- TP
2.TiDB with TiSpark
- 架构:
借助TiSpark可以将单点的TiDB计算能力扩展为多节点的变形计算
- 优点:
- 分布式计算框架、更快也更稳定
- 无缝接入大数据生态,可以用类似Python、R语言等直接操控TIDB集群
- 缺点
- 并发变低
- 消耗大量的计算资源
- 想比TiDB1.0,维护比较复杂
- 优化的地方
- We were also working on various optimizations around stand-alone TiDB
- Optimizer
- Basic Optimizer? → RBO+CBO Optimizer → Cascades Optimizer(WIP)
- Executor
- Classic Volcano Model → Batch Execution → Vectorized Execution
- Better Concurrency and Pipeline
- Partition tables, Index Merge, etc
- 核心矛盾
- 行存不适合做分析
- 没有做资源的隔离
core conflict
3.TiDB with TiFlash
- 通过Raft Learner向列存储引擎移动数据
- 同步代价低
- 读取数据时,通过Raft index结合MVCC,实现了强一致性的读
- 通过打标签的方式实现物理的隔离
- AP/TP不会相互影响
- 架构
4.Now
- 真正的HTAP数据库
- 数据既可以行存也可以列存,数据可以自动的行存列存转换,不需要ETL工具
- 方便报表和查询
*架构
- TiUP——物理部署;TiOperator——虚拟部署