课程名称: 1.3 A Brief History About the TiDB database platform(TiDB 发展简史
学习时长:
30min
课程收获:
了解 TiDB 的发展
课程内容:
TiDB 1.0 GA版本
- 可以从计算和存储无限拓展
- 兼容MySQL的语法和协议
- 对应用透明的数据分片策略,做到对应用无感知
- 强一致性的分布式事务
TiDB :无状态的SQL引擎,承担计算任务,可以多实例启动
TiKV:分布式k-v存储引擎,使用raft算法进行副本复制,保证高可用
PD:元数据的存储和TiKV中数据调度
由于计算能力和存储能力的无限拓展,TiDB = 容量无限大的单机Mysql
TiDB的中台能力
通过Syncer向TiDB进行数据汇总
由于协处理器的存在,汇总的数据可以并行的在TiKV中进行聚合,生成报表
TiDB存在的问题
- TP场景
- 有点问题,但是总体好用,问题不大
- AP场景
- 复杂查询太慢
- 经常OOM
- 无法和大数据平台整合
解决方案:需要成熟的分布式计算框架
融入TiSpark的TiDB
借助TiSpark可以把单点的计算能力变成多节点的并行计算能力。
优点:
- 提供了分布式计算
- 无缝接入大数据的生态
缺点:
- 并发性低
- 消耗大量的大量资源,用户希望高并发的同时,还可以做些中等规模的AP查询
TiDB的优化:
融入TiFlash的TiDB
当前的2个问题:
- 行存不利于分析
- 资源没有隔离
TiFlash解决的问题:
- 通过Raft Learner向列存储引擎同步一份数据
- 同步代价极低
- 读取通过Raft Index结合MVCC实现了强一致读
- 通过打标签的方式实现了物理的隔离,这样AP和TP的负载就不互相影响
Raft Learner同步
现在的TiDB
TiDB 可以称为一个真正的 HTAP系统
- TiDB既有行存和列存,数据自动进行行、列转换
- 在系统运行TP业务时,也可以方便进行报表查询