720 likes | 843 Views
Group Round Robin: Improving the Fairness and Complexity of Packet Scheduling. Bogdan Caprita, Jason Nieh, and Wong Chun Chan Columbia University. Hierarchical framework for proportional sharing of network links with good fairness and overhead. GRR.
E N D
Group Round Robin:Improving the Fairness and Complexity of Packet Scheduling Bogdan Caprita, Jason Nieh, and Wong Chun Chan Columbia University ANCS 2005
Hierarchical framework for proportional sharing of network links with good fairness and overhead GRR ANCS 2005
Hierarchical framework for proportional sharing of network links with good fairness and overhead Proportional sharing Related work GRR scheduling Results GRR ANCS 2005
Scheduling Time-multiplexing a shared resource among a set of competing entities ANCS 2005
Scheduling Time-multiplexing a shared link among a set of competing flows ANCS 2005
Scheduling Time-multiplexing a shared link among a set of competing clients ANCS 2005
Scheduling Time-multiplexing a shared link among a set of competing clients Goals: metric of interest (throughput, delay, fairness …) speed, simplicity ANCS 2005
Proportional Scheduling Allocate to each client resource share in proportion to its weight Goals: fairness: is the allocation really ~ weight? speed, simplicity ANCS 2005
Proportional Scheduling Allocate to each client resource time (WC) in proportion to its weight (φC) WC≈ (φC/ΦT)WT - - - - ANCS 2005
Proportional Scheduling Allocate to each client resource time (WC) in proportion to its weight (φC) WC≈ (φC/ΦT)WT - - - - Client work ANCS 2005
Proportional Scheduling Allocate to each client resource time (WC) in proportion to its weight (φC) WC≈ (φC/ΦT)WT - - - - Client weight ANCS 2005
Proportional Scheduling Allocate to each client resource time (WC) in proportion to its weight (φC) WC≈ (φC/ΦT)WT - - - - Total weight ANCS 2005
Proportional Scheduling Allocate to each client resource time (WC) in proportion to its weight (φC) WC≈ (φC/ΦT)WT - - - - Total work ANCS 2005
Proportional Scheduling Allocate to each client resource time (WC) in proportion to its weight (φC) WC≈ (φC/ΦT)WT Goals: fairness: is the allocation really ~ weight? Ideal: GPS (Parekh, Gallager) speed, simplicity ANCS 2005
Issues: skewed weights – unfair many clients – slow, complicated Proportional Scheduling ANCS 2005
Formalize: fairness service error EC=|WC – (φC/ΦT)WT| Issues: skewed weights – unfair many clients – slow, complicated Proportional Scheduling ANCS 2005
Issues: skewed weights – unfair many clients – slow, complicated Formalize: fairness service error EC=|WC – (φC/ΦT)WT| complexity running time / decision Proportional Scheduling ANCS 2005
Related Work Round-Robin Virtual Time ANCS 2005
Round Robin • Weighted Round Robin • Deficit Round Robin • Virtual Time Round Robin • Smoothed Round Robin • Stratified Round Robin Fast ( usually O(1) ), but unfair ( Ω(N) ) ANCS 2005
Virtual Time • Weighted Fair Queuing • Start-Time Fair Queuing • Self-Clocked Fair Queuing • Worst-case Fair Weighted Fair Queuing • Earliest Eligible Virtual Deadline First • Hierarchical Stride Slow (usually Ω(log N) ), but fair ( O(N), O(1) ) ANCS 2005
Hierarchical framework for proportional sharingof network links with good fairness and overhead Proportional sharing Related work GRR scheduling Results GRR ANCS 2005
GRR Scheduling • Grouping Strategy • Scheduling groups using intergroup scheduler • Scheduling clients within groups using intragroup scheduler ANCS 2005
GRR Scheduling Our approach: Exponential grouping by weight G = { C : 2σ≤φC < 2σ+1 } σG = “group order” 1 2,3 4..7 8..15 16..31 32..63 … σ=0 σ=1 σ=2 σ=3 σ=4 σ=5 number of groups: g = constant ANCS 2005
GRR Scheduling Our approach: Exponential grouping by weight G = { C : 2σ≤φC < 2σ+1 } σG = “group order” why? Decrease: number of schedulable entities (few groups) weight skew (clients within groups have similar weights) ANCS 2005
Grouping Strategy Example: C1C2 C3 C4C5 φ1=12 φ2=3 φ3=3 φ4=2φ5=4 ANCS 2005
Grouping Strategy Example: C1C2 C3 C4C5 φ1=12 φ2=3 φ3=3 φ4=2φ5=4 G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C2 C3 C4 C5 ANCS 2005
GRR Scheduling Data structures Group G: unordered list of clients group weight: Φ = ∑CG φC Group list: Φ1 , Φ2 , Φ3 ,… Φg g ≤ 32 ANCS 2005
GRR Scheduling Two-level scheduler 1. Intergroup scheduling 2. Intragroup scheduling ANCS 2005
GRR Scheduling Two-level scheduler 1. Intergroup scheduling idea: use an existing scheduler to schedule groups ANCS 2005
GRR Scheduling Examples (1 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 Φ 12 8 4 G1 G2 G3 ANCS 2005
GRR Scheduling Examples (1 - Intergroup): Φ 12 8 4 G1 G2 G3 ANCS 2005
GRR Scheduling Examples (1 - Intergroup): 12 8 4 G1 G2 G3 ANCS 2005
GRR Scheduling Examples (1 - Intergroup): 12 8 4 G1 G2 G3 ANCS 2005
GRR Scheduling Examples (1 - Intergroup): 12 8 4 G1 G2 G3 Scheduling algorithm ANCS 2005
GRR Scheduling Examples (1 - Intergroup): 12 8 4 G1 G2 G3 Scheduling algorithm WFQ HS SCFQ WF2Q SFQ SRR ANCS 2005
GRR Scheduling Examples (1 - Intergroup): 12 8 4 G1 G2 G3 Scheduling algorithm Schedule: G1 G2 G1 G1 G2 G3 G1 G2 G1 G1 G2 G3 ANCS 2005
GRR Scheduling Two-level scheduler 2. Intragroup scheduling idea: round robin with deficit tracking “current client” index i < |G| : if ( Di < 1 ) { i = i + 1; Di = Di + φC/2σ; } Di = Di – 1; ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C2 C3 C4 C5 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C2 C3 C4 C5 Deficit: 0 0 0 0 0 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C2 C3 C4 C5 Deficit: 0 0 0 0 0 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C2 C2 C3 C4 C5 Deficit: 0.5 0 0 0 0 C1 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C2 C2 C3 C4 C5 Deficit: 0.5 0.5 0 0 0 C1 C2 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C2 C2 C3 C4 C5 Deficit: 1 0.5 0 0 0 C1 C2 C1 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C2 C2 C3 C3 C4 C5 Deficit: 0 0.5 0 0 0 C1 C2 C1 C1 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C2 C2 C3 C3 C4 C5 C5 Deficit: 0 0.5 0.5 0 0 C1 C2 C1 C1 C3 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C1 C2 C2 C3 C3 C4 C5 C5 Deficit: 0 0.5 0.5 0 0 C1 C2 C1 C1 C3 C5 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C1 C2 C2 C3 C3 C4 C4 C5 C5 Deficit: 0.5 0.5 0.5 0 0 C1 C2 C1 C1 C3 C5 C1 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C1 C2 C2 C3 C3 C4 C5 C5 Deficit: 0.5 0.5 0.5 0 0 C1 C2 C1 C1 C3 C5 C1 C4 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C1 C2 C2 C3 C3 C4 C5 C5 Deficit: 1 0.5 0.5 0 0 C1 C2 C1 C1 C3 C5 C1 C4 C1 ANCS 2005
Intragroup Scheduling Examples (2 - Intergroup): G1={C1} Φ1=12; G2={C2, C3, C4} Φ1=8 ; G3={C5} Φ3=4 φ1=12 ;φ2=3, φ3=3, φ4=2;φ5=4 G1 G2 G3 C1 C1 C1 C2 C2 C3 C3 C4 C5 C5 Deficit: 0 0.5 0.5 0 0 C1 C2 C1 C1 C3 C5 C1 C4 C1 C1 ANCS 2005