Flow Control Mechanism for iSCSI Data Transfers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current upper layer protocols (ULPs) in computer systems face challenges with imprecise flow control, leading to connection termination and data loss when receive buffers are unavailable, particularly in protocols like iSCSI, which has limited flow control capabilities, resulting in increased complexity and reduced scalability.

Innovation Solution

Implementing a flow control mechanism using the transport protocol to manage data transfers between nodes, allowing for transparent and efficient handling of buffer availability without terminating connections, utilizing the transport protocol to retransmit dropped packets and maintain active connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If imprecise flow control is used in protocols like iSCSI, then the protocol can manage various types of commands with limited flow control capabilities, but connection termination and data loss occur when receive buffers are unavailable

Engineering Contradiction:
Improveprotocol command management capabilityVSAvoidconnection stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces an intermediary flow control mechanism that sits between the iSCSI protocol and the underlying transport layer. This intermediary layer translates iSCSI's limited flow control signals into more granular control actions, preventing buffer overflow while maintaining connection stability. The intermediary monitors buffer status and regulates data flow without requiring changes to the iSCSI protocol itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If stricter send message flow control is enforced by datamover protocol, then data transfer flow control becomes deterministic, but system complexity increases and scalability is reduced

Engineering Contradiction:
Improveflow control determinismVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the complex flow control logic from the datamover protocol and relocates it to a dedicated flow control module or layer. This separation allows the core datamover protocol to remain simple and scalable, while the extracted flow control functionality provides deterministic buffer management. The flow control mechanism is taken out as an independent component that can be applied transparently to multiple protocols.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If connection termination is used when receive buffer is unavailable, then precise flow control is maintained for messages, but data loss and command loss occur

Engineering Contradiction:
Improveflow control precisionVSAvoiddata loss
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent implements beforehand cushioning by maintaining a pool of pre-allocated receive buffers and using flow control signals to prevent buffer exhaustion before it occurs. When buffer availability becomes critical, the flow control mechanism proactively slows or pauses incoming data streams, cushioning against the risk of buffer overflow. This prevents the need for connection termination while maintaining precise flow control, as buffers are protected from exhaustion in advance.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS8150996B2Method and apparatus for handling flow control for a data transfer
Publication Date: 2012.04.03 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8150996B2 patent drawing
  • US8150996B2 patent drawing
  • US8150996B2 patent drawing

AI summary

The disclosed embodiments relate to an apparatus and method for managing flow control of a data transfer. An apparatus according to embodiments of the present invention may comprise a first protocol associated with a plurality of receive buffers, a second protocol adapted to manage the plurality of receive buffers for the first protocol, and a third protocol that determines whether one of the plurality of receive buffers is available for a data packet and (a) if one of the plurality of receive buffers is available, permits an acknowledgement packet to be sent to a node that sent the data packet, and (b) if one of the plurality of receive buffers is unavailable, drops the data packet, notifies the second protocol regarding the unavailability of the plurality of receive buffers, and withholds the acknowledgement packet.