zoukankan      html  css  js  c++  java
  • 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 数据架构选型

     

     

     

     

  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/luckyplj/p/15704371.html
Copyright © 2011-2022 走看看