Dynamic Resource Allocation for I/O Failure Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems, lower priority data requests may not be serviced within a reasonable time, leading to timeouts that can cause host or application failures, affecting performance and potentially resulting in crashes.

Innovation Solution

A method is implemented in a data storage system to dynamically adjust resource allocation based on I/O failure occurrences, temporarily increasing resources for affected applications or hosts experiencing pending failures, and sending notifications to administrators, thereby preventing crashes and allowing for corrective actions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If resources are allocated according to fixed priority levels, then system resource management is simple and predictable, but lower priority requests may not be serviced within acceptable timeframes causing timeouts and crashes

Engineering Contradiction:
Improvesystem stabilityVSAvoidI/O service time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements dynamic priority adjustment by monitoring I/O failure occurrences and automatically elevating the priority level of affected applications or hosts. When a host or application experiences I/O failures, the system dynamically changes its priority from a lower fixed level to a higher level, ensuring timely servicing of requests and preventing timeouts that would cause crashes. This dynamic adjustment resolves the contradiction by making priority levels adaptive rather than static.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system continuously monitors I/O failure occurrences and uses this feedback to adjust resource allocation and priority levels. When failures are detected, the system responds by elevating priority and allocating additional resources. This closed-loop feedback mechanism ensures that the system adapts to changing conditions and maintains reliability by preventing timeout-induced crashes while managing resource allocation efficiently.

Inventive Principle:
Principle #23Feedback

2Reliability

If additional resources are allocated to prevent I/O failures, then system reliability improves, but resource utilization efficiency decreases

Engineering Contradiction:
ImproveI/O service reliabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation that adjusts the amount of resources allocated to each host or application based on their current performance needs. Instead of allocating excess resources statically, the system monitors I/O failure occurrences and dynamically increases resources only when failures are detected. This dynamic approach ensures high reliability during critical moments while maintaining efficient resource utilization during normal operation, resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes key parameters such as priority level and resource allocation amount based on monitored I/O failure patterns. When failures occur, the system adjusts these parameters to provide additional resources and higher priority servicing. When the system is operating normally, parameters return to baseline levels. This parameter-based dynamic adjustment ensures reliability improvements are achieved only when necessary, maintaining overall resource utilization efficiency.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8584128B1Techniques for adjusting priorities associated with servicing requests
Publication Date: 2013.11.12 EMC IP HLDG CO LLC
  • US8584128B1 patent drawing
  • US8584128B1 patent drawing
  • US8584128B1 patent drawing

AI summary

Described are techniques for servicing data requests in a data storage system. One or more data requests from an application executing on the host are received. The data storage system allocates a first amount of resources for use in servicing data requests from the application. Behavior of the host is monitored for occurrences of I/O failure. In accordance with criteria and the occurrences of I/O failure, it is determined whether at least one of the host or the application is in a state of pending failure. If it is determined that at least one of the host or the application is in a state of pending failure, a second amount of resources larger than the first amount are allocated for a time period when servicing data requests from the application. After the time period, data requests from the application are serviced in accordance with the first amount of resources.