Binary Translation Container for Live Mobile App Migration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current live migration solutions for mobile applications often freeze and checkpoint the entire system, leading to hardware compatibility issues and suboptimal performance on minimal hardware resources due to excessive checkpointing.
Innovation Solution
The implementation of a binary translation (BT) container that isolates application native code and state from managed runtime native state, allowing for selective checkpointing and transfer of only the application information, enabling seamless migration across different hardware platforms without freezing the application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire system is frozen and checkpointed for live migration, then application state can be transferred, but hardware compatibility issues arise and performance degrades on minimal hardware resources
Solution Approach 1:
The system is segmented into two distinct checkpointing approaches: full system checkpointing for traditional migration and selective application-only checkpointing for the containerized approach. The application state is further segmented into managed state (application-level) and native state (hardware-specific), with only the managed state being checkpointed and transferred, thereby avoiding hardware compatibility issues and reducing the checkpointing overhead on minimal hardware devices.
Solution Approach 2:
The hardware-specific native state is extracted from the checkpointing process. Instead of checkpointing the entire system including hardware-specific components, only the application-managed state is extracted and transferred. This extraction eliminates hardware compatibility problems during migration and reduces the amount of data that needs to be checkpointed, improving performance on resource-constrained devices.
2Reliability
If the entire system is frozen and checkpointed for live migration, then application state can be transferred, but hardware compatibility issues arise across platforms
Solution Approach 1:
A binary translation container acts as an intermediary layer between the application and the hardware-specific native environment. The container provides a standardized interface that translates application calls into hardware-specific operations, allowing the application state to be migrated across different hardware platforms without direct hardware dependencies. This intermediary abstraction ensures hardware compatibility while maintaining application functionality.
Solution Approach 2:
The system applies different quality characteristics to different parts of the state: the managed application state is made portable and hardware-agnostic through selective checkpointing, while the native state retains hardware-specific characteristics but is excluded from migration. This local differentiation ensures that only the necessary portable components are transferred, achieving hardware compatibility across platforms.
3Reliability
If excessive checkpointing is performed, then complete system state is captured, but suboptimal performance occurs on mobile devices with minimal hardware resources
Solution Approach 1:
Instead of performing excessive checkpointing of the entire system, the approach uses partial checkpointing that captures only the essential application-managed state within the container. This selective partial action eliminates unnecessary checkpointing overhead on mobile devices with minimal hardware resources while still capturing sufficient state information to enable successful application migration and state rebuilding on the target device.
Data Source
Figure 1
Figure 2A~2B
Figure 3
AI summary
Systems, apparatuses and methods may provide for isolating native information from non-native information, wherein the native information is associated with a mobile application running in a managed runtime environment. Additionally, the native information may be checkpointed and transferred from a first device to a second device in response to a live migration event. In one example, the native information includes native code and native state data and isolating the native information from the non-native information includes dispatching one or more native function calls to a binary translation (BT) container that manages a memory pool dedicated to the native information.