Storage Subsystem Near Zero Overhead Command Timeout Scheme

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current command timeout schemes in enterprise storage subsystems incur significant overhead due to regular interval checks of I/O commands, which can lead to system complexity and delayed processing as new I/Os have to wait while the queue is locked.

Innovation Solution

Implementing a near zero overhead command timeout scheme using two counters (count_1 and count_2) where I/Os increment and decrement these counters, and the storage subsystem switches between them every 5 seconds, only performing explicit checks when a counter is non-zero, thereby reducing unnecessary checks and system overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If regular interval checks of I/O commands are performed, then timeout detection reliability is improved, but system overhead and complexity increase

Engineering Contradiction:
Improvetimeout detection reliabilityVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Each I/O command autonomously manages its own timeout tracking by maintaining a counter in its control block and comparing it against the timeout threshold, eliminating the need for centralized periodic checking of all I/O commands. This self-service approach reduces system overhead while maintaining reliable timeout detection.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The centralized timeout checking mechanism is segmented into individual I/O command instances, where each command has its own timeout counter and detection logic. This segmentation distributes the timeout management burden across individual I/O operations rather than requiring a single centralized checking process.

Inventive Principle:
Principle #1Segmentation

2Reliability

If regular interval checks of I/O commands are performed, then timeout detection reliability is improved, but processing speed decreases

Engineering Contradiction:
Improvetimeout detection reliabilityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system skips periodic overhead checks and rushes through I/O processing by using event-driven timeout detection. Timeout checking occurs only when necessary (when I/O commands are submitted or completed), allowing normal processing to proceed without interruption or waiting for periodic check intervals.

Inventive Principle:
Principle #21Skipping (Rushing through)

Solution Approach 2:

The useful action of I/O processing continues uninterrupted without periodic pauses for timeout checking. The timeout detection mechanism operates continuously in the background through event triggers rather than interrupting the processing flow with periodic checks, maintaining continuous productive action.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If queue locking is performed during checking, then I/O flow accuracy is improved, but system overhead increases

Engineering Contradiction:
ImproveI/O flow accuracyVSAvoidsystem overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Each I/O command independently tracks its own timeout status through counters in its control block, eliminating the need for centralized queue locking to ensure accurate timeout detection. This self-service approach maintains measurement precision without the overhead of queue locking mechanisms.

Inventive Principle:
Principle #25Self-service

4Measurement precision

If new I/Os wait during queue locking, then I/O flow accuracy is improved, but loss of time increases

Engineering Contradiction:
ImproveI/O flow accuracyVSAvoidI/O waiting time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system skips the time-consuming queue locking operation entirely by using event-driven timeout detection. New I/O commands are submitted and processed immediately without waiting for periodic check intervals or queue lock availability, eliminating waiting time while maintaining accurate timeout detection through autonomous counter management.

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentUS7774510B2Near zero overhead command timeout scheme
Publication Date: 2010.08.10 ORACLE AMERICAN INC
  • US7774510B2 patent drawing
  • US7774510B2 patent drawing
  • US7774510B2 patent drawing

AI summary

A method for handling input/output (I/O) commands in a storage system includes establishing first and second counters for counting unfinished I/O commands, and establishing a reference which is initially set to the first counter. The reference is periodically switched between the first counter and the second counter, and the switching interval is less than the I/O timeout value. Upon placing an I/O command into an I/O command queue, a copy of the current reference is made into an I/O specific control block and the current referenced counter is incremented. Upon finishing of an I/O command, the counter referenced by the I/O specific control block is decremented and the I/O command is removed from the I/O command queue. When switching the reference, a problem is detected in the event that the counter being switched to is above a predetermined threshold. Upon detection of a problem, a more explicit I/O check is conducted.