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中不同的實例類型。
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ù)庫存儲引擎支持。
|
|
|