巨杉數(shù)據(jù)庫助力民生銀行、廣發(fā)銀行柜面無紙化業(yè)務(wù)
隨著銀行業(yè)務(wù)的拓展以及網(wǎng)點(diǎn)業(yè)務(wù)的需求量加大,在新一輪技術(shù)浪潮驅(qū)動(dòng)下,各大商業(yè)銀行也在紛紛推進(jìn)智能網(wǎng)點(diǎn)的建設(shè)。其中,商業(yè)銀行的柜面無紙化就是***推進(jìn)的業(yè)務(wù)之一。
包括廣發(fā)銀行、民生銀行在內(nèi)的大型商業(yè)銀行,已經(jīng)于近幾年陸續(xù)上線柜面無紙化業(yè)務(wù),并開始在全國網(wǎng)點(diǎn)進(jìn)行推廣使用。今后,隨著柜面無紙化、“一站式”綜合店員、人工智能等系統(tǒng)的陸續(xù)應(yīng)用,各大商業(yè)銀行也將全面實(shí)現(xiàn)網(wǎng)點(diǎn)智能化轉(zhuǎn)型建設(shè)。
大型商業(yè)銀行,平均有超過300~400個(gè)業(yè)務(wù)系統(tǒng),每一個(gè)業(yè)務(wù)系統(tǒng)既有完整技術(shù)棧,又和不同的業(yè)務(wù)之間存在許多的相互依賴和相關(guān)的關(guān)系,業(yè)務(wù)和技術(shù)復(fù)雜度遠(yuǎn)超其他行業(yè)。此外,銀行對于平臺(tái)可靠性要求最為嚴(yán)苛,核心數(shù)據(jù)需保證0丟失、0錯(cuò)誤率,核心業(yè)務(wù)系統(tǒng)也有“5個(gè)9”以上的穩(wěn)定性要求。這些要求給后臺(tái)數(shù)據(jù)庫帶來了極大的要求,因此業(yè)界也戲稱銀行是企業(yè)級數(shù)據(jù)庫的“試金石”。
“無紙化”業(yè)務(wù)作為商業(yè)銀行的新一代應(yīng)用業(yè)務(wù),對于數(shù)據(jù)管理帶來了新的挑戰(zhàn)。針對銀行在新一代柜面無紙化業(yè)務(wù)上的痛點(diǎn)需求,巨杉數(shù)據(jù)庫在保證穩(wěn)定安全的基礎(chǔ)上,利用其所支持的非結(jié)構(gòu)化存儲(chǔ)、結(jié)構(gòu)化事務(wù)、可彈性擴(kuò)張、高可用、以及多數(shù)據(jù)中心災(zāi)備等能力,全面支持廣發(fā)、民生銀行的柜面無紙化業(yè)務(wù),為業(yè)務(wù)帶來巨大提升。
巨杉數(shù)據(jù)庫分布式雙活部署整體示意圖
非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)
作為一款分布式的交易型數(shù)據(jù)庫,SequoiaDB數(shù)據(jù)庫提供了同時(shí)存儲(chǔ)結(jié)構(gòu)和和非結(jié)構(gòu)化引擎的機(jī)制,非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)在引擎中主要是以 LOB形式來實(shí)現(xiàn)的。SequoiaDB 3.0在對象存儲(chǔ)API的基礎(chǔ)之上提供了標(biāo)準(zhǔn)Posix文件系統(tǒng)接口,能夠原生接入任何支持Posix協(xié)議標(biāo)準(zhǔn)的操作系統(tǒng),用戶對應(yīng)用程序無需任何改造即可從NAS遷移至SequoiaDB。
在巨杉數(shù)據(jù)庫中,LOB大對象存儲(chǔ)引擎可將各種尺寸的非結(jié)構(gòu)化文件切分成小存儲(chǔ)塊,按散列映射存放于集群的多個(gè)數(shù)據(jù)組,實(shí)現(xiàn)文件的高效并發(fā)存取,對外提供對象標(biāo)識(shí)進(jìn)行文件訪問。
在巨杉數(shù)據(jù)庫中,LOB存儲(chǔ)結(jié)構(gòu)分為元數(shù)據(jù)文件(lobm)與數(shù)據(jù)文件(lobd)。其中,元數(shù)據(jù)文件存儲(chǔ)整個(gè)LOB數(shù)據(jù)文件的元數(shù)據(jù)模型,包括每個(gè)頁的空閑狀況、散列桶、以及數(shù)據(jù)映射表等一系列數(shù)據(jù)結(jié)構(gòu)。而數(shù)據(jù)文件則存儲(chǔ)用戶真實(shí)數(shù)據(jù),數(shù)據(jù)頭之后所有數(shù)據(jù)頁按照page size進(jìn)行切分,每個(gè)數(shù)據(jù)頁不包含任何元數(shù)據(jù)信息。
與結(jié)構(gòu)化數(shù)據(jù)的記錄引擎完全不同,巨杉數(shù)據(jù)庫的非結(jié)構(gòu)化存儲(chǔ)提供了原生的對象文件塊存儲(chǔ)機(jī)制,同時(shí)適用于影像類大文件與票據(jù)類小文件。在巨杉數(shù)據(jù)庫對小文件存儲(chǔ)與檢索的過程當(dāng)中,每個(gè)數(shù)據(jù)塊均使用散列算法判斷其所處的物理位置,因此不會(huì)進(jìn)行任何物理查表操作,數(shù)據(jù)庫也不需要維護(hù)每個(gè)對象文件的物理位置表,因此不論從安全性、吞吐量、以及響應(yīng)速度都遠(yuǎn)遠(yuǎn)高于其他同類對象存儲(chǔ)。
多活與災(zāi)備
巨杉數(shù)據(jù)庫的原生分布式架構(gòu),一方面提供了引擎級別的內(nèi)部數(shù)據(jù)多副本和高可用以及基于Raft算法的數(shù)據(jù)一致性的保證。同時(shí),在跨數(shù)據(jù)中心層面,可以做到分布式集群為單位的容災(zāi)和多活機(jī)制,在滿足數(shù)據(jù)安全要求下減少了數(shù)據(jù)安全方面的部署和運(yùn)維難度。
從多活架構(gòu)的角度看,巨杉數(shù)據(jù)庫都秉承著計(jì)算存儲(chǔ)分離的設(shè)計(jì)思路,因此其SQL解析與執(zhí)行器往往與數(shù)據(jù)存儲(chǔ)和事務(wù)控制分別運(yùn)行在不同的進(jìn)程中。在這種情況下,利用數(shù)據(jù)庫自身分布式與三副本復(fù)制的特性,將數(shù)據(jù)打散放置在多個(gè)數(shù)據(jù)中心內(nèi),每個(gè)數(shù)據(jù)中心配置本地SQL服務(wù)節(jié)點(diǎn),從應(yīng)用程序的角度看不需要關(guān)注底層數(shù)據(jù)庫的主從架構(gòu),僅需要通過JDBC連接到本地的SQL服務(wù)節(jié)點(diǎn)進(jìn)行讀寫操作即可。在這種架構(gòu)下,每個(gè)SQL節(jié)點(diǎn)完全對等,并均可以處理讀寫操作。所有的事務(wù)控制、一致性控制、鎖等待等機(jī)制都由底層的分布式數(shù)據(jù)庫直接提供。
以兩地三中心為例,在該架構(gòu)中,城市A機(jī)房1作為主機(jī)房,提供與同城的機(jī)房2之間的同步數(shù)據(jù)復(fù)制。而對于城市B的機(jī)房來說,在帶寬足夠的情況下可以選擇使用同步機(jī)制與城市A的機(jī)房進(jìn)行數(shù)據(jù)復(fù)制。而在帶寬不足時(shí)則可以選擇異步的復(fù)制方式。
同時(shí),巨杉也支持異地災(zāi)備機(jī)房的定期追加更新。用戶可以通過定義異地災(zāi)備機(jī)房的同步策略,使災(zāi)備機(jī)房定期進(jìn)行日志文件的同步,以做到災(zāi)備機(jī)房與主機(jī)房的數(shù)據(jù)擁有一定的時(shí)間差異,避免手工誤操作。
高性能實(shí)時(shí)性能響應(yīng)
通過分布式架構(gòu),多維數(shù)據(jù)分區(qū),高性能索引,以及數(shù)據(jù)壓縮等機(jī)制,影像平臺(tái)無論非結(jié)構(gòu)化數(shù)據(jù)還是結(jié)構(gòu)化數(shù)據(jù)在大數(shù)據(jù)量下依舊保持性能的平滑擴(kuò)展,實(shí)時(shí)響應(yīng)。在性能測試對比中,對比巨杉數(shù)據(jù)庫,傳統(tǒng)NAS方案想要達(dá)到同樣吞吐量至少需要3倍以上的磁盤數(shù)量。
以下是巨杉數(shù)據(jù)庫在實(shí)際測試環(huán)境中,對于非結(jié)構(gòu)化數(shù)據(jù)管理這塊的測試數(shù)據(jù):
- 2GB/s的整體吞吐量,分布式架構(gòu)
- 6節(jié)點(diǎn)x86服務(wù)器、整個(gè)集群共36塊SAS盤
- 傳統(tǒng)方案,高端配置:1.5GB/s 120塊盤以上
- 100%寫入場景
吞吐量(MB/秒) |
50KB |
200KB |
1MB |
10MB |
整個(gè)集群(6節(jié)點(diǎn)) |
353.3 |
1232.8 |
2223.3 |
2077.5 |
平均單物理節(jié)點(diǎn) |
58.9 |
205.5 |
370.5 |
346.3 |
數(shù)據(jù)寫入平均時(shí)延(ms) |
14 |
16 |
44 |
466 |
- 100%讀取場景
吞吐量(MB/秒) |
50KB |
200KB |
1MB |
10MB |
整個(gè)集群(6節(jié)點(diǎn)) |
352.9 |
1225.1 |
2410.9 |
2653.3 |
平均單物理節(jié)點(diǎn) |
58.8 |
204.2 |
401.8 |
442.2 |
數(shù)據(jù)寫入平均時(shí)延(ms) |
14 |
16 |
41 |
369 |
- 混合業(yè)務(wù)場景
吞吐量(MB/秒) |
50KB |
200KB |
1MB |
10MB |
整個(gè)集群(6節(jié)點(diǎn)) |
363.7 |
1266.0 |
1872.8 |
2323.8 |
平均單物理節(jié)點(diǎn) |
60.6 |
211.0 |
312.1 |
387.3 |
數(shù)據(jù)寫入平均時(shí)延(ms) |
寫:14 讀:16 |
寫:14 讀:15 |
寫:35 讀:106 |
寫:293 讀:749 |
巨杉數(shù)據(jù)庫為底層數(shù)據(jù)引擎的分布式非結(jié)構(gòu)化數(shù)據(jù)管理平臺(tái),已經(jīng)在包括民生銀行、廣發(fā)銀行在內(nèi)的超過50家大型銀行業(yè)務(wù)應(yīng)用。在某大型股份制商業(yè)銀行業(yè)務(wù)系統(tǒng)中,巨杉數(shù)據(jù)庫總集群部署節(jié)點(diǎn)數(shù)達(dá)到122臺(tái)物理服務(wù)器,部署邏輯節(jié)點(diǎn)1530個(gè),平臺(tái)服務(wù)銀行網(wǎng)點(diǎn)數(shù)超過840個(gè) ,性能響應(yīng)在毫秒級別,數(shù)據(jù)實(shí)現(xiàn)了同城數(shù)據(jù)中心災(zāi)備和雙活。