I/O Priority Inheritance for Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems, I/O operations often require serial execution to maintain order, leading to poor performance and underutilization of multithreaded capabilities, as existing technologies fail to effectively manage dependencies and prioritize I/O operations based on their importance.

Innovation Solution

Implementing a method and system that prioritize I/O operations by determining the priority of requests and allowing associated I/O commands to inherit priority, using an I/O queue and logical block address data structure to execute I/O commands based on priority, ensuring timely completion of dependent operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If I/O operations are executed serially to maintain order, then dependency relationships are properly maintained, but system performance deteriorates and multithreaded capabilities are underutilized

Engineering Contradiction:
ImproveI/O operation order correctnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts I/O execution from static serial ordering to dynamic parallel execution based on real-time dependency analysis. The I/O scheduler continuously evaluates dependency graphs and executes operations in parallel when dependencies are satisfied, while maintaining serial execution when dependencies require ordering, thus resolving the contradiction between reliability and productivity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The I/O operation stream is segmented into independent parallel execution units based on dependency relationships. By dividing the I/O workflow into segments that can be executed independently when their dependencies are met, the system maintains correctness while enabling parallel execution of independent segments, improving overall system performance

Inventive Principle:
Principle #1Segmentation

2Productivity

If I/O operations are executed in parallel to maximize throughput, then productivity improves, but dependency relationship violations may occur reducing reliability

Engineering Contradiction:
ImproveI/O throughputVSAvoidI/O operation order correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback through continuous monitoring of I/O operation status and dependency satisfaction. The I/O scheduler receives feedback about completed operations and uses this information to dynamically enable parallel execution of dependent operations, ensuring that parallel execution only occurs when dependencies are properly satisfied, thus maintaining reliability while improving throughput

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary dependency analysis and prepares I/O operations for parallel execution in advance. By pre-evaluating dependency relationships and pre-positioning operations in the execution queue, the system can quickly transition to parallel execution when dependencies are satisfied, maximizing throughput without violating operational order

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple applications share I/O resources, then resource utilization improves, but important applications may be delayed reducing their performance

Engineering Contradiction:
Improveresource utilizationVSAvoidI/O latency for critical applications
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system applies local quality by assigning different service qualities to different I/O operations based on application priority. High-priority applications receive preferential treatment in the I/O scheduling queue, ensuring their operations are executed with lower latency, while low-priority applications share remaining resources, thus resolving the contradiction between resource utilization and critical application performance

Inventive Principle:
Principle #3Local quality

4Ease of operation

If I/O requests are processed in strict FIFO order, then fairness is maintained, but critical I/O operations cannot be prioritized

Engineering Contradiction:
ImproveI/O scheduling simplicityVSAvoidI/O latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The I/O scheduler transitions from static FIFO processing to dynamic priority-based scheduling. The system continuously evaluates application priorities and I/O operation characteristics, dynamically adjusting the execution order to prioritize critical operations while maintaining fairness for standard operations, thus reducing I/O latency without excessive complexity

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7478179B2Input/output priority inheritance wherein first I/O request is executed based on higher priority
Publication Date: 2009.01.13 ORACLE AMERICAN INC
  • US7478179B2 patent drawing
  • US7478179B2 patent drawing
  • US7478179B2 patent drawing

AI summary

A method for executing input/output (I/O) operations based on priority involves receiving a first I/O request for a unit of data, receiving a second I/O request for the same unit of data, determining a priority of the first I/O request and a priority of the second I/O request, and executing the first I/O request based on priority, where the first I/O request is executed based on the higher of the priority of the first I/O request and the priority of the second I/O request.