使用phxpaxos開發過程中遇到的坑
阿新 • • 發佈:2017-05-19
例如 exec 永遠 傳輸 snap 如果 poi 沒有 github
1. 開啟BatchPropose後,狀態機使用ExecuteForCheckpoint生成快照要註意:
ExecuteForCheckpoint中的InstanceID不能立即持久化。
例如:
當instance id = 3中包含多個值的時候,如果執行第一個值就更新的checkpoint version(GetCheckpointInstanceID的返回值),那麽當進程重啟之後(例如進程掛了),後面幾個值就永遠沒有機會調用ExecuteForCheckpoint應用到checkpoint了
建議的做法:
當發現InstanceID變化時,將上次的InstanceID持久化。
可能的問題:
BatchPropose中的多個值可能即使已經return true了,還是會被再次ExecuteForCheckpoint
解決的問題:
BatchPropose中的多個值被丟失的情況
https://github.com/tencent-wechat/phxpaxos/issues/56
2. 開啟IsUseMaster之後,非master依然可以Propose成功。調用者要自己想辦法保護。暫時沒想到不改源代碼的解決方式。
3. LogStorage的路徑使用相對路徑時,傳輸snapshot會出錯
https://github.com/tencent-wechat/phxpaxos/issues/49
使用phxpaxos開發過程中遇到的坑