A QoS scheduler, scheduling method, and computer program product are provided
for
implementing Quality-of-Service (QoS) scheduling with a cached status array. A
plurality of calendars are provided for scheduling the flows. An active flow indicator
is stored for each calendar entry in a calendar status array (CSA). A cache copy
subset of the active flow indicators from the calendar status array (CSA) is stored
in a cache. The calendar status array (CSA) is updated based upon a predefined
calendar range and resolution. The cache copy subset of the active flow indicators
from the calendar status array (CSA) is used to determine a given calendar for
servicing. The subset of the active flow indicators from the calendar status array
(CSA) is used to increment a current pointer (CP) by an identified number of positions
up to a current time (CT) value, where the identified number of positions is equal
to a variable number of inactive flow indicators up to the current time (CT) value
and the identified number of positions has a maximum value equal to a number of
entries in the cache.