TiDB數據庫01-Tidb體系架構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 數據架構選型

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM