0
什麼時候可能2階段提交塊,以便它不再進步?什麼時候可能2階段提交沒有進展?
假設協調員和4位參與者在這裏。
假設參與者P2在發送「投票 - 提交」消息後立即崩潰(即協調員成功接收到該消息)並且沒有進一步失敗,則協調器等待來自P2的「確認」,並繼續發送「全局提交「後超時。協調員被阻止;其他參與者不被阻止。
有沒有其他的情況?
什麼時候可能2階段提交塊,以便它不再進步?什麼時候可能2階段提交沒有進展?
假設協調員和4位參與者在這裏。
假設參與者P2在發送「投票 - 提交」消息後立即崩潰(即協調員成功接收到該消息)並且沒有進一步失敗,則協調器等待來自P2的「確認」,並繼續發送「全局提交「後超時。協調員被阻止;其他參與者不被阻止。
有沒有其他的情況?
如果任何消息被延遲或丟失,或任何參與者隨時崩潰(停止響應),則2階段落實不起作用。
2PC可以有幾種不同的方式失敗。這裏有一些我發現使用Molly。
vote-commit
消息之後崩潰,但是在發送global-commit
/global-abort
之前。這意味着所有投票提交的客戶都等待協調員的迴應。global-commit
消息,導致這些消息的收件人被阻止,從而等待他們可能永遠不會收到的消息。