2019-02-05 12:15:57 |
John A Meinel |
description |
Currently the raft lease engine ignores requests to Refresh the state. However, we know that the FSM can be locally out of sync with the master. We could change Store.Refresh() to be a wait-until-next-appendEntries call, so that we know that any recent changes on primayr have been acknowledged.
It isn't a pure sync, but it does handle the case that 1-of-3 replicas is slightly behind, and gets a request that it thinks it can handle, but gets denied by the primary. |
Currently the raft lease engine ignores requests to Refresh the state. However, we know that the FSM can be locally out of sync with the master. We could change Store.Refresh() to be a wait-until-next-appendEntries call, so that we know that any recent changes on primayr have been acknowledged.
It isn't a pure sync, but it does handle the case that 1-of-3 replicas is slightly behind, and gets a request that it thinks it can handle, but gets denied by the primary.
The code was already written such that it would reread from Mongo when it saw the chance for stale information, we're just using the same synchronization points when we think we see stale information from the FSM as well. |
|