Early Conflict Checking in Two Phase Commit Protocol for Replicated State Machines
Representing an algorithmic workflow as a state machine is a frequently used technique in distributed systems. Replicating a state machine in a fault tolerant way is one of the main application areas under this context. When implementing a replicated state machine, a crucial problem is to maintain consistency among replicas that might handle various different requests arriving at each different replica. This problem requires maintaining a single consistent ordering of the distributed requests handled separately by replicas. Basic consensus protocols such as two phase commit (2PC), can be used to maintain consistency between replicas whenever a request is to be processed. In this study we modify 2PC protocol to take advantage of basic properties of a state machine and detect possible write conflicts earlier. Our experiments on distributed cloud environments show that our modified 2PC protocol increases the throughput and decrease wasted write operations by a significant amount.