【金猿技術(shù)展】千節(jié)點(diǎn)線性擴(kuò)展——STP序列時(shí)鐘協(xié)議
原創(chuàng) 巨杉數(shù)據(jù)庫 | 2020-12-28 20:00
【數(shù)據(jù)猿導(dǎo)讀】 該技術(shù)由巨杉數(shù)據(jù)庫申報(bào)并參與“數(shù)據(jù)猿年度金猿策劃活動——2020大數(shù)據(jù)產(chǎn)業(yè)創(chuàng)新技術(shù)突破榜榜單及獎項(xiàng)”評選。

SequoiaDB巨杉數(shù)據(jù)庫基于已獲專利的全分布式邏輯時(shí)鐘機(jī)制,構(gòu)建時(shí)間序列協(xié)議(STP,Sequence Time Protocol)。該協(xié)議用于 SequoiaDB內(nèi)部邏輯時(shí)間同步,邏輯時(shí)間是SequoiaDB內(nèi)部用于表示時(shí)間,但區(qū)別于實(shí)際時(shí)間的邏輯時(shí)間戳。STP維護(hù)邏輯時(shí)間,提供邏輯時(shí)鐘服務(wù),而邏輯時(shí)間戳主要用于全局事務(wù)處理。
技術(shù)說明
分布式數(shù)據(jù)庫架構(gòu)下要保障事務(wù)一致性,必須借助分布式事務(wù),而分布式事務(wù)需要分布式數(shù)據(jù)庫提供一個(gè)全局統(tǒng)一的事務(wù)號,準(zhǔn)確標(biāo)識不同會話的先后順序。為了保證分布式數(shù)據(jù)一致性,大多數(shù)廠商通過GTM(Global Transaction/Time Manager)解決方案提供統(tǒng)一的事務(wù)ID或時(shí)鐘服務(wù),從而導(dǎo)致每次事務(wù)操作都需要跨服務(wù)器進(jìn)行。隨著服務(wù)器規(guī)模的擴(kuò)展,中心節(jié)點(diǎn)的處理能力降低,事務(wù)延遲增大,導(dǎo)致系統(tǒng)擴(kuò)展能力受到極大限制。部分?jǐn)?shù)據(jù)庫廠商為了保證數(shù)據(jù)一致性選擇放棄2PC提交模式,轉(zhuǎn)而使用1PC加業(yè)務(wù)補(bǔ)償策略,但在嚴(yán)格的事務(wù)一致性需求場景下將無法應(yīng)用。
一、STP技術(shù)簡介
作為業(yè)界原生分布式數(shù)據(jù)庫以及新一代分布式數(shù)據(jù)庫的代表,SequoiaDB能夠?qū)崿F(xiàn)分布式交易和ACID與傳統(tǒng)技術(shù)完全兼容,實(shí)現(xiàn)架構(gòu)和功能特性與傳統(tǒng)數(shù)據(jù)庫完全兼容,以提供完整的事務(wù)支持和一致性保障,充分保證數(shù)據(jù)安全,滿足核心交易業(yè)務(wù)的嚴(yán)苛要求。
STP以節(jié)點(diǎn)形式部署在SequoiaDB集群的每個(gè)機(jī)器中,以提供邏輯時(shí)鐘服務(wù)。STP節(jié)點(diǎn)分為Server和Client兩種角色,各STP Server之間通過Raft保證邏輯時(shí)鐘的強(qiáng)一致性,避免了強(qiáng)制所有參與節(jié)點(diǎn)從GTM中獲取唯一ID的步驟,每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)通過本地的STP Client與主STP Server保持邏輯時(shí)鐘一致性,并通過專利技術(shù)確保邏輯時(shí)鐘持續(xù)向前推進(jìn),防止出現(xiàn)沖突。
其特點(diǎn)包括:
●單調(diào)遞增性:邏輯時(shí)鐘始終保持單調(diào)遞增,不受物理時(shí)鐘回調(diào)影響;
●高可靠性:STP Server 一主多備,采用一致性 Raft 協(xié)議同步邏輯時(shí)鐘;
●高可用性:STP Client 與 Server 之間采用 DEBTP(Dynamic Error Based Time Protocol ) 同步邏輯時(shí)間,且 Server 與每個(gè) Client 之間都維持獨(dú)立的動態(tài)時(shí)間誤差,既可以適應(yīng)網(wǎng)絡(luò)抖動,也可以滿足不同節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)狀態(tài)。時(shí)間誤差根據(jù)時(shí)間同步、網(wǎng)絡(luò)狀態(tài)進(jìn)行動態(tài)調(diào)整;
●高性能:STP Client采用共享內(nèi)存方式對外提供時(shí)間服務(wù),讓邏輯時(shí)間的獲取為本地調(diào)用,沒有任何網(wǎng)絡(luò)開銷,性能為納秒級。
STP始終保持單調(diào)遞增的方法如下:
1. STP Server采用一主多備,通過Raft協(xié)議同步ULT,并確保多數(shù)派成功。選主時(shí),ULT最大的節(jié)點(diǎn)當(dāng)選主節(jié)點(diǎn);
2. STP Server重啟或切主時(shí),會從本地持久化中獲取保存的ULT,獲取當(dāng)前的物理時(shí)間LRT并重新計(jì)算ULT。計(jì)算新的ULT時(shí),如果 LRT > ULT + 同步周期則 ULT = LRT,否則 ULT = ULT + 同步周期。新的ULT將通過通過Raft協(xié)議同步至其他節(jié)點(diǎn);
3. 當(dāng)STP Client LLT > ULT時(shí),則該STP Client需要阻塞時(shí)間服務(wù),直到ULT >= LLT;
4. 當(dāng)STP Client故障時(shí),在一個(gè)同步周期內(nèi)STP Client還可以提供時(shí)間服務(wù),超時(shí)后則不能提供;同時(shí),STP Client提供命令讓外部調(diào)用促發(fā)即時(shí)時(shí)間同步。
二、基于STP的分布式事務(wù)
SequoiaDB 基于STP的分布式事務(wù)能夠提供完整的事務(wù)支持和一致性保障,其特性如下:
●高并發(fā)能力:全局事務(wù)GID由接入節(jié)點(diǎn)本地生成,不存在全局單點(diǎn)瓶頸,沒有網(wǎng)絡(luò)開銷,GTID生成在”納秒“級;
●線性擴(kuò)展能力:通過增加“接入接點(diǎn)”即可完成事務(wù)處理能力的線性擴(kuò)展;
●高性能:在事務(wù)訪問記錄不沖突時(shí), 或者事務(wù)之間不出現(xiàn)邏輯時(shí)間沖突時(shí),全局事務(wù)退化為本地事務(wù),不引入任何其它成本開銷,實(shí)現(xiàn)高性能;
●全局一致的可見性:當(dāng)事務(wù)的邏輯時(shí)間不出現(xiàn)沖突時(shí),通過邏輯時(shí)間的大小比對即可決定相關(guān)事務(wù)在全局的可見性;當(dāng)事務(wù)的邏輯時(shí)間出現(xiàn)沖突時(shí),則引入“可見性仲裁”來決定相關(guān)事務(wù)在全局的可見性。
三、基于STP的分布式事務(wù)校時(shí)機(jī)制
GTID 由 節(jié)點(diǎn)ID + LLT 組成,全局唯一。事務(wù)包含開始時(shí)間(LTb),預(yù)提交時(shí)間(LTpc)、提交時(shí)間(LTc)以及時(shí)間誤差(LTError), LTb < LTpc + LTError, LTpc <= LTc。兩個(gè)事務(wù)的可見性判斷遵守STP邏輯時(shí)間比較規(guī)則, Δ取兩個(gè)事務(wù)中最大的時(shí)間誤差。如果兩個(gè)事務(wù)比較為“≡”,則需要進(jìn)行“可見性仲裁”。
建立事務(wù)校時(shí),事務(wù)從 Coordinator 到 Node建立時(shí),Node會從本地 STP Client 獲取 LLT進(jìn)行校時(shí),如果相差大于指定閾值,則需要進(jìn)行事務(wù)重試。該校時(shí)用于快速發(fā)現(xiàn)節(jié)點(diǎn)的時(shí)間是否同步。
提交事務(wù)校時(shí),在預(yù)提交階段,Node需要從本地STP Client中獲取LLT進(jìn)行校時(shí),如果相差大于指定閾值,則需要進(jìn)行事務(wù)預(yù)提交重試。Node在預(yù)提交時(shí),需要返回 max(本節(jié)點(diǎn)最大的事務(wù)開始時(shí)間,本節(jié)點(diǎn)預(yù)提交處理時(shí)間)。Coordinator選取 max(Node返回時(shí)間,預(yù)提交時(shí)間) 作為最終的事務(wù)提交時(shí)間。
四、基于STP的分布式事務(wù)“一致性2PC”機(jī)制
傳統(tǒng)事務(wù)2PC機(jī)制在“2PC: Commit”階段發(fā)生故障時(shí),會出現(xiàn)有的分區(qū)數(shù)據(jù)已提交而有的分區(qū)數(shù)據(jù)狀態(tài)不確定的情況。而“一致性2PC”機(jī)制會在Pre-Commit時(shí)共享事務(wù)分區(qū)信息,讓參與事務(wù)的分區(qū)相互感知;分區(qū)執(zhí)行Pre-Commit后進(jìn)入WAIT_COMMIT狀態(tài)。在 “2PC: Commit”階段出現(xiàn)分區(qū)一致性時(shí),處于WAIT_COMMIT的事務(wù)會發(fā)起一致性確認(rèn)來修正事務(wù)狀態(tài),一致性確認(rèn)協(xié)議自動修復(fù)極端情況下事務(wù)的一致性。
修正事務(wù)狀態(tài)規(guī)則如下:
1)任一分區(qū)回滾則回滾;
2)任一分區(qū)提交則提交;
3)全部為 WAIT_COMMIT 則提交。
開發(fā)團(tuán)隊(duì)
●帶隊(duì)負(fù)責(zé)人
巨杉數(shù)據(jù)庫STP技術(shù)項(xiàng)目的帶隊(duì)負(fù)責(zé)人是CTO王濤、研發(fā)副總裁許建輝、何國明等。
●隸屬機(jī)構(gòu):巨杉數(shù)據(jù)庫
巨杉數(shù)據(jù)庫是一家專注分布式數(shù)據(jù)庫技術(shù)研發(fā),以全球數(shù)據(jù)庫的領(lǐng)導(dǎo)者為愿景,以培育數(shù)據(jù)沃土,提升數(shù)據(jù)價(jià)值為使命的國產(chǎn)自研數(shù)據(jù)庫公司。
巨杉數(shù)據(jù)庫自2011年成立以來,專注數(shù)據(jù)庫技術(shù)研發(fā),堅(jiān)持從零開始打造原生分布式數(shù)據(jù)庫引擎,連續(xù)三年入榜 Gartner報(bào)告,成為當(dāng)前新一代主流數(shù)據(jù)庫體系的燈塔廠商。
SequoiaDB巨杉數(shù)據(jù)庫是一款金融級分布式數(shù)據(jù)庫,目前已在超過100家大型銀行核心生產(chǎn)業(yè)務(wù)規(guī)模應(yīng)用,并廣泛應(yīng)用于證券、保險(xiǎn)、電信、政府、互聯(lián)網(wǎng)、交通等領(lǐng)域,企業(yè)用戶總數(shù)超過1000家,應(yīng)用場景包括分布式在線交易、數(shù)據(jù)中臺、分布式內(nèi)容管理、實(shí)時(shí)數(shù)據(jù)管理等。
巨杉數(shù)據(jù)庫擁有世界頂級的數(shù)據(jù)庫研發(fā)團(tuán)隊(duì),分布在廣州、深圳、北京等地,核心團(tuán)隊(duì)成員主要來自于前IBM DB2北美研發(fā)團(tuán)隊(duì)和華為分布式儲存團(tuán)隊(duì),天生具備企業(yè)級基因,同時(shí)引入包括阿里在內(nèi)的國內(nèi)創(chuàng)新型企業(yè)人才,是業(yè)界最頂尖的企業(yè)級分布式數(shù)據(jù)庫團(tuán)隊(duì)。目前公司總?cè)藬?shù)約為170人。
相關(guān)評價(jià)
●民生銀行
巨杉數(shù)據(jù)庫采用原生分布式架構(gòu),提供完整SQL兼容,完整支持ACID和分布式事務(wù),具備災(zāi)備和多活機(jī)制。這些對于金融聯(lián)機(jī)交易業(yè)務(wù)以及互金核心等是不可或缺的核心能力。
●廣發(fā)銀行
存儲資源池化、數(shù)據(jù)庫實(shí)例化、云化的產(chǎn)品架構(gòu),是微服務(wù)架構(gòu)下,SequoiaDB這樣的新一代數(shù)據(jù)庫重要的技術(shù)特點(diǎn)。
●恒豐銀行
面對海量內(nèi)容數(shù)據(jù),具備多類型數(shù)據(jù)統(tǒng)一管理,存儲彈性擴(kuò)張,高可用和多活的分布式數(shù)據(jù)庫是一種新主流方向。
來源:數(shù)據(jù)猿
刷新相關(guān)文章
我要評論
活動推薦more >
- 2018 上海國際大數(shù)據(jù)產(chǎn)業(yè)高2018-12-03
- 2018上海國際計(jì)算機(jī)網(wǎng)絡(luò)及信2018-12-03
- 中國國際信息通信展覽會將于2018-09-26
- 第五屆FEA消費(fèi)金融國際峰會62018-06-21
- 第五屆FEA消費(fèi)金融國際峰會2018-06-21
- “無界區(qū)塊鏈技術(shù)峰會2018”2018-06-14
不容錯(cuò)過的資訊
-
1五大年度榜單&頒獎+產(chǎn)業(yè)圖譜+行業(yè)報(bào)告
-
2數(shù)博會系列活動“大數(shù)據(jù)產(chǎn)業(yè)生態(tài)建設(shè)與發(fā)
-
3【金猿技術(shù)展】千節(jié)點(diǎn)線性擴(kuò)展——STP序
-
4七麥數(shù)據(jù)發(fā)布2020年度趨勢及最具實(shí)力應(yīng)用
-
5浪潮存儲:業(yè)績數(shù)據(jù)只是一方面,背后的硬
-
6從產(chǎn)業(yè)圖譜看中國2020年數(shù)據(jù)智能行業(yè)的發(fā)
-
72020中國數(shù)據(jù)智能產(chǎn)業(yè)圖譜1.0版發(fā)布丨數(shù)
-
8【金猿案例展】沃爾瑪——基于果蔬商品智
-
9【金猿技術(shù)展】視頻矯正技術(shù)——基于參數(shù)
-
102020 語音識別領(lǐng)域最具商業(yè)合作價(jià)值企業(yè)