2pc

mcxiaoracle發表於2022-06-14

2PC ( Two-Phase Commit縮寫)即兩階段提交協議,是將整個事務流程分為兩個階段,準備階段(Preparephase)、提交階段(commit phase),2是指兩個階段,P是指準備階段,C是指提交階段。
在計算機中部分關聯式資料庫如Oracle、MySQL支援兩階段提交協議


2pc


兩個階段過程:

  1. 準備階段(Prepare phase):事務管理器給每個參與者傳送Prepare訊息,每個資料庫參與者在本地執行事務,並寫本地的Undo/Redo日誌,此時事務沒有提交。 (Undo日誌是記錄修改前的資料,用於資料庫回滾,Redo日誌是記錄修改後的資料,用於提交事務後寫入數 據檔案)
  2. 提交階段(commit phase):如果事務管理器收到了參與者的執行失敗或者超時訊息時,直接給每個參與者傳送回滾(Rollback)訊息;否則,傳送提交(Commit)訊息;參與者根據事務管理器的指令執行提交或者回滾操作,並釋放事務處理過程中使用的鎖資源。注意:必須在最後階段釋放鎖資源。

paxos:

Paxos演算法是Lamport宗師提出的一種基於訊息傳遞的分散式一致性演算法,使其獲得2013年圖靈獎。


BA 是 Basically Available (基本可用)

基本可用是指分散式系統在出現不可預知故障的時候,允許損失部分可用性。

可以理解為在一個平臺中,假設部分出現故障,這個時候系統應該在允許這些故障出現的情況下依舊保持部分功能(應該是核心功能)可以正常使用,另一部分功能出現些許可以允許的問題。


響應時間上的損失:正常情況下的搜尋引擎0.5秒即返回給使用者結果,而基本可用看的搜尋結果可能要1秒,2秒甚至3秒(超過3秒使用者就接受不了了)

功能上的損失:在一個電商網站上,正常情況下,使用者可以順利完成每一筆訂單,但是到了促銷時間,可能為了應對併發,保護購物系統的穩定性,部分使用者會被引導到一個降級頁面


 


S 是Soft state(軟狀態)

軟狀態,允許部分節點的資料存在一定的延時,這個延時不影響可用性。

舉個例子,就是一個叢集中,需要保持所有節點的資料時時刻刻都一致,這是一種強一致性的要求,這個很有可能會造成可用性的問題。

在保證了可用性的的前提下,允許各個節點在資料的一致性操作的時候有一定的延時。


 


軟狀態是相對原子性來說的


原子性(硬狀態) -> 要求多個節點的資料副本都是一致的,這是一種"硬狀態"

軟狀態(弱狀態) -> 允許系統中的資料存在中間狀態,並認為該狀態不影響系統的整體可用性,即允許系統在多個不同節點的資料副本存在資料延遲


E 是Eventually consistent( 最終一致性


cap:

分散式系統(distributed system)正變得越來越重要,大型網站幾乎都是分散式的。

分散式系統的最大難點,就是各個節點的狀態如何保持一致。CAP理論是在設計分散式系統的過程中,處理資料一致性問題時必須考慮的理論。

一、什麼是CAP理論

CAP即:

  • Consistency(一致性)
  • Availability(可用性)
  • Partition tolerance(分割槽容忍性)

這三個性質對應了分散式系統的三個指標:
而CAP理論說的就是:一個分散式系統,不可能同時做到這三點。如下圖:




推薦閱讀:

https://blog.csdn.net/u013288190/article/details/114069433



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2900376/,如需轉載,請註明出處,否則將追究法律責任。