Live Migration via Parallel Instance Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing live migration techniques face challenges such as downtime in pre-copying and performance degradation due to network faults in post-copying, particularly in highly time-critical processing scenarios, and often require a shared data-store which is not suitable for all cases.
Innovation Solution
The solution involves parallel execution of application instances on both the source and destination hosts, with a network controller managing external access and a migration layer tracking memory accesses, allowing read and write calls to be made in parallel, ensuring faithful execution and minimizing network faults by transferring data only when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If pre-copying is used for live migration, then data is transferred before migration, but downtime occurs during the stop and copy phase
Solution Approach 1:
The patent performs preliminary data transfer by having the destination host read memory blocks from the source host before migration. The destination host proactively fetches data that will be needed, so when the actual migration occurs, the data is already available locally, eliminating downtime.
Solution Approach 2:
The patent maintains continuous data processing during migration by allowing the destination host to continue reading and processing memory blocks even while they are being transferred from the source host. This overlapping of transfer and processing operations eliminates idle time and maintains continuous useful action.
2Loss of time
If post-copying is used for live migration, then the application is suspended and minimal state is transferred, but network faults occur when accessing transferred memory pages
Solution Approach 1:
The patent performs preliminary data transfer by having the destination host read memory blocks from the source host before migration. This pre-fetching of data ensures that when the application resumes execution at the destination, the required data is already available locally, preventing network faults during operation.
Solution Approach 2:
The patent introduces a migration layer that acts as an intermediary between the application and the memory system. This migration layer handles the complexity of data transfer and fault management, shielding the application from network faults by managing the data availability transparently.
3Reliability
If traditional live migration is used, then memory is transferred from source to destination, but network resources are heavily utilized and memory gets 'dirtyed' during transfer
Solution Approach 1:
The patent transfers only the necessary memory blocks that the destination host actually needs, rather than transferring all memory. The destination host selectively reads only the required blocks from the source, reducing unnecessary network traffic and avoiding the transfer of already-synchronized or non-critical data.
Solution Approach 2:
The destination host performs self-service by proactively reading and caching the memory blocks it needs from the source host. Instead of passively receiving all memory transfers, the destination host independently identifies and fetches only the necessary data, reducing network load and improving efficiency.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method of migrating of an application from a source host to a destination host, wherein the application is associated with a plurality of memory pages, the source host comprises a first instance of the application and a source memory region, and each memory page has an associated source memory block in the source memory region, the method comprising: at the destination host, reserving (18) a destination memory region such that each memory page has an associated destination memory block in the destination memory region, (19) a second instance of the application at the destination host; on receipt of an input (20) to the application, processing (22, 23) the input in parallel at the first and second instances at respective source and destination hosts: at the source host, if the processing requires a read or a write call to a memory page, respectively reading (24) from or writing (25) to the associated source memory block; the destination host, if the processing requires a write call to a memory page, writing (28) to the associated destination memory block and if the processing requires a read call to a memory page, sending the read call to the source host requesting that the source host read (26) the memory page from the associated source memory block and provide the memory page to the destination host, and, on receipt of the memory page by the destination host, writing (27) the memory page to the associated destination memory block.