TiDB快速起步学习笔记一

[

分布式系统的历史

](#%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%8E%86%E5%8F%B2)

2006年,谷歌推出了大数据的三驾马车:

* GFS  -- 解决了分布式文件系统问题
* Google BigTable  - 分布式key-value问题
* Google MapReduce  - 解决了在分布式文件系统和分布式KV存储上如何做分布式计算和分析问题。

分布式计算的主要挑战

* 如何最大程度的实现分治
* 如何实现全局的一致性
* 如何进行故障与部分失效的容错
* 如何应对不可靠的网络与网络分区

分布式系统里著名的CAP理论

  • Consistency(一致性) - 副本一致性
  • Avaliability(可用性)
  • Portition Tolerance(分区容忍性)
  • CA、CP、AP

事务:ACID

两个一致性不一样:前者描述的是副本的一致性,后者是事务的一致性。

RPO: 数据恢复点目标,主要指业务系统所能容忍的数据丢失量。

RTO: 恢复时间目标 ,主要指的是所能容忍的业务停止服务的最长时间。

[

TiDB 高度分层架构

](tidb%20%E9%AB%98%E5%BA%A6%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84)

弹性是整个架构设计的核心考量点,从逻辑上将TiDB主要分为三层:

 * 支持标准SQL的技术引擎 - TIDB Server 
 * 分布式存储引擎 -  TiKV 
  • 元信息管理与调度引擎 - Placement Driver(PD)
    • 集群的元数据管理,包括分片的分布、拓扑结构等
    • 分布式事务ID的分配
    • 调度中心

数据库核心:数据结构

Tikv 单节点选择了基于LSM-tree的RocksDB引擎:

  • RocksDB是一款非常成熟的LSM-tree存储引擎
  • 支持批量写入(Atomic batch write)
  • 无锁快照读(Snapshot)
    • 这个功能在数据副本迁移过程会起到作用。

[

TiKV

](TiKV)

TiKV系统采用范围(range)数据分片算法。

分布式事务模型

  • 去中心化的两阶段提交
    • 通过PD全局授时(TSO)
    • –4M timestamps 每秒
    • 每个TiKV节点分配单独区域存放锁信息(CF Lock)
  • Google Percolator事务模型
  • TiKV支持完整事务KV API
  • 默认乐观事务模型
    • 也支持悲观事务模型(3.0+版本)
  • 默认隔离级别: Snapshot Isolation

SQL关系模型

在KV上实现逻辑表:

HTAP

spark来缓解数据中台算力问题: 只能提供低并发的重量级查询。

物理隔离是最好的资源隔离

列存天然对OLAP查询类友好 - Tiflash

行列数据同步 - Raft-base最佳方案

MPP引擎 -并行计算

TiDB数据库在HTAP的技术方已经实现的功能:

  1. 列式存储实现了实时写入能力
  2. MPP解决节点的扩展性与并行计算
  3. 使spark运行在TiKV上。
2 个赞

咋看起来像是课件截图

截图没灵魂。

截图没灵魂