Deficit round robin

From Wikipedia, the free encyclopedia
  (Redirected from Deficit weighted round robin)
Jump to: navigation, search
"DWRR" redirects here. For the radio station in Philippines, see DWRR-FM.

Deficit Round Robin (DRR), also Deficit Weighted Round Robin (DWRR), is a scheduling algorithm for the network scheduler. DRR is a modified weighted round robin and was proposed by M. Shreedhar and G. Varghese in 1995.[1] It can handle packets of variable size without knowing their mean size. A maximum packet size number is subtracted from the packet length, and packets that exceed that number are held back until the next visit of the scheduler.

WRR serves every non-empty queue whereas DRR serves packets at the head of every non-empty queue whose deficit counter is greater than the packet's size at the head of the queue (HoQ). If the deficit counter is lower, then the queue is skipped (HoQ packet is not served) and its credit is increased by some given value called quantum. This increased value is used to calculate the deficit counter the next time around when the scheduler examines this queue for serving its head-of-line packet. If the queue is served, then the Credit is decremented by the size of packet being served.

Compared with Fair queueing (FQ) scheduler that has complexity of O(log(n)) (n is the number of active flows), the complexity of DRR is O(1).

The major advantage of this method of scheduling is that it does not require the size of the incoming packets on the different links to be known to the scheduler, as opposed to a simpler weighted round robin scheduling.

Implementations[edit]

An implementation of the deficit round robin algorithm was written by Patrick McHardy for the Linux kernel[2] and published under the GNU General Public License.

References[edit]

  1. ^ Shreedhar, M.; Varghese,G. (October 1995). "Efficient fair queueing using deficit round robin". ACM SIGCOMM Computer Communication Review 25 (4): 231. doi:10.1145/217391.217453. ISSN 0146-4833. 
  2. ^ "DRR Linux kernel network scheduler module". kernel.org. Retrieved 2013-09-07. 

External links[edit]