I/O Shipping for Cluster Application Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed file storage systems, conventional approaches to maintaining connectivity between nodes and data stores can lead to performance degradation and application blackouts due to increased I/O request times and abrupt node shutdowns when connectivity is lost.

Innovation Solution

Implementing I/O shipping to transfer I/O requests from a disconnected node to another node with active connectivity, allowing for graceful shutdown and continuation of application execution on the second node, thereby reducing the need for data and application recovery and minimizing blackout time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If I/O requests are routed through a second node when connectivity is lost, then application execution can continue, but the time needed to satisfy I/O requests increases due to the lengthened path

Engineering Contradiction:
Improveapplication execution continuityVSAvoidI/O request satisfaction time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a second node as an intermediary to handle I/O requests when the primary node loses connectivity to the data store. The second node receives I/O requests from the application, accesses the data store directly, and returns data to the application. This intermediary approach maintains application execution continuity while accepting the time penalty of the extended I/O path.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the cluster software panics the node upon connectivity loss, then data integrity is protected, but the application must be recovered causing a blackout period

Engineering Contradiction:
Improvedata integrityVSAvoidblackout period duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having the second node assume the I/O role and execute the application in advance before the primary node is fully shut down. This preparation allows for a smoother transition when connectivity is restored, reducing the blackout period while maintaining data integrity through controlled failover procedures.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts its behavior based on connectivity status. When connectivity is lost, the system transitions from direct node-data store communication to intermediary node communication. When connectivity is restored, the system can transition back to direct communication. This dynamic adaptation allows the system to maintain reliability while minimizing disruption time.

Inventive Principle:
Principle #15Dynamics

3Loss of time

If the application is gracefully shut down on the first node and executed on the second node, then blackout time is reduced, but the system complexity increases due to node coordination requirements

Engineering Contradiction:
Improveblackout periodVSAvoidnode coordination system
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where nodes continuously monitor connectivity status and automatically adjust their roles. The second node detects when the first node loses connectivity, takes over I/O handling, and can return control when connectivity is restored. This feedback-driven automation reduces the perceived complexity by eliminating manual intervention while maintaining sophisticated node coordination.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9465654B2Intelligent failover or shutdown of an application using input/output shipping in response to loss of connectivity to data storage in a cluster
Publication Date: 2016.10.11 ARCTERA US LLC
  • US9465654B2 patent drawing
  • US9465654B2 patent drawing
  • US9465654B2 patent drawing

AI summary

When a loss of connectivity between a first node in a cluster of nodes and a data store is detected, an input/output (I/O) request associated with an application that was executing on the first node is shipped to a second node in the cluster that is in communication with the data store. The application can be gracefully shut down on the first node, and the second node can execute the application and satisfy the I/O request.