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:

    If, during his daily walk, he met any children flying kites, playing marbles, or whirling peg tops, he would buy the toys from them and exhort them not to gamble or indulge in vain sport.
    —For the State of Rhode Island, U.S. public relief program (1935-1943)

    There is no question but that if Jesus Christ, or a great prophet from another religion, were to come back today, he would find it virtually impossible to convince anyone of his credentials ... despite the fact that the vast evangelical machine on American television is predicated on His imminent return among us sinners.
    Peter Ustinov (b. 1921)

    Saints are simply men & women who have fulfilled their natural obligation which is to approach God.
    Evelyn Waugh (1903–1966)