Network Protocol Resource Allocation via Parallel Accelerator Offloading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In clustered storage systems, network interface operations consume substantial processing resources, leading to bottlenecks, particularly due to shared system bus and memory constraints, which degrade performance when requests need to be redirected between nodes.
Innovation Solution
Offloading network interface operations to a parallel processing accelerator module that performs these operations on a 'network side' of the system bus, reducing the load on the processor and memory, and allocating dedicated resources for connections to avoid deadlocks and optimize resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If network interface operations are performed on the main processor, then protocol processing capability is improved, but system bus bottleneck and processing throughput deteriorate
Solution Approach 1:
The system segments processing functions by separating network interface operations from main processor tasks. The accelerator card handles network protocol processing independently, while the main processor focuses on storage operations, eliminating the bus bottleneck caused by centralized processor handling of all protocols.
Solution Approach 2:
An accelerator card serves as an intermediary device between the network interface and the main processor. It receives network packets, performs protocol processing, and forwards results to the main processor, reducing the main processor's burden and eliminating bus contention.
2Device complexity
If network interface operations share system bus and memory resources, then device complexity is reduced, but performance and resource availability deteriorate
Solution Approach 1:
The system divides memory resources into separate namespaces: accelerator card memory for network operations and main system memory for storage operations. This segmentation allows parallel access without contention, maintaining architectural simplicity while improving performance.
Solution Approach 2:
The accelerator card acts as an intermediary with its own dedicated memory space, reducing requests to the main system bus and memory. Only essential data transfers use the shared bus, minimizing contention while maintaining system simplicity.
3Adaptability or versatility
If requests are redirected between cluster nodes through the main processor, then network flexibility is improved, but system bus load and processing time deteriorate
Solution Approach 1:
The accelerator card performs preliminary processing of network requests, including protocol parsing and destination determination, before forwarding to the main processor. This preliminary action reduces the main processor's workload and accelerates request handling across cluster nodes.
Solution Approach 2:
The accelerator card serves as an intermediary that handles request redirection between cluster nodes without requiring main processor intervention for each redirect. It maintains routing flexibility while reducing processing time by handling redirects in hardware.
Data Source
AI summary
A system and method for offloading network processes from main processors of a storage system and performing them on parallel processing modules. Embodiments of the present invention allocate resources such as memory and/or buffers to particular connections between various storage operating system processes or between storage operating system processes and a network interface. Connections are identified by a connection identifier (CID) and are assigned particular buffers according to parameters such as buffer availability, connection priority, and/or maximum allocation thresholds. A connection associated with a CID is guaranteed access to a certain number of dedicated buffers. Deadlock is avoided even when an operating system process associated with a different CID attempts to exhaust available memory and/or buffers because such processes will only have access to their own allocated resources.


