Data Synchronization Failover Management for Software Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing techniques for enhancing the reliability and performance of software applications through redundancy, such as running multiple instances, are costly and not scalable, as they require significant resources and can lead to increased failure risks due to environmental factors, and performance improvements like JIT compilation come with initial slowdowns during profiling.
Innovation Solution
Implementing Data Synchronization and Failover Management (DSFM) systems that optimize multiple non-identical instances of a software application to run simultaneously, each compiled with different compiler options to maximize resource utilization and performance, allowing for efficient failover without substantial delays or errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple instances of the software application are executed simultaneously to improve reliability, then reliability is improved, but resource consumption and cost increase
Solution Approach 1:
The patent creates a backup instance (copy) of the software application that mirrors the primary instance's execution. This copy is maintained through synchronization mechanisms that replicate state and data without requiring full independent execution, reducing resource overhead while ensuring reliability through failover capability
Solution Approach 2:
The patent merges the execution paths of primary and backup instances by synchronizing their state through shared data structures and coordinated execution flows. This allows the system to maintain reliability through redundancy while reducing overall resource consumption by having instances work in coordination rather than complete independence
2Reliability
If multiple backup instances are executed to increase redundancy and reliability further, then reliability is improved, but cost of execution increases even further
Solution Approach 1:
The patent applies different compilation optimizations to different parts of the application execution. The hot path (frequently executed code) receives aggressive JIT compilation optimizations, while cold paths use lighter compilation strategies. This local differentiation allows the system to maintain multiple instances with reduced resource overhead while preserving reliability
3Speed
If JIT compilation is used to improve performance, then execution speed is improved, but initial profiling phase causes slowdown
Solution Approach 1:
The patent performs preliminary profiling and compilation of the hot path during the initial execution phase. By identifying and pre-compiling the most frequently executed code paths before they are needed at full speed, the system minimizes the performance impact of profiling while maximizing JIT compilation benefits for critical paths
Solution Approach 2:
The patent implements dynamic compilation strategies where the JIT compiler continuously adapts compilation decisions based on runtime profiling data. Code paths that become hot during execution are dynamically identified and compiled, allowing the system to transition from interpreted to compiled execution adaptively, minimizing initial slowdown while maximizing long-term performance
Data Source
AI summary
A Data Synchronization and Failover Management (DSFM) system monitors simultaneous execution of non-identical instances of a software application and may label as a particular result of the software application the earliest output corresponding to that result produced by one of the instances. The DSFM may label one of the instances as a primary instance and the other instances as secondary instances and, if the primary instance fails, may re-label one of the secondary instances that computed all of the operations associated with the last result produced prior to the failure of the primary instance, as a new primary instance.


