Coarse-Grain Lock-Stepping for Container Fault Tolerance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing fault tolerance solutions for container-based systems, such as lock-stepping and checkpointing, face performance issues in multiprocessor environments due to high overhead and network latency, particularly when dealing with non-deterministic memory access and frequent checkpoint actions.
Innovation Solution
The implementation of a Coarse-Grain Lock-Stepping (COLO) procedure that uses per-session connection outputted response packet comparison to determine if the operational state of a secondary container is a valid replica of a primary container, allowing for synchronized operational states without the need for TCP/IP protocol-based comparisons, thereby reducing overhead and latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If lock-stepping is used to replicate operational states per instruction, then fault tolerance reliability is improved, but device complexity and overhead increase significantly in multiprocessor environments
Solution Approach 1:
The patent segments the fault tolerance approach by dividing instructions into deterministic and non-deterministic categories. Lock-stepping is applied only to deterministic instructions, while non-deterministic instructions allow the secondary container to execute independently. This segmentation reduces the overhead associated with full lock-stepping while maintaining fault tolerance for the deterministic portion.
Solution Approach 2:
Instead of applying lock-stepping to all instructions (excessive action), the patent applies it only partially to deterministic instructions. This partial application reduces the complexity and overhead burden while still providing adequate fault tolerance coverage for the critical deterministic instruction set.
2Reliability
If checkpointing is used to replicate operational states at periodic epochs, then fault tolerance reliability is improved, but network latency and overhead increase due to output packet buffering
Solution Approach 1:
The patent performs preliminary synchronization by executing deterministic instructions in lock-step before the secondary container handles non-deterministic instructions. This preliminary action ensures that the containers are synchronized at known checkpoints without requiring continuous buffering of output packets, thereby reducing network latency.
Solution Approach 2:
The patent implements periodic synchronization through lock-stepping on deterministic instructions, which naturally create synchronization points. This periodic action allows the system to maintain fault tolerance without requiring continuous packet buffering, as the deterministic execution paths provide natural checkpoints.
3Reliability
If COLO procedure compares TCP/IP protocol-based packets, then operational state validation is achieved, but network overhead and processing time increase
Solution Approach 1:
The patent extracts the comparison operation from the TCP/IP protocol layer and moves it to the application layer or socket library level. By comparing outputted response packets at a higher level rather than deep within the TCP/IP stack, the system achieves operational state validation with reduced processing overhead and faster comparison times.
Solution Approach 2:
The patent introduces COLO agencies as intermediary components that manage the comparison of outputted response packets. These agencies act as mediators between the primary and secondary containers, handling the validation logic and reducing the burden on the core network stack, thereby improving processing efficiency.
Data Source
AI summary
It includes techniques to provide for reliable primary and secondary containers arranged to separately execute an application that receives request packets for processing by the application. The request packets may be received from a client coupled with a server arranged to host the primary container or the secondary container. The client coupled with the server through a network. Coarse-grained lock-stepping (COLO) methods may be utilized to facilitate in providing the reliable primary and secondary containers.


