Active Copy-Cat Backup for Fault-Tolerant Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current fault-tolerant systems in mission-critical environments, such as financial exchanges, face complexity in ensuring redundant components are synchronized with primary components, leading to performance penalties and potential service interruptions during failover.
Innovation Solution
A fault-tolerant system is implemented with a primary instance and a backup instance that mirrors operations only after successful completion, using fault-tolerant logic to monitor inputs and outputs, gate inputs to the backup, and compare outputs to ensure correctness, allowing seamless failover without requiring the backup to be aware of the fault-tolerant mechanisms or the primary's internal state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If redundant components are added to provide fault tolerance, then system reliability is improved, but device complexity increases
Solution Approach 1:
The patent creates a backup instance that is a complete copy of the primary instance, including all code and data. This copy approach simplifies fault tolerance by eliminating the need for complex synchronization mechanisms - the backup is simply replicated and can take over immediately upon failure detection, resolving the contradiction between reliability and complexity.
Solution Approach 2:
The system is divided into distinct primary and backup instances that operate independently. The backup instance runs in parallel but remains dormant until needed, allowing the system to maintain simplicity while providing fault tolerance through clear separation of functional roles.
2Reliability
If synchronization mechanisms are implemented between primary and backup instances, then fault tolerance is improved, but performance deteriorates due to synchronization overhead
Solution Approach 1:
The backup instance is prepared in advance by copying all necessary code and data, but remains dormant during normal operation. This preliminary preparation eliminates the need for continuous synchronization during operation, thus maintaining high performance while ensuring fault tolerance is ready when needed.
Solution Approach 2:
Instead of synchronizing state changes in real-time, the system creates a complete static copy of the primary instance. This copying approach eliminates synchronization overhead during operation while still providing the ability to take over immediately upon failure.
3Reliability
If the backup instance continuously mirrors operations, then fault tolerance is improved, but loss of time occurs during failover transitions
Solution Approach 1:
The backup instance performs preliminary preparation by copying all code and data in advance, but remains dormant during normal operation. When failover is needed, the pre-prepared backup can take over immediately without requiring time-consuming synchronization or state transfer, thus minimizing failover time while maintaining fault tolerance.
4Difficulty of detecting and measuring
If complex interaction mechanisms are implemented between primary and backup instances, then fault detection is improved, but device complexity increases
Solution Approach 1:
The system introduces a fault-tolerant logic intermediary that manages the interaction between primary and backup instances. This mediator handles failure detection and failover coordination, simplifying the overall system architecture by centralizing complex interaction logic in a dedicated component rather than requiring complex point-to-point interactions.
Solution Approach 2:
The backup instance is created as a complete copy of the primary, including all failure detection capabilities. This copying approach enables the backup to independently detect failures without requiring complex communication protocols, thus improving failure detection while maintaining simplicity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Fault tolerant operation is disclosed for a primary instance, such as a process, thread, application, processor, etc., using an active copy-cat instance, a.k,a. backup instance, that mirrors operations in the primary instance, but only after those operations have successfully completed in the primary instance. Fault tolerant logic monitors inputs and outputs of the primary instance and gates those inputs to the backup instance once a given input has been processed. The outputs of the backup instance are then compared with the outputs of the primary instance to ensure correct operation. The disclosed embodiments further relate to fault tolerant failover mechanism allowing the backup instance to take over for the primary instance in a fault situation wherein the primary and backup instances are loosely coupled, i.e. they need not be aware that they are operating in a fault tolerant environment. As such, the primary instance need not be specifically designed or programmed to interact with the fault tolerant mechanisms. Instead, the primary instance need only be designed to adhere to specific basic operating guidelines and shut itself down when it cannot do so. By externally controlling the ability of the primary instance to successfully adhere to its operating guidelines, the fault tolerant mechanisms of the disclosed embodiments can recognize error conditions and easily failover from the primary instance to the backup instance.