博客專欄

        EEPW首頁 > 博客 > TiDB體系架構

        TiDB體系架構

        發(fā)布人:天翼云開發(fā)者 時間:2024-06-24 來源:工程師 發(fā)布文章

        本文分享自天翼云開發(fā)者社區(qū)《TiDB體系架構》,作者:x****n

        image.png

         

        如圖所示,TiDB體系中三大組成部分:PD、TiDB Server、TiKV


        1.PD:負責產生全局的TSO時間、控制Region在TIkv中的分布、產生全局事務ID、還有其他ID。

        2.TiDB:沒有數據落地,接收客戶端sql語句,對sql語句進行解析和編譯,最終形成執(zhí)行計劃。DDL語句和基于MVCC的老版本數據的回收,也是TiDB Server操作。

        3.TiKV:數據以鍵值隊存儲在TiKV中,主要負責數據持久化、MVCC、Coprocessor、事務以及自身副本的高可用和強一致性(由Muti-raft實現)。

        4.TiFlash:列式存儲引擎,主要由擴展的raft共識算法與Tikv進行數據同步,實現負載均衡、強一致讀取和實時更新,對于OLTP場景這樣就實現了對分析型業(yè)務和事務型業(yè)務進行隔離,對既有oltp又有olap的是有利的。


        image.png


        TiDB Server有六大功能:

        1.處理客戶端的連接

        2.SQL語句的解析和編譯

        3.關系型數據與KV的轉化

        4.SQL語句的執(zhí)行

        5.在線DDL的執(zhí)行

        6.垃圾回收


        image.png

         

        TiKV的五大功能:

        1.Tikv最主要的功能就是負責數據的持久化。

        2.TIkv內部是選擇基于lsm-tree的Rocks DB引擎作為存儲引擎,而Rocksdb通過Wal機制保證數據的不丟失。

        3.分布式事務支持:Tidb數據庫基于percolator事務模型的兩階段提交過程中,每個Tikv會單獨分配存儲鎖的空間,叫CF lock(列簇),這樣,配合Tidb server和PD全局TSO授時服務,就實現了去中心化的兩階段提交。支持樂觀鎖與悲觀鎖。在5.0之后,實現了兩階段提交中,第二階段異步提交功能。在oltp中的高并發(fā)、小sql場景里,大大降低了寫入延遲。

        4.MVCC:實現并發(fā)控制、隔離級別、分布式事務、數據快速恢復的基礎。歷史數據會存儲一段時間,最后由GC進行回收。

        5.Coprocessor:數據的過濾、部分的聚合、求最大最小值等,這些被下推分布式存儲節(jié)點,可以利用Tikv的cpu能力,多個tikv可以并行的進行計算,由于他們已經過濾了數據,相比不計算上傳TiDB server要少,減少了網絡的交互成本,TiDB Server的計算成本也相對減少。


        image.png


        PD的五大功能:

        1.整個集群TiKV的元數據存儲

        2.分配全局ID和事務ID

        3.生成全局時間戳TSO

        4.收集集群信息進行調度

        5.提供TiDBit Dashboard服務


        image.png


        TiFlash的四大功能:

        1.列式存儲提高分析查詢效率

        2.支持強一致性和實時性

        3.業(yè)務隔離

        4.智能選擇

        *博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 习水县| 山丹县| 华宁县| 无极县| 绥芬河市| 衢州市| 清远市| 中阳县| 湘潭县| 乡城县| 香格里拉县| 蒲城县| 思南县| 耒阳市| 钟祥市| 新干县| 涟水县| 天台县| 柳林县| 顺义区| 墨竹工卡县| 天峻县| 湖南省| 原阳县| 普洱| 楚雄市| 平阳县| 五台县| 邵阳市| 财经| 监利县| 柯坪县| 柘荣县| 新乐市| 正阳县| 县级市| 寻甸| 托克逊县| 博客| 内丘县| 北川|