Transactional Fault Tolerance via Execution Context Copying
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing fault-tolerant systems in client-server systems require complex mechanisms such as logging and replay of events or lockstep execution, which are cumbersome, especially in multi-processor systems, and lack efficient solutions for deterministic replay of instructions on secondary servers.
Innovation Solution
A method where output data generated by a primary server during an epoch is buffered and a copy of the execution context is established on a secondary server, allowing for atomic checkpointing without the need for logging and replay, enabling seamless failover without altering client-server protocols or requiring specific hardware support.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If logging and replay of events is used for fault tolerance, then reliability is improved, but device complexity and difficulty of detecting and measuring increase
Solution Approach 1:
The patent creates a copy of the execution context (including register state, program counter, and stack) on the secondary server at checkpoint boundaries. This copying approach enables fault tolerance by allowing the secondary server to resume from the copied state without requiring complex logging and replay mechanisms, thus reducing system complexity while maintaining reliability
Solution Approach 2:
The system performs preliminary actions by establishing checkpoints at defined boundaries where the execution context is copied to the secondary server. This preliminary copying of state information eliminates the need for continuous logging and complex replay operations during failover, simplifying the overall system architecture while ensuring reliable recovery
2Reliability
If lockstep execution is used for fault tolerance, then reliability is improved, but device complexity and ease of operation worsen
Solution Approach 1:
Instead of requiring lockstep execution where both servers must execute instructions simultaneously and in sync, the patent copies the complete execution context at checkpoints. This allows the primary and secondary servers to execute independently without coordinated lockstep operation, significantly improving ease of operation while maintaining fault tolerance capability
Solution Approach 2:
The execution timeline is segmented into epochs delimited by checkpoints. Within each epoch, servers can execute independently. The segmentation allows each server to operate autonomously while maintaining synchronization points through checkpoint copying, eliminating the need for complex lockstep coordination and improving operational simplicity
3Reliability
If deterministic replay of instructions is required on secondary server, then reliability is improved, but measurement precision and difficulty of detecting and measuring increase
Solution Approach 1:
The patent copies the complete execution context including register state, program counter, and stack to the secondary server at checkpoints. This approach eliminates the need for deterministic replay of individual instructions, as the entire state is copied and can be resumed directly. This significantly reduces the difficulty of detecting and measuring replay behavior while maintaining reliability
Solution Approach 2:
The patent extracts the essential state information (execution context) at checkpoints and stores it on the secondary server. By taking out only the necessary state data rather than requiring complete deterministic replay of all instructions, the system achieves reliability while simplifying measurement and detection of the replay process
Data Source
AI summary
Method and apparatus for transactional fault tolerance in a client-server system is described. In one example, output data generated by execution of a service on a primary server during a current epoch between a first checkpoint and a second checkpoint is buffered. A copy of an execution context of the primary server is established on a secondary server in response to the second checkpoint. The output data as buffered is released from the primary server in response to establishment of the copy of the execution context on the secondary server.


