Open kong123456 opened 3 years ago
看phxkv的Get逻辑实现,直接从 master 的 db 里读取数据,请问如何保证 master 的数据是最新的?
如果master发生切换,新 master 是一个数据比较落后的机器,这台机器不一定有最新的数据。 选举过程没有考虑各机器的数据新旧情况,采用basic paxos 实现选主,选举后也没马上同步最新数据才开始服务的逻辑。 请问这里是怎么保证新 master 的数据是最新的?谢谢
比如初始状态: A, B, C 三台机器,A 是 master,都有数据 val = null
实际上 val 应该读到是 123,这种情况下会得到 val = null,一个比较旧的值?
选主也是一个 basic paxos 的过程,当一台机能完成一次 basic paxos,那说明这台机的数据已经是最新的了。
看phxkv的Get逻辑实现,直接从 master 的 db 里读取数据,请问如何保证 master 的数据是最新的?
如果master发生切换,新 master 是一个数据比较落后的机器,这台机器不一定有最新的数据。 选举过程没有考虑各机器的数据新旧情况,采用basic paxos 实现选主,选举后也没马上同步最新数据才开始服务的逻辑。 请问这里是怎么保证新 master 的数据是最新的?谢谢