电竞比分网-中国电竞赛事及体育赛事平台

分享

【SequoiaDB】4 巨杉數(shù)據(jù)庫SequoiaDB整體架構(gòu)

 小樣樣樣樣樣樣 2022-04-04

1 整體架構(gòu)

Sequoia DB巨杉數(shù)據(jù)庫作為分布式數(shù)據(jù)庫,由數(shù)據(jù)庫存儲引擎與數(shù)據(jù)庫實例兩大模塊組成。

其中,數(shù)據(jù)庫存儲引擎模塊是數(shù)據(jù)存儲的核心,負責提供整個數(shù)據(jù)庫的讀寫服務、數(shù)據(jù)的高可用與容災、ACID與發(fā)你不是事務等全部核心數(shù)據(jù)服務能力。

數(shù)據(jù)庫實例模塊則作為協(xié)議與語法的適配層,用戶可根據(jù)需要創(chuàng)建包括MySQL、PostgreSQL與Spark SQL在內(nèi)的結(jié)構(gòu)化數(shù)據(jù)實例;支持JSON語法的MongoDB實例;以及完全兼容S3與Posix文件系統(tǒng)的對象存儲實例。

 

2 數(shù)據(jù)庫實例

Sequoia DB巨杉數(shù)據(jù)庫支持多種類型的數(shù)據(jù)庫實例。至當前版本為止,Sequoia DB巨杉數(shù)據(jù)庫支持6中不同的實例類型。

實例類型

實例分類

描述

MySQL

結(jié)構(gòu)化數(shù)據(jù)

適用于純聯(lián)機交易場景,與MySQL保持100%兼容

PostgreSQL

結(jié)構(gòu)化數(shù)據(jù)

適用于聯(lián)機交易場景與中小量數(shù)據(jù)的分析類場景,與PostgreSQL基本保持兼容

SparkSQL

結(jié)構(gòu)化數(shù)據(jù)

適用于海量數(shù)據(jù)的統(tǒng)計分析類場景,與Spark SQL保持100%兼容

JSON API

半結(jié)構(gòu)化數(shù)據(jù)

適用于基于JSON數(shù)據(jù)類型的聯(lián)機業(yè)務場景,與MongoDB保持部分兼容

S3對象存儲

非結(jié)構(gòu)化數(shù)據(jù)

適用于對象存儲類的聯(lián)機業(yè)務與歸檔類場景,與S3保持100%兼容

Posix文件系統(tǒng)

非結(jié)構(gòu)話數(shù)據(jù)

適用于使用傳統(tǒng)文件系統(tǒng)向分布式環(huán)境遷移的業(yè)務場景,與標準Ext3/XFS等基本保持兼容

3 數(shù)據(jù)庫存儲引擎

Sequoia DB巨杉數(shù)據(jù)庫存儲引擎采用分布式架構(gòu),集群中的每個節(jié)點為一個獨立進程,節(jié)點之間采用TCP/IP協(xié)議進行通訊。

同一個操作系統(tǒng)可以部署多個節(jié)點,節(jié)點之間采用不同的端口進行區(qū)分。

Sequoia DB巨杉數(shù)據(jù)庫的節(jié)點分為三種不同的角色:協(xié)調(diào)節(jié)點、編目節(jié)點與數(shù)據(jù)節(jié)點。

3.1 協(xié)調(diào)節(jié)點

協(xié)調(diào)節(jié)點不存儲任何用戶數(shù)據(jù),作為外部訪問的接入與請求分發(fā)節(jié)點,協(xié)調(diào)節(jié)點將用戶請求分發(fā)至相應的數(shù)據(jù)節(jié)點,最終合并數(shù)據(jù)節(jié)點的結(jié)果應答對外進行響應。

3.2 編目節(jié)點

編目節(jié)點主要存儲系統(tǒng)的節(jié)點信息、用戶信息、分區(qū)信息以及對象定義等元數(shù)據(jù)。在特定操作下,協(xié)調(diào)節(jié)點與數(shù)據(jù)節(jié)點均會向編目節(jié)點請求元數(shù)據(jù)信息,以感知數(shù)據(jù)的分布規(guī)律和校驗請求的正確性。

3.3 數(shù)據(jù)節(jié)點

數(shù)據(jù)節(jié)點為用戶數(shù)據(jù)的物理存儲節(jié)點,海量數(shù)據(jù)同分片切分的方式被分散至不同的數(shù)據(jù)節(jié)點。在關系型與JSON數(shù)據(jù)庫實例中,每一條記錄會被完整地存放在其中一個或多個數(shù)據(jù)節(jié)點中;而在對象存儲實例中,每一個文件將會一句數(shù)據(jù)頁大小被拆分成多個數(shù)據(jù)塊,并被分散至不同的數(shù)據(jù)節(jié)點進行存放。

4 核心概念

4.1 復制組

由于采用PC服務器內(nèi)置物理盤,當前大部分分布式數(shù)據(jù)庫無法在硬件設備出現(xiàn)故障時保證單一設備中數(shù)據(jù)的可靠性與持久性。因此Sequoia DB巨杉數(shù)據(jù)庫采用數(shù)據(jù)多副本存放的機制,將編目節(jié)點與數(shù)據(jù)節(jié)點所存放的數(shù)據(jù)以節(jié)點為單位進行復制,多個擁有相同數(shù)據(jù)拷貝的節(jié)點被稱為數(shù)據(jù)復制組。一般來說,復制組、數(shù)據(jù)分片和數(shù)據(jù)分區(qū)均代表同樣的含義。

4.2 副本

每個復制組內(nèi)的多個節(jié)點被稱為數(shù)據(jù)副本,在Sequoia DB巨杉數(shù)據(jù)庫中每個復制組最多支持7個數(shù)據(jù)副本。

由于復制組內(nèi)的邏輯節(jié)點互為備份,配置了多個數(shù)據(jù)副本的Sequoia DB巨杉數(shù)據(jù)庫原生提供高可用與容災機制。用戶可以通過添加復制組或分區(qū)的數(shù)量實現(xiàn)整個存儲引擎集群的水平彈性擴展,也可以通過添加復制組內(nèi)副本的數(shù)量實現(xiàn)更高的安全性以及提升讀寫分離的并發(fā)性。

4.3 一致性

復制組內(nèi)部的多個數(shù)據(jù)副本之間可以同時使用強一致或最終一致的數(shù)據(jù)同步方式,用戶可以基于節(jié)點或表(集合)級別進行相應的配置。整個集群內(nèi)部數(shù)據(jù)的ACID與分布式事務完全由數(shù)據(jù)庫存儲引擎支持。

 

引用:巨杉數(shù)據(jù)庫官方文檔

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多