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:

    Chippenhook was the home of Judge Theophilus Harrington, known for his trenchant reply to an irate slave-owner in a runaway slave case. Judge Harrington declared that the owner’s claim to the slave was defective. The owner indignantly demanded to know what was lacking in his legally sound claim. The Judge exploded, ‘A bill of sale, sir, from God Almighty!’
    —For the State of Vermont, U.S. public relief program (1935-1943)

    But it is found that the machine unmans the user. What he gains in making cloth, he loses in general power. There should be a temperance in making cloth, as well as in eating.
    Ralph Waldo Emerson (1803–1882)

    Do not approach with anything even resembling assurance a restaurant that moves.
    Fran Lebowitz (b. 1950)