巨杉數(shù)據(jù)庫分布式雙活部署整體示意圖

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

作為一款分布式的交易型數(shù)據(jù)庫,SequoiaDB數(shù)據(jù)庫提供了同時存儲結(jié)構(gòu)和和非結(jié)構(gòu)化引擎的機制,非結(jié)構(gòu)化數(shù)據(jù)的存儲在引擎中主要是以 LOB形式來實現(xiàn)的。SequoiaDB 3.0在對象存儲API的基礎(chǔ)之上提供了標準Posix文件系統(tǒng)接口,能夠原生接入任何支持Posix協(xié)議標準的操作系統(tǒng),用戶對應(yīng)用程序無需任何改造即可從NAS遷移至SequoiaDB。

在巨杉數(shù)據(jù)庫中,LOB大對象存儲引擎可將各種尺寸的非結(jié)構(gòu)化文件切分成小存儲塊,按散列映射存放于集群的多個數(shù)據(jù)組,實現(xiàn)文件的高效并發(fā)存取,對外提供對象標識進行文件訪問。

在巨杉數(shù)據(jù)庫中,LOB存儲結(jié)構(gòu)分為元數(shù)據(jù)文件(lobm)與數(shù)據(jù)文件(lobd)。其中,元數(shù)據(jù)文件存儲整個LOB數(shù)據(jù)文件的元數(shù)據(jù)模型,包括每個頁的空閑狀況、散列桶、以及數(shù)據(jù)映射表等一系列數(shù)據(jù)結(jié)構(gòu)。而數(shù)據(jù)文件則存儲用戶真實數(shù)據(jù),數(shù)據(jù)頭之后所有數(shù)據(jù)頁按照page size進行切分,每個數(shù)據(jù)頁不包含任何元數(shù)據(jù)信息。

2.png

與結(jié)構(gòu)化數(shù)據(jù)的記錄引擎完全不同,巨杉數(shù)據(jù)庫的非結(jié)構(gòu)化存儲提供了原生的對象文件塊存儲機制,同時適用于影像類大文件與票據(jù)類小文件。在巨杉數(shù)據(jù)庫對小文件存儲與檢索的過程當中,每個數(shù)據(jù)塊均使用散列算法判斷其所處的物理位置,因此不會進行任何物理查表操作,數(shù)據(jù)庫也不需要維護每個對象文件的物理位置表,因此不論從安全性、吞吐量、以及響應(yīng)速度都遠遠高于其他同類對象存儲。

多活與災(zāi)備

巨杉數(shù)據(jù)庫的原生分布式架構(gòu),一方面提供了引擎級別的內(nèi)部數(shù)據(jù)多副本和高可用以及基于Raft算法的數(shù)據(jù)一致性的保證。同時,在跨數(shù)據(jù)中心層面,可以做到分布式集群為單位的容災(zāi)和多活機制,在滿足數(shù)據(jù)安全要求下減少了數(shù)據(jù)安全方面的部署和運維難度。

從多活架構(gòu)的角度看,巨杉數(shù)據(jù)庫都秉承著計算存儲分離的設(shè)計思路,因此其SQL解析與執(zhí)行器往往與數(shù)據(jù)存儲和事務(wù)控制分別運行在不同的進程中。在這種情況下,利用數(shù)據(jù)庫自身分布式與三副本復(fù)制的特性,將數(shù)據(jù)打散放置在多個數(shù)據(jù)中心內(nèi),每個數(shù)據(jù)中心配置本地SQL服務(wù)節(jié)點,從應(yīng)用程序的角度看不需要關(guān)注底層數(shù)據(jù)庫的主從架構(gòu),僅需要通過JDBC連接到本地的SQL服務(wù)節(jié)點進行讀寫操作即可。在這種架構(gòu)下,每個SQL節(jié)點完全對等,并均可以處理讀寫操作。所有的事務(wù)控制、一致性控制、鎖等待等機制都由底層的分布式數(shù)據(jù)庫直接提供。

以兩地三中心為例,在該架構(gòu)中,城市A機房1作為主機房,提供與同城的機房2之間的同步數(shù)據(jù)復(fù)制。而對于城市B的機房來說,在帶寬足夠的情況下可以選擇使用同步機制與城市A的機房進行數(shù)據(jù)復(fù)制。而在帶寬不足時則可以選擇異步的復(fù)制方式。

同時,巨杉也支持異地災(zāi)備機房的定期追加更新。用戶可以通過定義異地災(zāi)備機房的同步策略,使災(zāi)備機房定期進行日志文件的同步,以做到災(zāi)備機房與主機房的數(shù)據(jù)擁有一定的時間差異,避免手工誤操作。

3.png

高性能實時性能響應(yīng)

通過分布式架構(gòu),多維數(shù)據(jù)分區(qū),高性能索引,以及數(shù)據(jù)壓縮等機制,影像平臺無論非結(jié)構(gòu)化數(shù)據(jù)還是結(jié)構(gòu)化數(shù)據(jù)在大數(shù)據(jù)量下依舊保持性能的平滑擴展,實時響應(yīng)。在性能測試對比中,對比巨杉數(shù)據(jù)庫,傳統(tǒng)NAS方案想要達到同樣吞吐量至少需要3倍以上的磁盤數(shù)量。

以下是巨杉數(shù)據(jù)庫在實際測試環(huán)境中,對于非結(jié)構(gòu)化數(shù)據(jù)管理這塊的測試數(shù)據(jù):

·2GB/s的整體吞吐量,分布式架構(gòu)

·6節(jié)點x86服務(wù)器、整個集群共36塊SAS盤

·傳統(tǒng)方案,高端配置:1.5GB/s 120塊盤以上

·100%寫入場景

4.jpg

·100%讀取場景

5.jpg

·混合業(yè)務(wù)場景

6.jpg

巨杉數(shù)據(jù)庫為底層數(shù)據(jù)引擎的分布式非結(jié)構(gòu)化數(shù)據(jù)管理平臺,已經(jīng)在包括民生銀行、廣發(fā)銀行在內(nèi)的超過50家大型銀行業(yè)務(wù)應(yīng)用。在某大型股份制商業(yè)銀行業(yè)務(wù)系統(tǒng)中,巨杉數(shù)據(jù)庫總集群部署節(jié)點數(shù)達到122臺物理服務(wù)器,部署邏輯節(jié)點1530個,平臺服務(wù)銀行網(wǎng)點數(shù)超過840個?,性能響應(yīng)在毫秒級別,數(shù)據(jù)實現(xiàn)了同城數(shù)據(jù)中心災(zāi)備和雙活。

分享到

songjy

相關(guān)推薦