Host Bus Adapter I/O Prioritization via Classifier Tagging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems lack efficient prioritization mechanisms for input/output (I/O) requests from multiple applications sharing a single storage device, leading to resource starvation and unfair distribution of storage device resources.

Innovation Solution

Implementing a classifier at the host bus adapter (HBA) to tag I/O requests with service level objectives (SLOs) and quality of service (QoS) information, allowing storage devices to differentiate and prioritize I/O requests based on application-specific requirements, minimizing changes to the operating system and supporting server-level and LUN-level classification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If all I/O requests are processed with the same priority, then the storage device can maintain simple processing logic, but resource starvation and unfair distribution occur among multiple applications

Engineering Contradiction:
Improveprocessing logic complexityVSAvoidservice level guarantee
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The HBA performs preliminary classification and tagging of I/O requests with classifier values before transmitting them to the storage device. This advance preparation allows the storage device to process requests with appropriate priorities without requiring complex real-time decision-making logic, thus maintaining simplicity while ensuring service level guarantees.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The HBA acts as an intermediary between the host and storage device, inserting classifier tags into I/O requests. This intermediary component handles the complexity of priority determination and classification, allowing the storage device to remain simple while still achieving differentiated service levels through the tags provided by the HBA.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the HBA tags I/O requests with classifier values, then I/O prioritization and QoS management are improved, but the system requires additional tagging infrastructure

Engineering Contradiction:
ImproveI/O processing efficiencyVSAvoidtagging infrastructure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The HBA performs multiple functions including I/O request classification, tagging with classifier values, and priority determination. By consolidating these functions in a single component, the system achieves improved I/O processing efficiency without requiring separate dedicated infrastructure for each function, thus limiting the increase in overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of manufacture

If classification is performed at the HBA rather than the application layer, then OS modifications are minimized, but the HBA requires enhanced classification capabilities

Engineering Contradiction:
ImproveOS modification effortVSAvoidHBA classification capability
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The classification and prioritization functionality is extracted from the application layer and operating system, and placed in the HBA. This extraction minimizes the need for OS modifications while concentrating the enhanced classification capabilities in the HBA, which is designed to handle these additional functions through firmware or hardware-based classification mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9262346B2Prioritizing input/outputs at a host bus adapter
Publication Date: 2016.02.16 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9262346B2 patent drawing
  • US9262346B2 patent drawing
  • US9262346B2 patent drawing

AI summary

A method generates input/output (IO) commands by plural different applications that execute on a host. The method prioritizes the applications by inserting different classifiers into the IO commands at a host bus adapter (HBA) located in the host. A storage device receives the IO commands and processes the IO commands according to priorities based on the classifiers for the applications.