System and method for hybrid kernel and user-space checkpointing using a character device
Inventors
Assignees
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Abstract
A system, method, and computer readable medium for hybrid kernel-mode and user-mode checkpointing of multi-process applications. The computer readable medium includes computer-executable instructions for execution by a processing system. A multi-process application runs on primary hosts and is checkpointed by a checkpointer comprised of a kernel-mode checkpointer module and one or more user-space interceptors providing 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 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.
Core Innovation
The invention provides a hybrid checkpointing architecture for one or more multi-process applications executing on a host with a host operating system. It uses a checkpointer comprising at least a checkpointer device, with checkpoint generation that supports multi-process applications by deterministically coordinating execution halts across processes. Checkpointing is performed while the application processes are paused at a synchronization point to enable consistent checkpoint capture across the process set.
The checkpointer device performs checkpoint generation by reading memory pages associated with each application process. A read function of the checkpointer device includes memory pages used by each application process and skips memory pages not used by each application process. The read function optionally optimizes reads by skipping one or more of reserved low memory, reserved high memory, or memory reserved for the operating system.
The architecture is implemented using kernel-mode and user-space components, including a loadable kernel module checkpointer and user-space interceptors. Checkpoint capture occurs on a checkpoint thread of each process, where the character-device read is used to collect per-process memory pages, and checkpoint data is written to storage and later restored by recreating a process hierarchy and remapping an Application Virtualization Space (AVS) that virtualizes OS-dependent identifiers and resource mappings.
In an operating-system integration perspective, checkpoint data access is framed as character-device operations, including a character device and reading checkpoint data via a Virtual File System (VFS). Checkpoint restore is performed transparently without application or OS modifications by installing interceptors and resuming execution after remapping the AVS resources.
Claims Coverage
The independent claims cover a checkpointer-based checkpointing system for multi-process applications with selective memory-page capture and optional optimization, coordinated by pausing execution at a synchronization point and invoking a character-device read while applications are paused. Across the independent claims, the inventive features total include synchronization-coordinated checkpointing, character-device read behavior that skips unused pages and optionally reserved low/high and OS-reserved memory, and implementation and access variants that specify device and medium mechanisms.
Multi-process checkpointing with character-device page reads
For each application process of said one or more multi-process applications, a read function of said checkpointer device skips memory pages not used by said each application process; wherein the read function of said checkpointer device includes memory pages used by said each application process; wherein the checkpointer device read function calls optionally are optimized by a skip of one or more of reserved low memory, reserved high memory, or memory reserved for the operating system.
Synchronization-point pausing during checkpointing
A synchronization module configured to pause execution of the one or more applications at a synchronization point, or trigger each of the one or more multi-process applications to pause at said synchronization point; wherein a checkpoint is comprised of a pause of said application processes at said synchronization point.
Per-process checkpoint threads with per-page reads
A call of a read function of said character device for each memory page in each process in said applications on a checkpoint thread of said each process.
Checkpointing using a non-transitory computer readable medium
A non-transitory computer readable medium including a computer program having instructions that, when executed by a processor, cause operations including executing one or more multi-process applications on a host with a host operating system and executing a checkpointer device configured to generate checkpoints while the applications are paused.
Character device read accessed via VFS
The character device’s read function is accessed via a virtual file system (VFS).
Character-device checkpointer with synchronization-point checkpointing
A checkpointer comprised of at least a checkpointer device implemented as a character device, and configured to generate checkpoints while the executing one or more multi-process applications is paused at a synchronization point.
The independent claims collectively define checkpointing for multi-process applications that pauses processes at a synchronization point and uses a character-device read function to capture only memory pages used by each process, skipping unused pages and optionally reserved low memory, reserved high memory, and OS-reserved memory. The independent claims also cover variants where the approach is implemented in a non-transitory computer readable medium and where access to the character device read function is via a virtual file system (VFS).
Stated Advantages
Selectively skips memory pages not used by each application process while including memory pages used by each application process.
Optionally optimizes checkpoint reads by skipping reserved low memory, reserved high memory, or memory reserved for the operating system.
Provides transparent checkpointing and restoration without application or OS modifications.
Documented Applications
Checkpoint generation and later restore for one or more multi-process applications executing on a host with a host operating system using a checkpointer device with character-device reads.
Checkpoint access and restoration in an OS-integrated context using a character device and reading checkpoint data via a Virtual File System (VFS).
Transparent restoration that recreates process hierarchy, remaps an Application Virtualization Space (AVS), installs interceptors, and resumes execution for multi-process applications.
Interested in licensing this patent?