SCSI Target Lock Management for Stuck Command Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

SCSI systems face performance degradation due to slow or stuck commands, which can lead to inefficient processing and communication bottlenecks, especially in multi-service environments where concurrent operations can cause delays and congestion.

Innovation Solution

Implementing a method within the SCSI target processor to monitor execution times of operations and perform escalating actions, such as halting or terminating specific services' commands, to manage workload and prevent congestion, including using a SCSI target management daemon to manage exclusive locks and initiate delays to allow other services to acquire locks, thereby reducing the likelihood of slow or stuck commands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple services are allowed to execute concurrently at the SCSI target, then service versatility and throughput are improved, but command execution delays and processing congestion occur

Engineering Contradiction:
Improveservice versatilityVSAvoidcommand execution delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by monitoring command execution times and detecting potential slow or stuck commands before they cause significant delays. The SCSI target proactively identifies commands that exceed predetermined time thresholds and takes corrective actions such as aborting or prioritizing commands, preventing execution delays before they impact overall system performance.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If workload is increased to improve productivity, then processing capacity is improved, but command execution becomes slower and more prone to stalling

Engineering Contradiction:
Improveprocessing capacityVSAvoidcommand execution speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The system applies partial action by selectively managing command execution rather than uniformly processing all commands. When slow or stuck commands are detected, the system applies corrective actions only to those specific commands while allowing other commands to proceed normally. This selective approach maintains overall productivity while preventing execution speed degradation.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If strict lock management is enforced to improve reliability, then service stability is improved, but service responsiveness and throughput decrease

Engineering Contradiction:
Improveservice stabilityVSAvoidservice throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements dynamic lock management where lock strictness is adjusted based on system conditions and command characteristics. Rather than enforcing uniform strict locking, the system adapts lock management policies dynamically, allowing more flexible concurrency when conditions permit while maintaining strict locking when reliability is critical. This dynamic approach balances service stability with throughput optimization.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9235450B2Method and apparatus for reducing slow or stuck SCSI commands in a multi-service environment at a SCSI target
Publication Date: 2016.01.12 EMC IP HLDG CO LLC
  • US9235450B2 patent drawing
  • US9235450B2 patent drawing
  • US9235450B2 patent drawing

AI summary

A computer-implemented method to reduce slow or stuck SCSI commands at a SCSI target is disclosed. The method starts with initiating a first request to acquire an exclusive lock for a first service daemon of a SCSI target to shut down a first service, where the SCSI target offers a plurality of services, and where each service corresponds to a service daemon. The first service daemon receives a first rejection of the exclusive lock for the first request as the exclusive lock is currently held by a second service daemon corresponding to a second service. Then the first service daemon initiates a second request to acquire the exclusive lock in an attempt to shut down the first service again after a delay period. In response to a second rejection, execution of SCSI commands associated with the second service currently possessing the exclusive lock is terminated.