Network Queue Slot Allocation for Large Request Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed computing systems face challenges in efficiently processing large requests without requiring all data to be buffered in memory, leading to potential memory shortages and unfair allocation of system resources, especially when handling large network packets.

Innovation Solution

Implementing a system with fixed-size memory and inter-communicating queues, where requests are processed in slots that are allocated and released sequentially, ensuring fairness by decomposing large requests into smaller ones and using back-pressure to manage resource allocation, allowing for self-regulation without dynamic memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all data is buffered in memory for processing large requests, then processing completeness is improved, but memory availability deteriorates

Engineering Contradiction:
Improveprocessing completenessVSAvoidmemory availability
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments large requests into smaller chunks that can be processed in fixed-size buffers. Instead of buffering entire large requests in memory, the system divides them into manageable pieces that fit within fixed buffer allocations, allowing processing to continue without requiring excessive memory resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces fixed-size buffers as intermediary storage between network input and processing. These buffers act as mediators that hold data temporarily without requiring dynamic memory allocation, enabling continuous processing while maintaining bounded memory usage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If dynamic memory allocation is used for processing requests, then resource flexibility is improved, but fairness in resource allocation deteriorates

Engineering Contradiction:
Improveresource flexibilityVSAvoidfairness in resource allocation
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements dynamic slot allocation within fixed-size buffers. While the overall buffer size remains fixed to ensure fairness, the allocation of slots within buffers can dynamically adjust to different request types and sizes, providing flexibility without compromising the fairness guarantees of fixed total memory usage.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter from dynamic total memory allocation to fixed memory allocation with dynamic internal slot management. This parameter change maintains fairness through fixed bounds while preserving flexibility through adaptive slot assignment based on request characteristics.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If fixed-size buffers are used for processing requests, then memory availability is improved, but processing throughput may deteriorate

Engineering Contradiction:
Improvememory availabilityVSAvoidprocessing throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent ensures continuous processing by implementing a slot allocation system that prevents buffer starvation. When slots are available in fixed-size buffers, processing continues without interruption. The system monitors buffer availability and maintains continuous useful action by processing requests as soon as slots become available, eliminating idle time while respecting fixed memory constraints.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10379750B2Processing large requests in data storage systems with limited/constant buffer sizes
Publication Date: 2019.08.13 SAP SE
  • US10379750B2 patent drawing
  • US10379750B2 patent drawing
  • US10379750B2 patent drawing

AI summary

An available receive slot of an incoming network queue can be allocated to a network packet of a request received at a computing node, and receipt of the network packet can be processed using the allocated receive slot. An available free I/O control block of a free I/O control block queue and an available request slot from a free request queue can be allocated to the network packet after completion of the receipt processing. The free I/O control block queue and free request queue respectively have a same number of I/O queue blocks and request slots as the incoming network queue has receive slots. An I/O task required for the network packet can be completed using the allocated I/O control block, and an available send slot of an outgoing network queue can be allocated to send a reply to a client machine from which the request was received.