Kernel-User Hybrid Checkpointing for Transparent Application Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing checkpointing technologies require modifications to applications, rely on custom operating systems or hardware virtualization, and are dependent on system libraries, making them complex and costly to implement and manage.
Innovation Solution
A kernel-based checkpointing service that operates transparently across commodity operating systems and hardware, using a Loadable Kernel Module (LKM) to capture and restore application states without requiring application customizations or hardware virtualization, leveraging user-space interceptors and optimizing memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If user-space checkpointing with interception is used, then application checkpointing capability is provided, but dependency on system libraries increases and complexity increases
Solution Approach 1:
The patent introduces a character device as an intermediary between user-space applications and kernel-space checkpointing services. This character device serves as a standardized interface that applications can use to request checkpointing without directly depending on system libraries. The kernel module monitors and responds to operations on this character device, providing checkpointing functionality through a well-defined interface that reduces coupling between applications and the checkpointing implementation.
2Reliability
If custom operating systems or hardware virtualization is used, then checkpointing service is provided, but device complexity and cost increase
Solution Approach 1:
The patent extracts the checkpointing functionality from the operating system core and implements it as a separate loadable kernel module. This modular approach allows checkpointing to be provided as an add-on service rather than requiring a custom operating system. The character device interface further separates the application layer from the kernel implementation, allowing standard operating systems to support checkpointing without modification to the OS core.
Solution Approach 2:
The character device serves multiple functions: it provides a standardized interface for applications to request checkpointing, acts as a communication channel between user-space and kernel-space, and enables both incremental and full checkpointing operations. This universal interface works across different applications and operating systems without requiring hardware virtualization or custom OS implementations.
3Manufacturing precision
If application modifications are required for checkpointing, then checkpointing precision is improved, but ease of operation and implementation difficulty worsen
Solution Approach 1:
The patent implements automatic checkpointing where the kernel module autonomously monitors application state and performs checkpointing operations without requiring application modifications. The character device interface allows applications to request checkpointing through standard system calls, and the kernel module automatically captures the necessary state information, manages memory pages, and stores checkpoints without any changes to the application code.
4Productivity
If incremental checkpointing is implemented, then checkpointing speed is improved, but memory management complexity increases
Solution Approach 1:
The patent implements incremental checkpointing by monitoring page modification status and selectively checkpointing only changed pages. The kernel module tracks which memory pages have been modified since the last checkpoint and uses this feedback information to determine which pages need to be saved. This approach significantly reduces checkpointing time and I/O operations compared to saving the entire address space, while the complexity is managed through kernel-level page tracking mechanisms.
Data Source
AI summary
A system includes a multi-process application that runs. A multi-process application runs on primary hosts and is checkpointed by a checkpointer comprised of at least one of a kernel-mode checkpointer module and one or more user-space interceptors providing at least one of barrier synchronization, checkpointing thread, resource flushing, and an application virtualization space. Checkpoints may be written to storage and the application restored from said stored checkpoint at a later time. Checkpointing may be incremental using Page Table Entry (PTE) pages and Virtual Memory Areas (VMA) information. Checkpointing is transparent to the application and requires no modification to the application, operating system, networking stack or libraries. In an alternate embodiment the kernel-mode checkpointer is built into the kernel.


