End-to-end broadcast flow control in switch fabric
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing flow control techniques in computer systems, such as those used in the Symmetrix data storage systems, are inefficient in managing message flow between endpoints, as they primarily focus on link-level control and do not adequately address buffer overruns, leading to increased overhead and resource utilization issues.
Innovation Solution
A method and computer program product that store flow control state information for each endpoint to determine available buffer space and send control messages (XOFF/XON) to regulate message flow, ensuring that endpoints are not overwhelmed, thereby preventing buffer overruns by implementing end-to-end flow control.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If link-level flow control is used to regulate message flow at the link level, then message flow between switch and endpoint is controlled, but buffer overruns still occur and overhead increases
Solution Approach 1:
The patent divides flow control into two distinct layers: link-level flow control (between switch and endpoint) and endpoint-level flow control (within the endpoint buffer management). This segmentation allows each layer to operate independently with optimized control mechanisms, preventing buffer overruns at the endpoint while reducing unnecessary link-level control overhead.
Solution Approach 2:
The patent introduces an intermediary buffer at the endpoint that acts as a mediator between incoming messages from the switch and the application processing. This intermediary buffer absorbs traffic fluctuations and prevents buffer overruns without requiring constant link-level flow control intervention, thereby reducing overhead.
2Productivity
If link-level flow control is implemented to manage message flow, then some buffer protection is provided, but global message flow optimization is not achieved
Solution Approach 1:
The patent implements feedback mechanisms at the endpoint level where the endpoint monitors its buffer status and sends flow control signals back to the switch fabric. This feedback loop enables dynamic adjustment of message flow based on actual endpoint buffer conditions, achieving both high productivity and reliable buffer overrun prevention.
Solution Approach 2:
The patent adds a new dimension of flow control by implementing endpoint-level control in addition to the existing link-level control. This multi-dimensional approach (link-level + endpoint-level) enables global optimization of message flow while maintaining local buffer protection, overcoming the limitations of single-level control.
3Reliability
If more buffer space is allocated to endpoints to prevent overruns, then buffer overrun risk decreases, but resource utilization efficiency deteriorates
Solution Approach 1:
The patent implements dynamic buffer management where the endpoint buffer allocation and flow control parameters are adjusted in real-time based on actual traffic conditions and application needs. This dynamic approach allows the system to maintain reliable buffer overrun prevention while optimizing resource utilization efficiency, avoiding the need for static over-provisioning of buffer space.
Data Source
AI summary
Described is an end-to-end broadcast-based messaging technique used in controlling message flow in a data storage system. Each node stores flow control state information about all the nodes which is used in determining whether to send a data transmission to a receiving node. The flow control state information includes an indicator as to whether each node is receiving incoming data transmissions. If a node is not receiving incoming data transmissions, the flow control state information also includes an associated expiration time. Data transmissions are resumed to a receiving node based on the earlier of a sending node determining that the expiration time has lapsed, or receiving a control message from the receiving node explicitly turning on data transmissions. Each node maintains and updates its local copy of the flow control state information in accordance with control messages sent by each node to turn on and off data transmissions. Each node sends out control messages in accordance with predetermined threshold levels taking into account hardware and/or software resources for message buffering.


