Shared Closure Copy on Demand for Virtual Machine Session Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtual machine session data management, existing methods like serialization and shared closures incur high performance costs and inefficiencies, especially when the same virtual machine repeatedly accesses session data, as they require constant data traversal and copying to shared memory, wasting efforts and reducing system efficiency.
Innovation Solution
Implementing a 'copy on demand' method where session data is copied to a shared closure only when needed, using pointers to track data location updates and storing references in shared memory, allowing data to be accessed without conversion to a persistent form unless required by another virtual machine or for load balancing and failure recovery.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If session data is copied to shared closure every time something changes in session data, then session failover is supported, but system efficiency deteriorates due to unnecessary copying when the same virtual machine accesses the data
Solution Approach 1:
The patent applies preliminary action by pre-copying session data to shared closure only when necessary (at session creation or when virtual machine identity changes), rather than copying every time data changes. This allows the system to maintain failover capability while avoiding unnecessary copying operations when the same virtual machine continues to access the data.
Solution Approach 2:
The patent implements dynamics by making the copying behavior adaptive based on the virtual machine's identity. The system dynamically determines whether copying is needed by checking if the accessing virtual machine is different from the creating virtual machine, thus adjusting the copying operation from static (always copy) to dynamic (copy only when necessary).
2Reliability
If session data is serialized to persistent storage, then data protection against virtual machine failure is achieved, but performance deteriorates due to the slow conversion and storage process
Solution Approach 1:
The patent uses copying by creating a shared closure that copies essential session data to shared memory, rather than serializing the entire session object to persistent storage. This copying approach provides data protection with much better performance compared to full serialization, as it avoids the overhead of converting all session objects to a persistent format.
Solution Approach 2:
The patent extracts only the necessary session data that needs to be persisted for failover support, rather than serializing the complete session object. By extracting and copying only the essential data to shared closure, the system achieves data protection without the performance penalty of full serialization.
3Reliability
If all session objects are serialized for persistent storage, then complete session data protection is achieved, but the complexity of the process increases due to requiring all objects to be serializable
Solution Approach 1:
The patent extracts and protects only the essential session data that needs to be persisted, rather than requiring all session objects to be serializable. This selective extraction approach reduces complexity by focusing on critical data while avoiding the need for comprehensive serialization of the entire session object graph.
Solution Approach 2:
The patent performs preliminary identification and extraction of essential session data that requires protection, before any failure occurs. This preliminary action allows the system to focus on protecting only the necessary data, reducing the complexity associated with comprehensive serialization while maintaining adequate data protection.
Data Source
AI summary
A method and apparatus for copying data from a virtual machine to a shared closure on demand. This process improves system efficiency by avoiding the copying of data in the large number of cases where the same virtual machine is the next to request access and use of the data. Load balancing and failure recovery are supported by copying the data to the shared closure when the data is requested by another virtual machine or recovering the data from the failed virtual machine and storing it in the shared closure before a terminated virtual machine is discarded.


