Deficit Round Robin Scheduler
Deficit Round Robin Scheduler. Outline. Introduction Ordinary Problems Deficit Round Robin Latency of DRR Improvement of latencies. Introduction. Implementation complexity is low Bandwidth guarantees are still robust
Deficit Round Robin Scheduler
E N D
Presentation Transcript
Outline • Introduction • Ordinary Problems • Deficit Round Robin • Latency of DRR • Improvement of latencies
Introduction • Implementation complexity is low • Bandwidth guarantees are still robust • Appealing whenever the flows to be scheduled have no stringent delay requirements.
Ordinary Problems • Not fair, if node A,B,C,D does not discriminate flows, and so give serve to source flows by half • F1 gets 1/8 • F2 gets 1/8 • F3 gets 1/4 • F4 gets 1/2
Basic Round Robin • Fair when all flow get same packet size • Unfair when different flows with different packet sizes
Deficit Round Robin • Add quantum size to Deficit counter of corresponding flow • Process the first job of flow and minus job count from counter • Serve other flows if current counter is not enough for next job • Set counter to zero if job is all done in a flow • Maintain a link list of active flows to prevent scan to inactive flows
Deficit Round Robin Flow 1 Round Robin List head Flow 2 Flow 3 Flow 4
Demers-Keshav-Shenker bound • Let packet p of flow i arrive with s bits, and other flows have no tasks • Uses bit-by-bit round robin • Assume there is no more than n active flows in any time • Suppose B is bandwidth of output line (bit/s) • The latency bound is about n*s/B n:number of flows, s=packet size, B:output speed
Latency of DRR • Reducing quantum size does not help improve the worst-case latency Solution: use separate fair queuing algorithm
Improvement of latencies • Define two classes of flows: • latency critical • best effort • Latency critical must contract send no more than x bytes in some period T • If a latency critical flow f meet the contract, put the flow in the head of round-robin list
Improvement of latencies • Define a state bit for flows, and a timer with countdown time T • Set when a packet is arrived • Cleared if the timer expires • Reset timer to T if a packet arrives • If a packet arrive and the bit is already set, put the flow to the end of the round-robin list (move to best-effort class)
Improvement of latencies • Delayed by n’ is number of latency critical flows MAX is max bit length of package in list B is speed of output line s is size of current package • Only delayed by other latency critical flows • Better than DKS bound