高清偷窥校园女浴室洗澡_old性欧美videos_我不卡影院秋霞理论片_将军不要啊h

GBase新聞

專注于數據庫軟件產品和服務,致力于成為用戶最信賴的數據庫產品供應商

揭秘GBase 8c分布式事務處理核心技術之2PC協議

發布時間:2022-04-25

GBase 8c通過2PC協議,提供分布式系統強一致事務的能力,滿足金融行業的嚴苛要求,同時,對于追求性能的新興業務,也支持可選的最終一致性事務的能力。

分布式事務原子性和兩階段提交協議

為了保證分布式事務的原子性,防止出現部分參與者提交、部分參與者回滾的“中間態”事務,GBase 8c采用2PC協議實現跨節點分布式事務。

所謂2PC( Two-Phase Commit)即兩階段提交協議,顧名思義,就是將事務的提交過程分成了兩個階段來進行處理,包括準備階段P(Prepare phase)、提交階段C(Commit phase)。在分布式事務中,有兩個執行主體,分別是“協調器”和“參與者”,其中“協調器”接受應用的請求,“參與者”執行“協調器”下發的指令,完成數據的持久化操作。在2PC協議中,協調器和參與者相互配合,共同實現事務的ACID特性。

1.png

一、準備階段(prepare phase),在這個階段,協調器給所有參與者發送Prepare消息,通知每個參與者將提交操作所需要使用到的信息和資源全部寫入磁盤,完成持久化,此時事務沒有提交。

二、提交階段(commit phase),協調器通知參與者,執行提交或回滾操作。如果協調理器在準備階段收到了參與者的執行失敗或者超時消息,直接給每個參與者發送回滾(Rollback)消息;否則,發送提交(Commit)消息。參與者根據協調器的指令執行提交或者回滾操作,并釋放事務處理過程中持有的鎖資源。

一旦準備階段執行成功,那么事務提交需要的所有信息都已完成持久化落盤,即使后續提交階段某個參與者發生錯誤,該參與者可以從持久化的信息中嘗試再次提交,直至提交成功。最終該分布式事務在所有參與者上的狀態一定是相同的:要么所有參與者都提交,要么所有參與者都回滾。因此,對應用來說,該事務的狀態變化是原子的。

2PC事務狀態保持

傳統2PC事務在全局提交階段可能出現失敗,例如協調器宕機,這會造成集群內各節點的提交狀態不一致,破壞事務的原子性,且2PC事務持續占有已申請的鎖,可能造成其它事務因無法獲取鎖而不能繼續執行,嚴重時可能導致整個集群卡住,因此,需要檢查這類事務的存在,并盡快推進2PC的完成(提交或回滾)。

針對上述問題,GBase 8c優化了2PC的執行流程,設計了2PC事務狀態保持功能,確保集群能夠持續提供服務。

2.png

如圖中所示,當協調器宕機之后,系統會立即檢測到該問題,并自動選出一個健康的協調器,由后者接管故障協調器上所有未完成的2PC事務。

新的協調器會收集所有未完成的2PC事務,檢查各個2PC事務所處階段,并決定每個2PC事務應當提交或者回滾,然后發送相應指令到各個參與者,完成全部2PC流程,確保系統不被阻塞。

小結

綜上所述,GBase 8c通過兩階段提交來實現分布式事務,確保所有跨節點事務的原子性、一致性、隔離性和持久性。兩階段提交可以保證分布式事務要么全部提交成功,要么全部提交失敗,不會產生事務在部分節點提交成功,部分節點提交失敗的情況。

對于提交成功的分布式事務,GBase 8c確保從任意節點訪問都可以獲得同樣的結果,實現分布式事務的強一致性。

關于 GBase 8c

GBase 8c 是一款多模多態的分布式數據庫,支持行存、列存、內存等多種存儲模式和單機、主備式、分布式等多種部署形態,能靈活應對OLTP、OLAP以及極致性能場景。GBase 8c 具備高性能、高可用、彈性伸縮、高安全性等特性,可以部署在物理機、虛擬機、容器、私有云和公有云,為關鍵行業核心系統、互聯網業務系統和政企業務系統提供安全、穩定、可靠的數據存儲和管理服務。同時,GBase 8c產品支持同城雙活、兩地三中心等容災方案,全局無單點,具備高達99.999%的高可用能力;其憑借全局鎖管理、事務狀態保持等重要特性,保證在系統出現異常的情況下,具備自愈的能力;GBase 8c彈性伸縮的能力,可以靈活應對極端場景下的性能需求;其灰度發布的特性,給應用頻繁上下線提供了保障。