200 likes | 549 Views
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
E N D
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