Socket Management with Unique List for Reduced Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network systems experience increased latency with a growing number of network connections due to the inefficiency of busy-polling across multiple sockets, which becomes impractically inefficient as the number of sockets exceeds several hundred.

Innovation Solution

A system that manages sockets and associated device queues by employing a unique list to map sockets to active device queues, allowing for reduced latency busy-polling and limiting polling to only necessary queues, thereby decreasing latency and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If busy-polling is employed to reduce latency, then packet processing latency is reduced, but efficiency degrades linearly with the number of sockets

Engineering Contradiction:
Improvepacket processing latencyVSAvoidprocessing efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent segments the polling process by maintaining a unique list that maps device queues to sockets. Instead of polling all sockets, the system divides the polling task into individual queue checks based on the unique list, reducing the number of polling operations from O(n) to O(m) where m is the number of active queues and n is the total number of sockets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by polling only the subset of device queues that are currently active and have sockets assigned to them, rather than polling all possible queues. The unique list enables the system to perform exactly the necessary polling actions without excess operations on inactive queues.

Inventive Principle:
Principle #16Partial or excessive action

2Adaptability or versatility

If the number of sockets increases, then network connection capacity increases, but polling efficiency becomes impractically inefficient

Engineering Contradiction:
Improvenetwork connection capacityVSAvoidpolling efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The unique list segments the relationship between sockets and device queues, creating a direct mapping that allows the system to handle any number of sockets efficiently. Each entry in the unique list represents a specific queue-socket association, enabling scalable management regardless of the total socket count.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The unique list acts as an intermediary data structure between the socket layer and the device queue layer. It provides an efficient lookup mechanism that decouples the number of sockets from the polling complexity, allowing the system to scale network connections without proportionally increasing polling overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If generic stack processing is used, then throughput is optimized, but latency increases due to context switches

Engineering Contradiction:
ImprovethroughputVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces dynamic polling behavior where the system adapts its processing mode based on the state of the unique list and device queues. When packets are available in polled queues, the system processes them immediately without context switches, dynamically switching between interrupt-driven and polling modes to optimize for latency when needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10305813B2Socket management with reduced latency packet processing
Publication Date: 2019.05.28 INTEL CORP
  • US10305813B2 patent drawing
  • US10305813B2 patent drawing
  • US10305813B2 patent drawing

AI summary

Generally, this disclosure provides systems, methods and computer readable media for management of sockets and device queues for reduced latency packet processing. The method may include maintaining a unique-list comprising entries identifying device queues and an associated unique socket for each of the device queues, the unique socket selected from a plurality of sockets configured to receive packets; busy-polling the device queues on the unique-list; receiving a packet from one of the plurality of sockets; and updating the unique-list in response to detecting that the received packet was provided by an interrupt processing module. The updating may include identifying a device queue associated with the received packet; identifying a socket associated with the received packet; and if the identified device queue is not on one of the entries on the unique-list, creating a new entry on the unique-list, the new entry comprising the identified device queue and the identified socket.