weblab-tw / ddia-study-group

Designing Data-Intensive Applications Study Group
36 stars 5 forks source link

第九章:啟發式決策(heuristic decisions) - Parker #101

Open Parkerhiphop opened 2 years ago

Parkerhiphop commented 2 years ago

文中提到,協調者失效時,可能會使參與者進入存疑狀態,更糟的是若事務日誌已經由於軟體錯誤丟失或損壞等情況,讓協調者就算重啟也無法讓確定那些 Transaction 的結果,進而讓他們所持有的鎖無法釋出而卡住系統。 為了解決這種情況,原本的作法就只能人工去 Debug 來釋出這些 Transaction,但在 XA 的實現中,也有啟發式決策這個最終殺手鐧來允許參與者自行決定 Transaction 的結果。

但關於決策具體是怎麼進行書裡只有帶過而已,這邊想問的是 「參與者會怎麼去決定 Transaction 結果?」 以及 「既然只能在災難時使用,那啟發式決策的觸發條件是怎麼設計的?(至少需要避免在日常使用中被觸發?)」

(有查到的資料會再補充)

Parkerhiphop commented 2 years ago

會出現上述的問題,其實很大可能會是 microservice 沒切好。 解法:盡量切好一點 XD