SequoiaDB 兼容mysql學習(概述)

一、 SequoiaDB概述

1.1 概述

        SequoiaDB 巨杉數據庫是一款開源的金融級分佈式關係型數據庫,主要面對高併發聯機交易型場景提供高性能、可靠穩定以及無限水平擴展的數據庫服務。

       SequoiaDB 巨杉數據庫支持 MySQL, PostgreSQL 和 SparkSQL 三種關係型數據庫實例、類 MongoDB 的 JSON 文檔類數據庫實例、以及 S3 對象存儲與 POSIX 文件系統的非結構化數據實例。

1.2 特性

  • 完全兼容傳統關係型數據,數據分片對應用程序完全透明
  • 高性能與無限水平彈性擴展能力
  • 分佈式事務與 ACID 能力
  • 同時支持結構化、半結構化與非結構化數據
  • 金融級安全特性,多數據中心間容災做到 RPO = 0
  • HTAP 混合負載,同時運行聯機交易與批處理任務且互不干擾
  • 多租戶能力,雲環境下支持多種級別的物理與邏輯隔離

1.3 整體框架

        SequoiaDB 巨杉數據庫作爲分佈式數據庫,由數據庫存儲引擎數據庫實例兩大模塊構成。

       其中,數據庫存儲引擎模塊是數據存儲的核心,負責提供整個數據庫的讀寫服務、數據的高可用與容災、ACID與分佈式事務等全部核心數據服務能力。

1.3.1 數據庫存儲引擎

        SequoiaDB 巨杉數據庫存儲引擎採用分佈式架構。集羣中的每個節點爲一個獨立進程,節點之間採用TCP/IP協議進行通訊。

        同一個操作系統可以部署多個節點,節點之間採用不同的端口進行區分。

SequoiaDB 巨杉數據庫的節點分爲三種不同的角色:協調節點、編目節點與數據節點。

協調節點

       協調節點不存儲任何用戶數據。作爲外部訪問的接入與請求分發節點,協調節點將用戶請求分發至相應的數據節點,最終合併數據節點的結果應答對外進行響應。

編目節點

       編目節點主要存儲系統的節點信息、用戶信息、分區信息以及對象定義等元數據。在特定操作下,協調節點與數據節點均會向編目節點請求元數據信息,以感知數據的分佈規律和校驗請求的正確性。

數據節點

       數據節點爲用戶數據的物理存儲節點,海量數據通過分片切分的方式被分散至不同的數據節點。在關係型與 JSON 數據庫實例中,每一條記錄會被完整地存放在其中一個或多個數據節點中;而在對象存儲實例中,每一個文件將會依據數據頁大小被拆分成多個數據塊,並被分散至不同的數據節點進行存放。

1.3.2 核心概念

複製組

        由於採用 PC 服務器內置物理盤,當前大部分分佈式數據庫無法在硬件設備出現故障時保證單一設備中數據的可靠性與持久性。因此 SequoiaDB 巨杉數據庫採用數據多副本存放的機制,將編目節點與數據節點所存放的數據以節點爲單位進行復制,多個擁有相同數據拷貝的節點被稱爲數據複製組。一般來說,複製組、數據分片和數據分區均代表同樣的含義。

副本

       每個複製組內的多個節點被稱爲數據副本,在 SequoiaDB 巨杉數據庫中每個複製組最多支持 7 個數據副本。

       由於複製組內的邏輯節點互爲備份,配置了多個數據副本的 SequoiaDB 巨杉數據庫原生提供高可用與容災機制。用戶可以通過添加複製組或分區的數量實現整個存儲引擎集羣的水平彈性擴展,也可以通過添加複製組內副本的數量實現更高的安全性以及提升讀寫分離的併發性。

一致性

       複製組內部的多個數據副本之間可以同時使用強一致或最終一致的數據同步方式,用戶可以基於節點或表(集合)級別進行相應的配置。整個集羣內部數據的 ACID 與分佈式事務完全由數據庫存儲引擎支持。

1.3.3 整體架構

        SequoiaDB 巨杉數據庫集羣分爲數據庫存儲引擎與數據庫實例。

        在當前版本中,SequoiaDB 巨杉數據庫支持多達 6 種不同數據服務實例,包括針對結構化數據的 MySQL、PostgreSQL與 SparkSQL 實例;針對半結構化數據的 MongoDB 實例;以及針對非結構化數據的 S3 對象存儲與 Posix 文件系統實例。

        SequoiaDB 巨杉數據庫的數據庫存儲引擎則包括協調節點、編目節點與數據節點三種類型的服務。數據節點與編目節點各自以多副本的形式構成一個個複製組。

      數據庫存儲引擎與數據庫實例均支持水平彈性擴展,任何角色的節點均提供高可用冗餘機制,不存在單點故障的可能。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章