1 整體架構(gòu)Sequoia DB巨杉數(shù)據(jù)庫(kù)作為分布式數(shù)據(jù)庫(kù),由數(shù)據(jù)庫(kù)存儲(chǔ)引擎與數(shù)據(jù)庫(kù)實(shí)例兩大模塊組成。 其中,數(shù)據(jù)庫(kù)存儲(chǔ)引擎模塊是數(shù)據(jù)存儲(chǔ)的核心,負(fù)責(zé)提供整個(gè)數(shù)據(jù)庫(kù)的讀寫(xiě)服務(wù)、數(shù)據(jù)的高可用與容災(zāi)、ACID與發(fā)你不是事務(wù)等全部核心數(shù)據(jù)服務(wù)能力。 數(shù)據(jù)庫(kù)實(shí)例模塊則作為協(xié)議與語(yǔ)法的適配層,用戶可根據(jù)需要?jiǎng)?chuàng)建包括MySQL、PostgreSQL與Spark SQL在內(nèi)的結(jié)構(gòu)化數(shù)據(jù)實(shí)例;支持JSON語(yǔ)法的MongoDB實(shí)例;以及完全兼容S3與Posix文件系統(tǒng)的對(duì)象存儲(chǔ)實(shí)例。
2 數(shù)據(jù)庫(kù)實(shí)例Sequoia DB巨杉數(shù)據(jù)庫(kù)支持多種類型的數(shù)據(jù)庫(kù)實(shí)例。至當(dāng)前版本為止,Sequoia DB巨杉數(shù)據(jù)庫(kù)支持6中不同的實(shí)例類型。
3 數(shù)據(jù)庫(kù)存儲(chǔ)引擎Sequoia DB巨杉數(shù)據(jù)庫(kù)存儲(chǔ)引擎采用分布式架構(gòu),集群中的每個(gè)節(jié)點(diǎn)為一個(gè)獨(dú)立進(jìn)程,節(jié)點(diǎn)之間采用TCP/IP協(xié)議進(jìn)行通訊。 同一個(gè)操作系統(tǒng)可以部署多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)之間采用不同的端口進(jìn)行區(qū)分。
Sequoia DB巨杉數(shù)據(jù)庫(kù)的節(jié)點(diǎn)分為三種不同的角色:協(xié)調(diào)節(jié)點(diǎn)、編目節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)。 3.1 協(xié)調(diào)節(jié)點(diǎn)協(xié)調(diào)節(jié)點(diǎn)不存儲(chǔ)任何用戶數(shù)據(jù),作為外部訪問(wèn)的接入與請(qǐng)求分發(fā)節(jié)點(diǎn),協(xié)調(diào)節(jié)點(diǎn)將用戶請(qǐng)求分發(fā)至相應(yīng)的數(shù)據(jù)節(jié)點(diǎn),最終合并數(shù)據(jù)節(jié)點(diǎn)的結(jié)果應(yīng)答對(duì)外進(jìn)行響應(yīng)。 3.2 編目節(jié)點(diǎn)編目節(jié)點(diǎn)主要存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)信息、用戶信息、分區(qū)信息以及對(duì)象定義等元數(shù)據(jù)。在特定操作下,協(xié)調(diào)節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)均會(huì)向編目節(jié)點(diǎn)請(qǐng)求元數(shù)據(jù)信息,以感知數(shù)據(jù)的分布規(guī)律和校驗(yàn)請(qǐng)求的正確性。 3.3 數(shù)據(jù)節(jié)點(diǎn)數(shù)據(jù)節(jié)點(diǎn)為用戶數(shù)據(jù)的物理存儲(chǔ)節(jié)點(diǎn),海量數(shù)據(jù)同分片切分的方式被分散至不同的數(shù)據(jù)節(jié)點(diǎn)。在關(guān)系型與JSON數(shù)據(jù)庫(kù)實(shí)例中,每一條記錄會(huì)被完整地存放在其中一個(gè)或多個(gè)數(shù)據(jù)節(jié)點(diǎn)中;而在對(duì)象存儲(chǔ)實(shí)例中,每一個(gè)文件將會(huì)一句數(shù)據(jù)頁(yè)大小被拆分成多個(gè)數(shù)據(jù)塊,并被分散至不同的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行存放。 4 核心概念4.1 復(fù)制組由于采用PC服務(wù)器內(nèi)置物理盤(pán),當(dāng)前大部分分布式數(shù)據(jù)庫(kù)無(wú)法在硬件設(shè)備出現(xiàn)故障時(shí)保證單一設(shè)備中數(shù)據(jù)的可靠性與持久性。因此Sequoia DB巨杉數(shù)據(jù)庫(kù)采用數(shù)據(jù)多副本存放的機(jī)制,將編目節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)所存放的數(shù)據(jù)以節(jié)點(diǎn)為單位進(jìn)行復(fù)制,多個(gè)擁有相同數(shù)據(jù)拷貝的節(jié)點(diǎn)被稱為數(shù)據(jù)復(fù)制組。一般來(lái)說(shuō),復(fù)制組、數(shù)據(jù)分片和數(shù)據(jù)分區(qū)均代表同樣的含義。 4.2 副本每個(gè)復(fù)制組內(nèi)的多個(gè)節(jié)點(diǎn)被稱為數(shù)據(jù)副本,在Sequoia DB巨杉數(shù)據(jù)庫(kù)中每個(gè)復(fù)制組最多支持7個(gè)數(shù)據(jù)副本。 由于復(fù)制組內(nèi)的邏輯節(jié)點(diǎn)互為備份,配置了多個(gè)數(shù)據(jù)副本的Sequoia DB巨杉數(shù)據(jù)庫(kù)原生提供高可用與容災(zāi)機(jī)制。用戶可以通過(guò)添加復(fù)制組或分區(qū)的數(shù)量實(shí)現(xiàn)整個(gè)存儲(chǔ)引擎集群的水平彈性擴(kuò)展,也可以通過(guò)添加復(fù)制組內(nèi)副本的數(shù)量實(shí)現(xiàn)更高的安全性以及提升讀寫(xiě)分離的并發(fā)性。 4.3 一致性復(fù)制組內(nèi)部的多個(gè)數(shù)據(jù)副本之間可以同時(shí)使用強(qiáng)一致或最終一致的數(shù)據(jù)同步方式,用戶可以基于節(jié)點(diǎn)或表(集合)級(jí)別進(jìn)行相應(yīng)的配置。整個(gè)集群內(nèi)部數(shù)據(jù)的ACID與分布式事務(wù)完全由數(shù)據(jù)庫(kù)存儲(chǔ)引擎支持。
|
|
|