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:

    “Called on one occasion to a homestead cabin whose occupant had been found frozen to death, Coroner Harvey opened the door, glanced in, and instantly pronounced his verdict, “Deader ‘n hell!””
    —For the State of Nebraska, U.S. public relief program (1935-1943)

    “What is man, when you come to think upon him, but a minutely set, ingenious machine for turning, with infinite artfulness, the red wine of Shiraz into urine?”
    —Isak Dinesen [Karen Blixen] (1885–1962)

    “... the ordinary is simply the universal observed from the surface, that the direct approach to reality is not without, but within. Touch life anywhere ... and you will touch universality wherever you touch the earth.”
    —Ellen Glasgow (1873–1945)