**:**xubindehao部落格)
在分布式資料庫環境中,乙個資料庫事務可以更新多個場地上的資料,這種資料庫事務稱為分布式事務。
分布式事務必須滿足傳統事務的特性,即原子性,一致性,分離性和永續性。但是分布式事務處理過程中,某些場地(server)可能發生故障,或者由於網路發生故障而無法訪問到某些場地。為了防止分布式系統部分失敗時產生資料的不一致性。在分布式事務的控制中採用了兩階段提交協議(two-phase commit protocol)。即事務的提交分為兩個階段:
預提交階段(pre-commit phase)
決策後階段(post-decision phase)
兩階段提交用來協調參與乙個更新中的多個伺服器的活動,以防止分布式系統部分失敗時產生資料的不一致性。例如,如果乙個更新操作要求位於三個不同結點上的記錄被改變,且其中只要有乙個結點失敗,另外兩個結點必須檢測到這個失敗並取消它們所做的改變。
為了支援兩階段提交,乙個分布式更新事務中涉及到的伺服器必須能夠相互通訊。一般來說乙個伺服器會被指定為"控制"或"提交"伺服器並監控來自其它伺服器的資訊。
在分布式更新期間,各伺服器首先標誌它們已經完成(但未提交)指定給它們的分布式事務的那一部分,並準備提交(以使它們的更新部分成為永久性的)。這是兩階段提交的第一階段。如果有一結點不能響應,那麼控**務器要指示其它結點撤消分布式事務的各個部分的影響。如果所有結點都回答準備好提交,控**務器則指示它們提交並等待它們的響應。等待確認資訊階段是第二階段。在接收到可以提交指示後,每個伺服器提交分布式事務中屬於自己的那一部分,並給控**務器發回提交完成資訊。
在乙個分布式事務中,必須有乙個場地的server作為協調者(coordinator),它能向其它場地的server發出請求,並對它們的回答作出響應,由它來控制乙個分布式事務的提交或撤消。該分布式事務中涉及到的其它場地的server稱為參與者(participant)。
事務兩階段提交的過程如下:
● 兩階段提交在應用程式向協調者發出乙個提交命令時被啟動。這時提交進入第一階段,即預提交階段。在這一階段中:
(1) 協調者準備區域性(即在本地)提交並在日誌中寫入"預提交"日誌項,幷包含有該事務的所有參與者的名字。
(2) 協調者詢問參與者能否提交該事務。乙個參與者可能由於多種原因不能提交。例如,該server提供的約束條件(constraints)的延遲檢查不符合限制條件時,不能提交;參與者本身的server程序或硬體發生故障,不能提交;或者協調者訪問不到某參與者(網路故障),這時協調者都認為是收到了乙個否定的回答。
(3) 如果參與者能夠提交,則在其本身的日誌中寫入"準備提交"日誌項,該日誌項立即寫入硬碟,然後給協調者發回一?quot;已準備好提交"的回答。
(4) 協調者等待所有參與者的回答,如果有參與者發回否定的回答,則協調者撤消該事務並給所有參與者發出乙個"撤消該事務"的訊息,結束該分布式事務,撤消該事務的所有影響。
● 如果所有的參與者都送回"已準備好提交"的訊息,則該事務的提交進入第二階段,即決策後提交階段。在這一階段中:
(1) 協調者在日誌中寫入"提交"日誌項,並立即寫入硬碟。
(2) 協調者向參與者發出"提交該事務"的命令。各參與者接到該命令後,在各自的日誌中寫入"提交"日誌項,並立即寫入硬碟。然後送回"已提交"的訊息,釋放該事務占用的資源。
(3) 當所有的參與者都送回"已提交"的訊息後,協調者在日誌中寫入"事務提交完成"日誌項,釋放協調者占用的資源 。這樣,完成了該分布式事務的提交。
分布式資料庫
網路選課系統中分布式資料庫設計 何翠雙王巧雲張麗麗 摘要 關鍵字 選課 分布式 資料庫 distributed system of on line course choosing abstract key words course choosing distributed database 隨著學校...
分布式資料庫
1 背景 我們知道資料是乙個公司的命脈,隨著業務越做越大,資料量也會越來越大,計算也會越來越複雜,效能,可靠性,可擴充套件性的需求就會越來越強烈,這個時候乙個集中式的資料庫顯然已經滿足不了需求了。對於技術決策者來說有兩條路可以走,第一 按照現有的大型資料庫的解決方案,比如sql server clu...
分布式資料庫
一 分布式資料庫的出現的場景 網際網路 軟體國產化 o2o 五新 新零售 新製造,新金融 新資源 新技術 等主題接連提出來,並且在各個行業落地,給資料庫帶來了巨大機會,具體包含3個方向 1.遠超單機資料庫容量的資料儲存和訪問峰值 2.實時資料分析檢索 oltp兼顧olap 3.更高階別的容災需求。這...