TiDB数据库01Tidb体系架构01

摘要:
TiDB是整个数据库的名称,同时有一个兼容MySQL的计算引擎TiDB-Server,兼容以MySQL5.7为主,在逐步兼容MySQL8.TiDBServer支持MySQL的协议,语法,方言语法,DDL/DML,系统变量,内置功能,SQLMode以及类型推导等等。

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

1.1 需要的数据库特性

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

1.1.1 扩展性

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

1.1.2强一致性、高可用性

CAP的强一致指的是理论的一致性,也就是副本一致性,也就是每一份新增数据都会在多个物理节点保存,节点数量和网络延迟是正向关系,理论上保存的节点越多,写入延迟就越高,所以在分布式系统里,普遍采用了多数派强一致。
这个强一致属性对于我们比较核心的业务,比如金融类场景,能做到更好的数据容灾。

TiDB数据库01Tidb体系架构01第1张

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

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

TiDB数据库01Tidb体系架构01第2张

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

TiDB数据库01Tidb体系架构01第3张

TiDB数据库01Tidb体系架构01第4张

1.3.计算与存储分离

TiDB数据库01Tidb体系架构01第5张

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 主要有几个功能:

TiDB数据库01Tidb体系架构01第6张

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

1.4.4 架构图

TiDB数据库01Tidb体系架构01第7张

1.5 小结

TiDB数据库01Tidb体系架构01第8张

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

2.1 需要什么样的存储引擎

TiDB数据库01Tidb体系架构01第9张

2.2 数据库核心:数据结构

TiDB数据库01Tidb体系架构01第10张

TiDB数据库01Tidb体系架构01第11张

2.3 选择数据副本

TiDB数据库01Tidb体系架构01第12张

2.4 如何扩展

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

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

TiDB数据库01Tidb体系架构01第13张

TiDB数据库01Tidb体系架构01第14张

注意:一个Region默认是96MB

TiDB数据库01Tidb体系架构01第15张

TiDB数据库01Tidb体系架构01第16张

TiDB数据库01Tidb体系架构01第17张

2.5 TiKV整体架构

TiDB数据库01Tidb体系架构01第18张

2.6 多版本控制MVCC

TiDB数据库01Tidb体系架构01第19张

2.7 分布式事务模型

TiDB数据库01Tidb体系架构01第20张

2.8 小结

TiDB数据库01Tidb体系架构01第21张

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

tidb-server的功能:

TiDB数据库01Tidb体系架构01第22张

3.1 sql引擎过程

TiDB数据库01Tidb体系架构01第23张

3.2 关键算子分布式化

TiDB数据库01Tidb体系架构01第24张

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

TiDB数据库01Tidb体系架构01第25张

3.4 如何连接到Tidb-server

TiDB数据库01Tidb体系架构01第26张

3.5 小结

TiDB数据库01Tidb体系架构01第27张

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

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

4.1 HTAP发展的必然性

TiDB数据库01Tidb体系架构01第28张

4.2 Tidb被用于数据中台

TiDB数据库01Tidb体系架构01第29张

Tidb可以看作大号的Mysql.

TiDB数据库01Tidb体系架构01第30张

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

TiDB数据库01Tidb体系架构01第31张

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

TiDB数据库01Tidb体系架构01第32张

5 Tidb关键技术创新

5.1 三个分布式系统

TiDB数据库01Tidb体系架构01第33张

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

TiDB数据库01Tidb体系架构01第34张

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

TiDB数据库01Tidb体系架构01第35张

5.4 Multi-Raft将复制组更离散

TiDB数据库01Tidb体系架构01第36张

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

TiDB数据库01Tidb体系架构01第37张

5.6 去中心化的分布式事务

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

6.1 OLTP Scale

TiDB数据库01Tidb体系架构01第38张

(1)为什么分表

TiDB数据库01Tidb体系架构01第39张

(2)为什么分库

TiDB数据库01Tidb体系架构01第40张

中间件方案:

TiDB数据库01Tidb体系架构01第41张

6.2 数据架构选型

TiDB数据库01Tidb体系架构01第42张

免责声明:文章转载自《TiDB数据库01Tidb体系架构01》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nodejs版实现properties后缀文件解析通过注册表在文件的右键菜单添加程序快速打开下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

三大数据库中的主键自增对比

首先是最简单的sql server数据库 创建个表吧 create table aa (   id int primary key identity(1,1)     //这个就代表id自增了  id是从1开始每次自增1  非常简单  不用学就会 ) 然后是mysql  也是so easy create table bb ( chatId int NOT...

Oracle11g备份与恢复

第一部分:手工备份与恢复   备份的意义:保证数据安全,避免因为各种故障而丢失数据     两个时间:平均故障间隔时间(MTBF)平均恢复时间(MTTR) 一、备份恢复概述   数据库故障类型     1.用户进程故障 user process failure  :pmon自动处理     2.实例故障 instance failure : smon自动处...

如何更改SQL Server2008默认数据库的存储路径

1.安装SQl Server过程中,修改路径(因为我安装的时候,忘记改路径了,所以没截下图来,黄色部分是真正的标注): 当然了,也可以修改共享功能目录 以及修改实例根目录 不过,我也不知道共享功能目录,实例根目录装的啥。 2.打开SQL Server2008,在图形界面里修改数据库的存储路径:  右击“对象资源管理器”,然后单击“属性”,在单击“数...

警惕VPS服务商常用的超售手段

任何商业企业都希望将利益最大化,这是可以理解的。但如果做的过火最终损害的还是自己的利益。VPS服务提供商也一样,为了将利益最大化,他们往往会实用技术手段对所出售的VPS进行“超售”。 那么何谓“超售”呢?顾名思义,即“超出可接受范围的出售”。本文将谈谈这些业内共知的那些常用超售手段: OPENVZ架构 1、对于OpenVZ架构,超售可谓不费吹灰之力。由于O...

Oracle冷备

概念:一致性的备份,也就是在数据库一致性关闭后做的备份,一般用:shutdown immediate方式关闭。 步骤:1.查看三大核心文件所在位置:数据文件,控制文件,日志文件 数据文件:select file_name from dba_data_files; 控制文件:select name from v$controlfile; 日志文件:selec...

Mycat(水平拆分--分表 全局序列)

在实现分库分表的情况下,数据库自增主键已经无法保证自增主键的全局唯一。为此Mycat提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式。 1、本地文件 此方式 mycat 将sequence 配置到文件中,当使用到 sequence 中的配置后, Mycat 会更下 classpath 中的 sequence_conf.prope...