1. 程式人生 > >使用phxpaxos開發過程中遇到的坑

使用phxpaxos開發過程中遇到的坑

例如 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開發過程中遇到的坑