Decoupled Application-OS Architecture for Fault-Tolerant Computing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In traditional computing systems, the reliability of application programs is heavily dependent on the underlying operating system, leading to increased server crashes and downtime due to high loads, with existing solutions like checkpointing and clustering having performance limitations and hardware configuration requirements.
Innovation Solution
A decoupled application program-operating system computing architecture where an application program on a client machine performs system calls to a server machine's operating system over a high-speed interconnect, allowing for fault-tolerant operation and minimal state information loss, with a client operating system acting as a proxy to manage system calls and restarts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If application programs are hosted on highly utilized server machines, then productivity and service capacity are improved, but reliability deteriorates due to increased probability of server crashes
Solution Approach 1:
The patent segments the operating system into multiple virtual machines, allowing application programs to be distributed across multiple isolated OS instances. This segmentation prevents a crash in one OS instance from affecting other applications running in different virtual machine instances, thereby maintaining reliability while preserving productivity.
Solution Approach 2:
The patent introduces a virtual machine monitor (VMM) as an intermediary layer between the physical hardware and the operating systems. The VMM manages multiple virtual machine instances and enables seamless migration and recovery, allowing applications to be restored quickly after crashes without directly impacting the underlying hardware or other applications.
2Reliability
If checkpointing is used to restore application state after OS crash, then reliability is improved, but performance deteriorates due to performance penalties
Solution Approach 1:
The patent performs preliminary actions by continuously maintaining and syncing state information of virtual machine instances in real-time during normal operation. When a crash occurs, the restored state is already prepared and can be quickly activated without requiring time-consuming checkpoint creation and restoration operations, thus minimizing performance impact.
Solution Approach 2:
The patent creates and maintains copies of virtual machine state information in memory during normal operation. Upon crash, these pre-existing copies can be immediately restored without requiring time-consuming data reconstruction, enabling fast recovery with minimal performance penalty.
3Reliability
If high availability clusters are used to reduce downtime, then reliability is improved, but device complexity increases due to homogenous hardware configuration requirements
Solution Approach 1:
The patent creates universal virtual machine instances that can run on heterogeneous hardware platforms. The virtualized OS instances are platform-agnostic and can be migrated between different physical hardware configurations, eliminating the need for homogenous hardware clusters while maintaining high availability through rapid failover capabilities.
Solution Approach 2:
The patent uses virtual machine copying and migration capabilities to replicate OS instances across heterogeneous hardware. Instead of requiring identical hardware configurations, the system can copy virtual machine states to different physical platforms, reducing hardware complexity requirements while maintaining reliability through rapid restoration.
Data Source
AI summary
A method of application program-operating system decoupling includes performing, through an application program configured to execute on a client machine, a system call to a first operating system executing on a server machine over an interconnect configured to couple the server machine to the client machine. The method also includes serving the application program configured to execute on the client machine through the first operating system executing on the server machine in accordance with the system call.


