Open topic with navigation
NuoAdmin uses the Raft consensus algorithm to replicate state among admin processes. A particular admin process is elected as leader by consensus and becomes responsible for replicating all state changes, in order, to all followers in the form of Raft commands. A command is committed once it has been replicated to a majority of admin processes. When a process finds out that a Raft command has been committed, it applies the state change to its local state.
Most of the state exposed by the admin layer via REST APIs is state that is replicated using Raft. Because a state change must be replicated to a majority before it can be applied, as described above, it is possible for the actual state of the system to diverge from what is reported by the admin layer for some time. For example, if there are two admin processes, and the two admin processes servers become unable to communicate with each other, any state change occurring during this time (such as a database process dying) will not be reported by the admin processes servers until communication between them is restored.