Virtual IO Server Drain Command for Application Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtual environments, incomplete IO requests can lead to data corruption during application restart or recovery, especially due to the additional layer of virtualization which complicates identifying and filtering out requests from failed virtual machines.
Innovation Solution
A method is implemented to detect application errors and send a drain command to the virtual IO server to complete or abort pending IO requests before restarting or recovering the application, ensuring data integrity by preventing mixed IO actions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If application restart is performed without draining IO requests, then application availability is improved, but data corruption occurs due to mixed IO actions from failed and new application instances
Solution Approach 1:
The system performs preliminary draining of IO requests before application restart by detecting application failure, sending drain commands to the virtual IO server, and waiting for confirmation that all IO requests have been completed or aborted. This preliminary action ensures data integrity is maintained while enabling quick application recovery.
2Productivity
If virtualization layer is added to consolidate hardware resources, then hardware utilization efficiency is improved, but the complexity of identifying and filtering IO requests from failed virtual machines increases
Solution Approach 1:
The system implements feedback mechanisms where the virtual IO server sends notifications back to the application manager when IO requests have been drained. This feedback loop automates the tracking and management of IO requests across virtualized environments, reducing the complexity of identifying and filtering requests from failed virtual machines while maintaining efficient resource consolidation.
Data Source
AI summary
Embodiments of the present invention are directed to a method and system for draining or aborting IO requests of a failed system prior to restarting or recovering an application in virtual environments. The method includes detecting, within an electronic system, an application error condition of an application executing on a virtual machine and determining an application restart target. The method further includes sending an input/output (IO) request drain command to a virtual IO server operable to provide storage to the virtual machine and receiving a signal that the IO requests have been drained. The drain command is operable to drain IO requests issued from the application. The application can then be restarted or recovered.


