Multiple Granularity Timing Wheels for Packet Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Scheduling and shaping packets for multiple flows in network applications, such as video streams, is processor-intensive, reducing server capacity due to the need for precise packet transmission timing and hierarchical aggregation, which existing methods like hierarchical timing wheels struggle to manage efficiently.
Innovation Solution
Implementing multiple granularity timing wheels with coarse and fine grain slots, allowing packets to be allocated based on transmit time, with coarse grain slots reused for packets further in the future, reducing the number of time slots needed and offloading processor-intensive tasks to a network interface device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If hierarchical timing wheels are used for precise packet shaping across multiple flows and hierarchical aggregation stages, then packet transmission timing precision is improved, but processor cycle consumption increases
Solution Approach 1:
The timing wheel is segmented into multiple granularity levels (coarse-grained and fine-grained slots). Coarse-grained slots handle packet scheduling at higher time intervals, while fine-grained slots provide precise timing control for packets requiring strict temporal adherence. This segmentation allows the system to achieve precise packet shaping without requiring all timing operations to use the most resource-intensive fine-grained approach, thereby reducing overall processor cycle consumption while maintaining timing precision where needed.
2Adaptability or versatility
If multiple hierarchical aggregation stages with parallel shaping are implemented, then packet shaping capability is improved, but device complexity increases
Solution Approach 1:
The timing wheel structure implements a nested hierarchy where fine-grained timing slots are contained within coarse-grained time intervals. Each coarse-grained slot can contain multiple fine-grained slots, creating a nested structure that enables hierarchical aggregation. This nesting allows packets to be shaped at multiple levels of granularity simultaneously, providing versatile packet shaping capability while organizing the complexity into a manageable hierarchical framework rather than a flat complex structure.
Solution Approach 2:
The scheduling system dynamically selects between coarse-grained and fine-grained timing slots based on packet characteristics and QoS requirements. Not all packets require fine-grained timing control, so the system adapts its behavior by using coarse-grained slots for less time-sensitive packets and reserving fine-grained slots for packets requiring precise timing. This dynamic approach enables versatile packet shaping across different scenarios while reducing the operational complexity of managing multiple hierarchical aggregation stages.
3Measurement precision
If fine-grained time slots are used for all packets, then transmission timing precision is improved, but memory utilization increases
Solution Approach 1:
The timing wheel assigns different quality levels (granularity) to different packets based on their specific requirements. Packets requiring high timing precision are placed in fine-grained slots, while packets with relaxed timing requirements are placed in coarse-grained slots. This local differentiation of quality ensures that memory resources are allocated efficiently - only the necessary fine-grained slots are created and maintained for packets that truly require them, rather than creating a complete fine-grained structure for all packets. This approach maintains transmission timing precision for critical packets while significantly reducing overall memory utilization.
Data Source
AI summary
Examples described herein relate to a network interface device comprising circuitry to cause transmission of packets based on transmission times and use of at least one of multiple time slot granular scheduling lists, wherein the multiple time slot granular scheduling lists comprise at least one list of a first time slot duration and at least one list of a second time slot duration and wherein the first time slot duration is different than the second time slot duration. In some examples, a minimum delay value of a list of the at least one list of a second time slot duration corresponds to a maximum delay value of a list of the at least one list of a first time slot duration. In some examples, the at least one list of a first time slot duration comprises a fine granularity list and the at least one list of a second time slot duration comprises a coarse granularity list.


