System and method for hybrid kernel and user-space checkpointing using a character device

Inventors

Havemose, Allan

Assignees

Philips North America LLC

Interested in licensing this patent?

MTEC can help explore whether this patent might be available for licensing for your application.

Publication Number

US-11656954-B1

Patent

Publication Date

2023-05-23

Expiration Date


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

A system executes one or more multi-process applications on a host with a host operating system, using a checkpointer device to generate checkpoints. The checkpointer is implemented in kernel space as one of a kernel module, a loadable kernel module, a kernel loadable module, a device driver, or compiled into a kernel. Triggering a checkpoint causes the execution of the multi-process applications to pause at a synchronization point, providing a synchronization point-based checkpoint mechanism for multi-process applications.

The checkpointing architecture is described as a hybrid kernel-mode and user-space checkpointing system for multi-process applications. It includes kernel page-based memory extraction together with user-space interceptors that provide barrier synchronization and supporting components such as a checkpoint thread per process and resource flushing. The system also supports an Application Virtualization Space (AVS), which virtualizes OS resource identifiers such as PIDs/TIDs and remaps resource metadata during restore.

Checkpoint and restore operations are described with an explicit checkpoint structure and restore flow. The checkpoint structure includes global state, shared state, and per-process state, and it includes page inclusion by page numbers. In restore, an initial process reads the global and process hierarchy information, then overlays and remaps the AVS to reconstruct process state and resource mapping, including flushing of resources such as TCP/IP state.

Claims Coverage

The partial content identifies four independent claim sets. The inventive features focus on kernel-implemented checkpointing, synchronization-point pausing, page-oriented checkpoint creation via a character-device read, and, for one medium claim, skipping memory pages not used.

Kernel-implemented checkpointer that pauses at a synchronization point

A checkpointer implemented as one of a kernel module, a loadable kernel module, a kernel loadable module, a device driver or compiled into a kernel, wherein triggering a checkpoint causes the execution of said multi-process applications to pause at a synchronization point.

Page checkpointing via checkpointer character device read

A checkpointing mechanism wherein triggering a checkpoint causes 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, with a synchronization module pausing execution at the synchronization point.

Per-process checkpoint thread and checkpoint comprised of paused processes plus per-page reads

A system configured such that a checkpoint is comprised of a pause of said application processes at said synchronization point and 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.

Kernel-implemented checkpointer invoked while applications are paused

Instructions executed by a processor that cause the processor to perform operations including executing a checkpointer device configured to generate checkpoints wherein said checkpointer is implemented as one of a kernel module, a loadable kernel module, a kernel loadable module, a device driver or compiled into a kernel, wherein said checkpointer device is called while the executing one or more multi-process applications is paused.

Skipping memory pages not used by each application process

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.

Across the independent claims, the core coverage is kernel-implemented checkpointing for multi-process applications with synchronization-point pausing, and checkpoint creation by reading memory pages via a checkpointer character device, including per-process checkpoint threading. One independent claim set on a computer-readable medium further specifies skipping unused memory pages during the character-device read, and each independent claim constrains the checkpointer implementation to kernel-space implementations.

Stated Advantages

Transparent checkpointing is described, including no binary/app/OS/network library modifications.

Support for restore and migration from stored checkpoints is described.

Checkpointing avoids hardware virtualization overhead.

Application Virtualization Space (AVS) supports virtualization of resource identifiers such as PIDs/TIDs and remapping of resource metadata during restore.

Documented Applications

Live migration is described as a deployment scenario using primary/backup servers over networked storage.

Checkpoint storage and restore using local, remote, or networked storage is described.

JOIN OUR MAILING LIST

Stay Connected with MTEC

Keep up with active and upcoming solicitations, MTEC news and other valuable information.