2PC protocal

在分散式的環境裡 如果要確保 Atomic Transaction 完整執行
則我們可以使用 2PC 協議來確保這樣的事情發生

一個 Atomic Transaction 可能分成很多個 sub-transactions
我們利用交易的發起者
把各自的 sub-transaction 託付給相對應的機器去執行

接著發起者 會開始傳送訊息 問每一台機器 (受託者) : 你們能否接下責任
對於每壹台機器 IF yes : 回答 ok IF no : 回答 I can’t
( 所有的訊息 都會儲存在 local端 以 log的方式存檔 才以訊息的方式發送出去 )

之後發起者 衡量所有機器的意見
IF 全都 ok : 傳送 託付成功 給所有機器
IF 不全 ok : 傳送 別做啦 (因為有人不能做啦) 給所有機器

目標 :
不管在哪個時間點 有哪台機器壞掉
我們可以利用儲存在機器裡的 log 檔 修復整個動作
以確保 Atomic Transaction “完整執行” 或是 “不要執行”

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s