课程笔记 TiDB 快速起步(中)

课程链接

TiDB 快速起步

课程大纲

  • 数据库、大数据与 TiDB 的发展简史

    • 01: 数据库、大数据发展历史与趋势

    • 02: 分布式关系数据库的发展

    • 03: TiDB 产品与开源社区演进

  • TiDB 整体概述

    • 04: 我们到底需要一个什么样的数据库

    • 05: 如何构建一个分布式存储系统

    • 06: 如何构建一个分布式 SQL 引擎

  • 新一代 HTAP 数据库选型

    • 07: 基于分布式架构的 HTAP 数据库

    • 08: TiDB 关键技术创新

    • 09: TiDB 典型应用场景及用户案例

  • TiDB 初体验

    • 10: TiDB 初体验

课程笔记(中)

  1. 存储引擎

    1. 更细粒度的弹性扩缩容

    2. 高并发读写

    3. 数据不丢不错

    4. 多副本保障一致性及高可用

    5. 支持分布式事务

  2. 数据结构是数据库的核心基础技术

    1. BTree与LSM-tree

      1. LSM-tree结构本质上是一个用空间置换写入延迟,用顺序写入替换随机写入的数据结构。

      2. TiKV单节点选择了基于LSM-tree的rocksdb引擎

  3. 数据副本

    1. 共识算法:raft、paxos

    2. 实现扩展:预先分片(静态)、自动分片(动态)

    3. 分片算法:hash、range、list

      1. range分片

        1. 更高效地扫描数据

        2. 简单实现自动完成分裂与合并

        3. 弹性优先,分片需要可以自动调度

        4. 会遇到热点分片问题

  4. TiKV

    1. 一个 Multi-Raft 系统,其数据按 Region(默认 96M)切分

    2. 每个 Region 是一个 Key 的范围,从 StartKey 到 EndKey 的左闭右开区间。

    3. 数据的存储/访问/复制/调度都是以region为单位

    4. 多版本控制:TiKV的MVCC实现是通过在Key后面添加版本号

    5. coprocessor是tikv中读取数据并计算的模块,每个tikv存储节点都有一个协调计算器

  5. 分布式事务模型

    1. 去中心化的两阶段提交

    2. Google percolator事务模型

    3. TiKV支持完整事务 KV API

    4. 默认乐观事务模型

    5. 默认隔离级别 snapshot isolation

  6. 在KV上实现逻辑表,基于KV的二级索引

  7. 基于成本优化器

  8. 分布式SQL引擎主要优化策略:push down

  9. 关键算子分布式化

  10. online ddl 算法

    1. tidb里没有分表概念

    2. 把ddl过程分成public、delete-only、write-only等几个状态,每个状态在多节点之间同步和一致,最终完成完整的DDL

  11. tidb-server是一个对等、无状态的、可横向扩展的,支持多点写入的,直接承接用户SQL的入口

  12. tidb-server的其他功能

    1. 前台功能

      1. 管理连接和账号权限管理

      2. MYSQL协议编码解码

      3. 独立的SQL执行

      4. 库表元信息,以及系统变量

    2. 后台功能

      1. GC

      2. 执行DDL

      3. 统计信息管理

      4. SQL优化器与执行器

参考资料