QUIC Protocol Stack Worker Thread Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing implementation of the QUIC protocol stack in servers underutilizes multi-core CPU capabilities, leading to CPU core overload and a low number of concurrent connections due to the configuration of a single QUIC protocol stack for the server.

Innovation Solution

The method involves dividing server programs into multiple worker threads, with each thread having its own QUIC protocol stack, where a connection identifier is used to determine the corresponding worker thread for processing data packets, allowing each thread to independently process packets and utilize CPU cores effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single QUIC protocol stack is configured for the server, then the implementation is simple, but the multi-core characteristics of the CPU cannot be fully utilized and the number of concurrent connections is very low

Engineering Contradiction:
Improveprotocol stack configurationVSAvoidconcurrent connections
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the single QUIC protocol stack into multiple independent protocol stacks, with each stack running in a separate worker thread. This segmentation allows each protocol stack to handle different data packets concurrently, fully utilizing the multi-core characteristics of the CPU and significantly increasing the number of concurrent connections the server can handle.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If a single QUIC protocol stack is configured for the server, then the system structure is simple, but certain cores of the CPU are overloaded

Engineering Contradiction:
Improvesystem structureVSAvoidCPU core load balance
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments the processing workload by creating multiple worker threads, each with its own QUIC protocol stack running on different CPU cores. This distribution prevents any single core from becoming overloaded, as each core handles a subset of the total data packet processing load, improving load balance and system reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic load distribution by allowing worker threads to be scheduled across multiple CPU cores based on system conditions. The connection identifier-based routing dynamically directs data packets to appropriate worker threads, ensuring balanced utilization of available CPU resources and preventing core overload.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If all data is processed by a single QUIC protocol stack, then the implementation is straightforward, but the number of concurrent connections is very low

Engineering Contradiction:
Improveimplementation simplicityVSAvoidconcurrent connections
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent divides the data processing workload by creating multiple worker threads, each with its own QUIC protocol stack. Data packets are segmented and routed to different worker threads based on connection identifiers, allowing concurrent processing of multiple connections simultaneously. This maintains implementation simplicity through modular design while dramatically increasing concurrent connection capacity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11954530B2Method and system of processing data based on QUIC protocol stack, device and storage medium
Publication Date: 2024.04.09 SHANGHAI BILIBILI TECH CO LTD
  • US11954530B2 patent drawing
  • US11954530B2 patent drawing
  • US11954530B2 patent drawing

AI summary

The present disclosure provides a method of processing data based on QUIC protocol stack, the method including: obtaining a connection identifier of a data packet; determining a server program used for processing the data packet, wherein the server program comprises a plurality of worker threads, wherein QUIC protocol stacks run in the plurality of worker threads; determining a corresponding worker thread from the multiple worker threads based on the connection identifier; and distributing the data packet to the corresponding worker thread to make the QUIC protocol stack on the corresponding worker thread process the data packet. The disclosure further provides a system, a computing device and a computer-readable storage medium of processing data based on QUIC protocol stack.