VM IO Latency Reduction via Splitter Journal Pointer Extraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data replication solutions incur significant latency due to the need to intercept and synchronously send Input/Output operations over the network, which hampers high-performance applications and mission-critical systems, especially in virtual machines (VMs), as communication speeds lag behind memory and storage write speeds.
Innovation Solution
The approach involves intercepting application IOs in a VM, copying only the metadata and a pointer to the IO data in a splitter journal, eliminating the need for data copying and reducing latency by using non-volatile memory (NVM) for storage, allowing asynchronous transmission of IOs, thereby minimizing latency and maintaining write order fidelity during VM migrations and disaster scenarios.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If synchronous network transmission of IO operations is used for data replication, then data consistency is maintained, but IO latency increases significantly
Solution Approach 1:
The patent applies preliminary action by writing IO metadata and pointers to the splitter journal before the actual IO data transmission. This allows the replication process to be prepared in advance, with the journal already containing the necessary information for future restoration, thereby reducing the latency impact of synchronous network transmission while maintaining data consistency.
Solution Approach 2:
The patent extracts only the essential IO metadata and pointers from the complete IO operation, storing them in the splitter journal. This extraction principle allows the system to maintain replication capability without copying the entire IO data synchronously over the network, significantly reducing IO latency while preserving the ability to restore data consistency.
2Reliability
If IO data is copied to splitter journal for replication, then data can be restored, but write latency increases due to copying overhead
Solution Approach 1:
The patent extracts only the critical components of IO operations (metadata and pointers) and stores them in the splitter journal, rather than copying the entire IO data. This extraction approach maintains the ability to restore data while eliminating the time-consuming data copying overhead, thereby reducing write latency.
Solution Approach 2:
The patent uses a simplified copying mechanism by storing pointers to IO data in the splitter journal instead of duplicating the actual data. This pointer-based copying approach maintains restore capability while significantly reducing the write latency associated with full data copying.
3Reliability
If traditional replication methods are used, then data protection is achieved, but high-performance applications suffer performance degradation
Solution Approach 1:
The patent extracts only the essential replication information (metadata and pointers) from IO operations, storing it in the splitter journal without blocking the application's IO path. This extraction approach maintains data protection capability while minimizing the impact on application performance, allowing high-performance applications to continue operating at near-optimal speeds.
Solution Approach 2:
The patent performs preliminary writing of replication metadata to the splitter journal before the application's IO operation completes. This preliminary action ensures data protection is established in advance without blocking the application's performance-critical IO path, thereby maintaining both data protection and application productivity.
Data Source
AI summary
One example method includes intercepting an IO issued by an application of a VM, the IO including IO data and IO metadata, storing the IO data in an IO buffer, writing the IO metadata and a pointer, but not the IO data, to a splitter journal in memory, wherein the pointer points to the IO data in the IO buffer, forwarding the IO to storage, and asynchronous with operations occurring along an IO path between the application and storage, evacuating the splitter journal by sending the IO data and the IO metadata from the splitter journal to a replication site.


