【TiDB 4.0 PCTA 学习笔记】- 1.3 A Brief History About the TiDB database platform(TiDB 发展简史)@ 3班+漆锐

课程名称:1.3 A Brief History About the TiDB database platform (TiDB 发展简史)

学习时长:

30min

课程收获:

了解TIDB的发展历史

课程内容:

  1. Ancient days of TiDB
  • 已经做到的:
    • 无限扩展
    • 兼容MySQL语法和协议
    • 透明的数据分割策略
    • 强一致性、分布式事务支持
  • 架构
    • PD
      主管源数据的存储以及TiKV的调度
    • TiDB
      无状态的SQL引擎,承担计算任务,可以多实例启动部署
    • TiKV
      分布式KV存储引擎,采用raft算法进行副本间的复制达到高可用
  • 简单来说,TiDB可以看成是容量无限大的单机版的MySQL
  • 数据中心能力
  • TiDB非常适合中台场景
    • 协议上兼容
    • 不需要数据封片
    • 实时的数据汇总
  • 1.0存在的缺点
    • TP
      • 总体上来讲没有大问题
    • AP 场景
      • 复杂的查询过慢
      • 在复杂的AP场景中经常OOM
      • 无法与大数据平台进行整合

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——虚拟部署