Large-scale timer management
First Claim
1. A method comprising:
- storing, within a network device, a timing wheel data structure defining a plurality of slots, wherein the timing wheel data structure represents a span of time and the slots represent sequential time intervals;
during a first one of the time intervals, servicing up to a rate limit value of a plurality of timer events stored in a first one of the slots, wherein the rate limit value is less than a total number of the plurality of timer events stored in the first one of the time slots;
deferring at least one of the unserviced timer events from the first one of the slots to a second one of the slots that corresponds to a second one of the time intervals; and
during the second time interval, servicing at least one of the timer events deferred from the first one of the slots.
1 Assignment
0 Petitions
Accused Products
Abstract
In general, techniques are described for managing timers for large scale service statistics collection. For example, as described herein, a network device includes a timing wheel data structure defining a plurality of slots. A rate limiter selects up to a rate limit value of timer events stored in a first one of the slots, wherein the rate limit value is less than a total number of the plurality of timer events stored in the first one of the time slots. A timer service module services the selected timer events during the first time interval, wherein the timer service module defers at least one of the unserviced timer events from the first one of the slots to a second one of the slot. During a second time interval, the timer service module services at least one of the timer events deferred from the first one of the slots.
109 Citations
25 Claims
-
1. A method comprising:
-
storing, within a network device, a timing wheel data structure defining a plurality of slots, wherein the timing wheel data structure represents a span of time and the slots represent sequential time intervals; during a first one of the time intervals, servicing up to a rate limit value of a plurality of timer events stored in a first one of the slots, wherein the rate limit value is less than a total number of the plurality of timer events stored in the first one of the time slots; deferring at least one of the unserviced timer events from the first one of the slots to a second one of the slots that corresponds to a second one of the time intervals; and during the second time interval, servicing at least one of the timer events deferred from the first one of the slots. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A network device comprising:
-
a processor; a memory storing a timing wheel data structure defining a plurality of slots, wherein the timing wheel data structure represents a span of time and the slots represent sequential time intervals; a rate limiter executing on the processor to select up to a rate limit value of a plurality of timer events stored in a first one of the slots, wherein the rate limit value is less than a total number of the plurality of timer events stored in the first one of the time slots; and a timer service module executing on the processor to service the selected timer events during the first time interval, wherein the timer service module defers at least one of the unserviced timer events from the first one of the slots to a second one of the slots that corresponds to a second one of the time intervals, and wherein the timer service module, during the second time interval, services at least one of the timer events deferred from the first one of the slots. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A non-transitory computer-readable medium comprising instructions for causing a programmable processor to:
-
store, within a network device, a timing wheel data structure defining a plurality of slots, wherein the timing wheel data structure represents a span of time and the slots represent sequential time intervals; during a first one of the time intervals, service up to a rate limit value of a plurality of timer events stored in a first one of the slots, wherein the rate limit value is less than a total number of the plurality of timer events stored in the first one of the time slots; defer at least one of the unserviced timer events from the first one of the slots to a second one of the slots that corresponds to a second one of the time intervals; and during the second time interval, service at least one of the timer events deferred from the first one of the slots. - View Dependent Claims (25)
-
Specification