User-Level TCP Stack Poll Cache for Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems, existing protocols like TCP/IP face inefficiencies in handling incoming data, particularly due to high processing overheads and lock contention when validating data for poll() calls, leading to delayed responses and resource bottlenecks.

Innovation Solution

A data processing system is designed with a user-level TCP stack that intercepts select() calls, identifies only TCP file descriptors, and processes data only for active connections, using a poll cache to reduce overhead by separating and prioritizing TCP descriptors, thereby optimizing data availability and transmission efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing protocols like TCP/IP process all incoming data for validation, then data integrity is ensured, but processing overhead and lock contention increase significantly

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the data processing workflow into distinct phases: initial data reception without full validation, poll() call handling with selective validation, and background validation processing. This segmentation allows the system to avoid processing overhead during poll() calls while ensuring data integrity through background validation, directly resolving the contradiction between reliability and processing complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pre-processing data during background operations before poll() calls are made. Data is received and stored in buffers with minimal validation initially, then validated in advance during background processing so that when poll() is called, the data is already ready for quick delivery. This eliminates the need for time-consuming validation during poll() handling.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If TCP stack validates data for every poll() call, then accurate data availability is determined, but response time increases due to processing delays

Engineering Contradiction:
Improvedata availability accuracyVSAvoidresponse time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs data validation and availability determination in advance during background processing operations. When data arrives, it is stored in buffers and validated beforehand, so that when a poll() call occurs, the system can immediately check pre-computed availability information without performing time-consuming validation during the poll() handling itself.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a mechanism to skip the validation step during poll() calls by using a two-phase approach: Phase 1 receives and stores data with minimal processing, and Phase 2 performs validation in the background. During poll() calls, the system rushes through to the availability check using pre-validated information, effectively skipping the time-consuming validation step that would normally be required.

Inventive Principle:
Principle #21Skipping (Rushing through)

3Productivity

If all file descriptors are processed equally in select() calls, then comprehensive data reception is achieved, but TCP descriptor processing overhead increases

Engineering Contradiction:
Improvedata reception completenessVSAvoiddescriptor processing overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments file descriptors into two distinct categories: TCP file descriptors and non-TCP file descriptors. This segmentation is implemented through separate data structures and processing paths. TCP descriptors are handled by a specialized TCP stack with optimized processing, while non-TCP descriptors are handled by the traditional select() mechanism. This allows the system to process only relevant TCP descriptors through the optimized path, reducing overall processing overhead while maintaining comprehensive data reception.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by providing specialized handling for TCP file descriptors versus generic handling for other descriptors. The TCP stack implements descriptor-specific optimizations including a poll cache that tracks TCP descriptor states separately, allowing the system to apply different processing qualities to different descriptor types based on their specific requirements.

Inventive Principle:
Principle #3Local quality

4Productivity

If background processing is used for inactive sockets, then resource utilization improves, but data transmission latency may increase

Engineering Contradiction:
Improveresource utilizationVSAvoiddata transmission latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic processing mode switching based on socket activity state. Active sockets with pending data receive immediate processing and validation, while inactive sockets are processed in the background. The system dynamically adjusts the processing priority and timing based on the socket's current state, ensuring that latency-sensitive operations are handled promptly while resource utilization is optimized through background processing of less time-critical tasks.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11210148B2Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
Publication Date: 2021.12.28 XILINX INC
  • US11210148B2 patent drawing
  • US11210148B2 patent drawing
  • US11210148B2 patent drawing

AI summary

A data processing system arranged for receiving over a network, according to a data transfer protocol, data directed to any of a plurality of destination identities, the data processing system comprising: data storage for storing data received over the network; and a first processing arrangement for performing processing in accordance with the data transfer protocol on received data in the data storage, for making the received data available to respective destination identities; and a response former arranged for: receiving a message requesting a response indicating the availability of received data to each of a group of destination identities; and forming such a response; wherein the system is arranged to, in dependence on receiving the said message.