Semi-Synchronous Application Migration Across Asynchronous Distances
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed storage systems, transferring applications like virtual machines across geographically distant sites is challenging due to asynchronous communication, which can result in data inconsistencies and unacceptable delays, especially when maintaining write order fidelity and ensuring data coherence across remote sites.
Innovation Solution
The system synchronously propagates writes from one site to another, suspends the application at the source site, and resumes it at the destination site, using software that transfers an image of the virtual machine and combines cache data with ongoing writes to maintain data coherence and consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If asynchronous transfers are used for geographically distant sites, then transfer time is reduced, but data consistency and write order fidelity deteriorate
Solution Approach 1:
The system performs preliminary data transfer and caching at the destination site before the application actually needs the data. Write operations are queued and prepared for transfer, allowing the application to resume quickly at the destination without waiting for all data to be transferred in real-time.
Solution Approach 2:
A data transfer mediation layer is introduced between source and destination sites, managing the complexity of asynchronous transfers. This intermediary handles write ordering, data consistency, and coordination between sites, isolating the application from these complexities while maintaining reliability.
2Reliability
If synchronous transfers are used to maintain data consistency, then data coherence is improved, but transfer time and application delay worsen
Solution Approach 1:
The data transfer process is segmented into multiple independent phases: initial data copy, write operation queuing, periodic synchronization, and final consistency verification. This allows the system to maintain data coherence for critical operations while avoiding synchronous delays for all data transfers.
Solution Approach 2:
Instead of continuous synchronous synchronization, the system uses periodic synchronization intervals where write operations are batched and transferred at scheduled times. This reduces the frequency of synchronous communication while maintaining acceptable data coherence levels.
3Reliability
If application is suspended at source and resumed at destination, then data consistency is improved, but availability and access speed worsen
Solution Approach 1:
Instead of suspending the application, the system creates a copy of the application state and data at the destination site. The application continues running at the source while a parallel instance is prepared at the destination, enabling seamless failover without suspension.
Solution Approach 2:
The system dynamically changes operational parameters during migration, such as adjusting synchronization frequency, data transfer priorities, and consistency levels based on the migration phase. This allows the system to maintain high availability while progressively achieving data consistency.
Data Source
AI summary
Transferring an application from a first site to a second site includes determining that the second site is a destination site for the application, causing writes by the application at the first site to be propagated semi-synchronously to the second site, transferring storage data from the first site to the second site, suspending operation of the application on the first site, and resuming operation of the application on the second site. The application may be a virtual machine or a host cluster capable of transitioning applications between cluster nodes. The virtual machine may be transferred from the first site to the second site by transferring an image of the virtual machine from the first site to the second site. The destination site may be selected by a user. The second site may be located remotely from the first site across an asynchronous distance.


