State Machine Replication - The State Machine Approach

The State Machine Approach

The preceding intuitive discussion implies a simple technique for implementing a fault-tolerant service in terms of a State Machine:

  1. Place copies of the State Machine on multiple, independent servers.
  2. Receive client requests, interpreted as Inputs to the State Machine.
  3. Choose an ordering for the Inputs.
  4. Execute Inputs in the chosen order on each server.
  5. Respond to clients with the Output from the State Machine.
  6. Monitor replicas for differences in State or Output.

The remainder of this article develops the details of this technique.

  • Step 1 and 2 are outside the scope of this article.
  • Step 3 is the critical operation, see Ordering Inputs.
  • Step 4 is covered by the State Machine Definition.
  • Step 5, see Ordering Outputs.
  • Step 6, see Auditing and Failure Detection.

The appendix contains discussion on typical extensions used in real-world systems such as Logging, Checkpoints, Reconfiguration, and State Transfer.

Read more about this topic:  State Machine Replication

Famous quotes containing the words state, machine and/or approach:

    ... the separation of church and state means separation—absolute and eternal—or it means nothing.
    Agnes E. Meyer (1887–1970)

    I find it hard to believe that the machine would go into the creative artist’s hand even were that magic hand in true place. It has been too far exploited by industrialism and science at expense to art and true religion.
    Frank Lloyd Wright (1869–1959)

    The modern world needs people with a complex identity who are intellectually autonomous and prepared to cope with uncertainty; who are able to tolerate ambiguity and not be driven by fear into a rigid, single-solution approach to problems, who are rational, foresightful and who look for facts; who can draw inferences and can control their behavior in the light of foreseen consequences, who are altruistic and enjoy doing for others, and who understand social forces and trends.
    Robert Havighurst (20th century)