使用phxpaxos开发过程中遇到的坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用phxpaxos开发过程中遇到的坑相关的知识,希望对你有一定的参考价值。

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开发过程中遇到的坑的主要内容,如果未能解决你的问题,请参考以下文章

Vue项目开发过程中遇到的坑

开发过程遇到的坑汇总

汇总开发过程中遇到的坑

RxJava使用过程中遇到线程相关的坑

RxJava使用过程中遇到线程相关的坑

RxJava使用过程中遇到线程相关的坑