TiDB體系架構(gòu)
本文分享自天翼云開發(fā)者社區(qū)《TiDB體系架構(gòu)》,作者:x****n
如圖所示,TiDB體系中三大組成部分:PD、TiDB Server、TiKV
1.PD:負(fù)責(zé)產(chǎn)生全局的TSO時間、控制Region在TIkv中的分布、產(chǎn)生全局事務(wù)ID、還有其他ID。
2.TiDB:沒有數(shù)據(jù)落地,接收客戶端sql語句,對sql語句進(jìn)行解析和編譯,最終形成執(zhí)行計(jì)劃。DDL語句和基于MVCC的老版本數(shù)據(jù)的回收,也是TiDB Server操作。
3.TiKV:數(shù)據(jù)以鍵值隊(duì)存儲在TiKV中,主要負(fù)責(zé)數(shù)據(jù)持久化、MVCC、Coprocessor、事務(wù)以及自身副本的高可用和強(qiáng)一致性(由Muti-raft實(shí)現(xiàn))。
4.TiFlash:列式存儲引擎,主要由擴(kuò)展的raft共識算法與Tikv進(jìn)行數(shù)據(jù)同步,實(shí)現(xiàn)負(fù)載均衡、強(qiáng)一致讀取和實(shí)時更新,對于OLTP場景這樣就實(shí)現(xiàn)了對分析型業(yè)務(wù)和事務(wù)型業(yè)務(wù)進(jìn)行隔離,對既有oltp又有olap的是有利的。
TiDB Server有六大功能:
1.處理客戶端的連接
2.SQL語句的解析和編譯
3.關(guān)系型數(shù)據(jù)與KV的轉(zhuǎn)化
4.SQL語句的執(zhí)行
5.在線DDL的執(zhí)行
6.垃圾回收
TiKV的五大功能:
1.Tikv最主要的功能就是負(fù)責(zé)數(shù)據(jù)的持久化。
2.TIkv內(nèi)部是選擇基于lsm-tree的Rocks DB引擎作為存儲引擎,而Rocksdb通過Wal機(jī)制保證數(shù)據(jù)的不丟失。
3.分布式事務(wù)支持:Tidb數(shù)據(jù)庫基于percolator事務(wù)模型的兩階段提交過程中,每個Tikv會單獨(dú)分配存儲鎖的空間,叫CF lock(列簇),這樣,配合Tidb server和PD全局TSO授時服務(wù),就實(shí)現(xiàn)了去中心化的兩階段提交。支持樂觀鎖與悲觀鎖。在5.0之后,實(shí)現(xiàn)了兩階段提交中,第二階段異步提交功能。在oltp中的高并發(fā)、小sql場景里,大大降低了寫入延遲。
4.MVCC:實(shí)現(xiàn)并發(fā)控制、隔離級別、分布式事務(wù)、數(shù)據(jù)快速恢復(fù)的基礎(chǔ)。歷史數(shù)據(jù)會存儲一段時間,最后由GC進(jìn)行回收。
5.Coprocessor:數(shù)據(jù)的過濾、部分的聚合、求最大最小值等,這些被下推分布式存儲節(jié)點(diǎn),可以利用Tikv的cpu能力,多個tikv可以并行的進(jìn)行計(jì)算,由于他們已經(jīng)過濾了數(shù)據(jù),相比不計(jì)算上傳TiDB server要少,減少了網(wǎng)絡(luò)的交互成本,TiDB Server的計(jì)算成本也相對減少。
PD的五大功能:
1.整個集群TiKV的元數(shù)據(jù)存儲
2.分配全局ID和事務(wù)ID
3.生成全局時間戳TSO
4.收集集群信息進(jìn)行調(diào)度
5.提供TiDBit Dashboard服務(wù)
TiFlash的四大功能:
1.列式存儲提高分析查詢效率
2.支持強(qiáng)一致性和實(shí)時性
3.業(yè)務(wù)隔離
4.智能選擇
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。