Virtual IO Server Drain Command for Application Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveapplication availabilityVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvehardware utilization efficiencyVSAvoidIO request management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8352799B2Data corruption prevention during application restart and recovery
Publication Date: 2013.01.08 ARCTERA US LLC
  • US8352799B2 patent drawing
  • US8352799B2 patent drawing
  • US8352799B2 patent drawing

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.