1.3.2 Eventual Consistency

MySQL Cluster Manager guarantees eventual consistency among agents, meaning that:

  • Any message communicated among agents is either delivered or not delivered to ALL agents (instead of delivered to some and missed by others).

  • Order of delivery for any sequence of messages is always identical for all agents (that is, messages cannot get out of order for some agents).

Beyond that, there is no guarantee for message synchronization: a message is not guaranteed to be received and executed within a specific window of time for all agents. The result is that any agent may lag behind in processing messages for any reasons such as network traffic, machine loading, or thread scheduling. Situations like the following might then occur: while Agent C is lagging behind Agent A and B, the two agents have completed some cluster reconfiguration that does not involve any local actions for Agent C; a client connected to Agent A or B might have received a success message for the reconfiguration, while a client querying Agent C is told that the reconfiguration is still in process, since the completion message has not yet reached Agent C.

Such temporary inconsistency among the agents should not be a concern. While an agent might be lagging behind, the guaranteed eventual consistency means that, unless prevented by a network error or some other issues, any lagging agent will eventually catch up with the other agents, and all agents will eventually get a consistent view of the site.