TiDB数据库01Tidb体系架构01

1.我们到底需要一个什么样的数据库

1.1 需要的数据库特性

  • 扩展性
  • 强一致性、高可用性
  • 支持SQL,ACID事务。
  • 云原生
  • HTAP
  • 兼容主流生态和协议

1.1.1 扩展性

Scale out也就是我们经常听到的弹性横向扩展。一是从弹性的角度看,颗粒度越小越好,常见的颗粒度有Cluster、Database、Schema、表、分表或者分区。二是数据库写入是昂贵资源,我们一定要面向写入能力的线性扩展机制。

1.1.2 强一致性、高可用性

CAP的强一致指的是理论的一致性,也就是副本一致性,也就是每一份新增数据都会在多个物理节点保存,节点数量和网络延迟是正向关系,理论上保存的节点越多,写入延迟就越高,所以在分布式系统里,普遍采用了多数派强一致。

这个强一致属性对于我们比较核心的业务,比如金融类场景,能做到更好的数据容灾。

强一致与高可用这两个概念,等价过来,就是实现RPO=0,RTO足够小,

数据库事务的特性(ACID):

1.2.数据技术栈常见的基础因素

 1.3.计算与存储分离

1.4 Tidb高度分层架构

TiDB是一个计算与存储分离的架构,它的存储引擎叫TiKV。

TiDB在2015立项,弹性是整个架构设计的核心考量点,所以选择了更为未来的计算与存储分离的架构,从逻辑上看,主要分为三层:

1.4.1. 支持标准SQL的计算引擎TiDB-Server

这里面有一个概念,大家可能会混淆。TiDB是整个数据库的名称,同时有一个兼容MySQL的计算引擎 TiDB-Server(https://github.com/pingcap/tidb),
兼容以MySQL 5.7为主,在逐步兼容MySQL 8.
TiDB Server 支持 MySQL 的协议,语法,方言语法,DDL/DML,系统变量,内置功能,SQL Mode 以及类型推导等等。

1.4.2. 分布式存储引擎 TiKV

TiDB Server 本身并不存储数据,只是进行计算,实际的数据存储在存储层,也就是 TiKV(https://github.com/pingcap/tikv),目前这个项目已经捐献给 CNCF,属于 CNCF 的毕业项目。

1.4.3. 负责元信息管理与调度的,调度引擎 Placement Driver

Placement Driver (pd-server,简称 PD,https://github.com/pingcap/pd),PD 主要有几个功能:

PD是整个集群的大脑,为了保持全局高可用,PD也至少三个节点,通过Raft进行三副本复制。

1.4.4 架构图

 1.5 小结

2.如何构建一个分布式存储系统

2.1 需要什么样的存储引擎

 2.2 数据库核心:数据结构

 

 2.3 选择数据副本

 2.4 如何扩展

扩展是基于分片实现的。分片分为预先分片(静态)和自动分片(动态)。

常见的分片算法有哈希hash、范围range、列表list

注意:一个Region默认是96MB

 

 

 2.5 TiKV整体架构

 2.6 多版本控制MVCC

 2.7 分布式事务模型

 2.8 小结

 

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

tidb-server的功能:

3.1 sql引擎过程

 3.2 关键算子分布式化

 3.3 如何构建一个online的DDL算法

 3.4 如何连接到Tidb-server

 3.5 小结

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

2005年,Gartner提出了HTAP(Hybrid transactional/analytical processing,在线事务处理/在线分析处理数据库)这一概念,并在2014 年,Gartner 对 HTAP 数据库给出了明确的定义,HTAP 数据库需要同时支持 OLTP 和OLAP 场景。

4.1 HTAP发展的必然性

 

 4.2 Tidb被用于数据中台

Tidb可以看作大号的Mysql. 

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

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

 5 Tidb关键技术创新

5.1 三个分布式系统

5.2 自动分片技术是更细维度弹性的基础

 

 5.3 弹性的分片构成了动态的系统

 5.4 Multi-Raft将复制组更离散

 5.5 基于Multi-Raft实现写入的线性扩展

5.6 去中心化的分布式事务

6.TiDB 典型应用场景及用户案例

6.1 OLTP Scale

 (1)为什么分表

 (2)为什么分库

 中间件方案:

 6.2 数据架构选型

 

 

 

 

原文地址:https://www.cnblogs.com/luckyplj/p/15704371.html