User-Level TCP Stack Poll Cache for Latency Reduction
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Productivity
If all file descriptors are processed equally in select() calls, then comprehensive data reception is achieved, but TCP descriptor processing overhead increases
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.
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.
4Productivity
If background processing is used for inactive sockets, then resource utilization improves, but data transmission latency may increase
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.
Data Source
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.


