Patent ID: 7110411

Claim:
A method of scheduling access to a common resource for a plurality of objects queued in a plurality of connection queues during a plurality of serving cycles, each serving cycle comprising a plurality of serving values, said method comprising: maintaining a serving counter configured to cycle through the serving values of the serving cycle; maintaining a scheduling queue set, the scheduling queue set comprising a plurality N of scheduling queues Q(N−1) through Q( 0 ); assigning a scheduling weight to each scheduling queue Q(k) of the scheduling queue set; associating each serving value with a scheduling queue in a manner proportional to the scheduling weights assigned to the scheduling queues; for each connection queue CQ(i), (1) assigning a connection weight W i thereto that is representative of a desired amount of service to be allotted to connection queue CQ(i) during each serving cycle; for each CQ(i) that is backlogged, maintaining a token T(i) associated therewith; storing each T(i) in a queue of the scheduling queue set at least partially as a function of (i) W i , and (ii) the scheduling weights assigned to the scheduling queues; for each serving value S of the serving counter, (1) selecting the scheduling queue associated therewith, and (2) for each T(i) stored in the selected scheduling queue, serving CQ(i) by (i) dequeuing an object therefrom and (ii) providing the dequeued object to the common resource.