Distributed Two-Tier State Machine for Fault-Tolerant Data Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing fault-tolerant distributed data store systems face challenges in maintaining consistency and efficiency due to limitations in synchronization protocols such as two-phase commit, three-phase commit, and state machine approaches, which are not resilient to all failure configurations and do not fully utilize modern multi-core architectures.
Innovation Solution
The implementation of a fault-tolerant distributed two-tier state machine using the Executive Paxos protocol, where one device acts as a leader to execute functions and broadcast commands, ensuring that commands are executed in logical precedence order and stored in stable storage, allowing for concurrent execution and fault tolerance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional synchronization protocols (two-phase commit, three-phase commit) are used to maintain consistency among replicas, then data consistency is improved, but system blocking and failure resilience deteriorate
Solution Approach 1:
The system segments the synchronization protocol into distinct phases: preparation phase (where leaders prepare commands), execution phase (where commands are executed), and recovery phase (where failures are handled). This segmentation allows non-blocking operation by separating consistency maintenance from transaction execution, enabling parallel processing of transactions while maintaining replica consistency through the prepared commands.
Solution Approach 2:
The protocol dynamically adapts to failure configurations through the recovery phase mechanism. When failures are detected, the system dynamically transitions to recovery mode, electing new leaders and re-executing commands. This dynamic response enables the system to maintain data consistency without blocking productive operations, as the recovery process handles failures asynchronously rather than synchronously.
2Reliability
If conventional synchronization protocols are used to maintain consistency among replicas, then data consistency is improved, but resilience to failure configurations deteriorates
Solution Approach 1:
The preparation phase performs preliminary actions by having leaders prepare commands before execution. This preliminary preparation ensures that commands are validated and ready in advance, so when failures occur during execution, the system can recover more effectively because the command structure is already established. The preliminary action of command preparation enables better failure resilience without compromising data consistency.
Solution Approach 2:
The protocol implements feedback mechanisms through the recovery phase, where the system continuously monitors replica states and failure conditions. When failures are detected, the feedback loop triggers recovery procedures including leader election and command re-execution. This feedback-driven approach enables the system to adapt to various failure configurations while maintaining data consistency, improving both resilience and adaptability.
3Reliability
If state machine approach is used for distributed computing, then fault tolerance is improved, but utilization of multi-core architectures deteriorates
Solution Approach 1:
The system segments the state machine execution into independent preparation and execution phases that can run concurrently on different processors. Leaders prepare commands in parallel while followers execute them independently, enabling multi-core utilization. This segmentation maintains fault tolerance by ensuring all replicas follow the same prepared commands while allowing parallel processing that utilizes multiple CPU cores.
Solution Approach 2:
The protocol adds a temporal dimension to state machine execution by separating preparation and execution phases. Instead of executing state machine transitions sequentially as in traditional approaches, the system prepares commands in one temporal phase and executes them in another, allowing concurrent operations across multiple cores. This dimensional separation maintains fault tolerance while enabling parallel processing.
4Reliability
If all commands are broadcast to all devices to ensure consistency, then data consistency is improved, but network bandwidth consumption increases
Solution Approach 1:
The system applies local quality by having followers execute commands locally without requiring broadcast to all devices. Each follower receives and executes commands independently based on the preparation phase results. This local execution approach maintains data consistency among replicas while significantly reducing network bandwidth consumption compared to broadcasting all commands to all devices.
Solution Approach 2:
The protocol extracts the essential consistency requirement from the broadcasting mechanism. Instead of broadcasting all commands to ensure consistency, the system extracts the key information (prepared commands) and distributes only what is necessary. Followers execute these extracted commands locally, maintaining consistency without the network overhead of full broadcasts to all devices.
Data Source
AI summary
A fault-tolerant data processing computer system and method for implementing a distributed two-tier state machine aimed for distributed (replicated) data stores, in which consistency is maintained despite the failure of any number of replicas and communication paths. In the distributed two-tier state machine, one process (device) in a network of processes (devices) is chosen as the leader, and that leader is responsible for executing functions that return state machine commands, and for broadcasting the commands to the other processes. The processes execute the commands in the logical precedence order that corresponds to the order of function executions that return these commands. The system and method ensures that each of the processes issues exactly the same sequence of commands for execution, such that each command in the sequence, except the first one, has a precedent command on which the command logically depends.


