SWAN versus one-shot update One-shot update brings heavy packet drops 10% 10% 10% one-shot CCDF over 1% 1% 1% non-background links & updates one-shot 0.1% 0.1% 0.1% background 0.01% 0.01% 0.01% 0 0 0 100 100 100 200 200 200 300 300 300 Overloaded traffic [MB] [data-driven evaluation; s = 10% for non-background] Tuesday, August 13, 13
SWAN versus one-shot update SWAN 10% 10% 10% 10% non-background: congestion-free background: much better than one-shot CCDF over 1% 1% 1% 1% SWAN background links & updates one-shot 0.1% 0.1% 0.1% 0.1% background 0.01% 0.01% 0.01% 0.01% 0 0 0 0 100 100 100 100 200 200 200 200 300 300 300 300 Overloaded traffic [MB] [data-driven evaluation; s = 10% for non-background] Tuesday, August 13, 13
Challenge #3 Working with limited switch memory Tuesday, August 13, 13
Why does switch memory matter? Tuesday, August 13, 13
Why does switch memory matter? • 50 sites = 2,500 pairs • 3 priority classes How many • static k-shortest path routing we need? [by data-driven analysis] Tuesday, August 13, 13
Why does switch memory matter? • 50 sites = 2,500 pairs • 3 priority classes How many • static k-shortest path routing we need? [by data-driven analysis] it requires 20K rules to fully use network capacity Tuesday, August 13, 13
Why does switch memory matter? • 50 sites = 2,500 pairs • 3 priority classes How many • static k-shortest path routing we need? [by data-driven analysis] it requires 20K rules to fully use network capacity Commodity switches has limited memory: • today’s OpenFlow switch: 1-4K rules • next generation: 16K rules [Broadcom Trident II] Tuesday, August 13, 13
Hardness Finding the set of paths with a given size that carries the most traffic is NP-complete [Hartman et al., INFOCOM’12] Tuesday, August 13, 13
Heuristic: Dynamic path set adaptation Tuesday, August 13, 13
Heuristic: Dynamic path set adaptation Observation: • working path set ≪ total needed paths Tuesday, August 13, 13
Heuristic: Dynamic path set adaptation Observation: • working path set ≪ total needed paths Path selection: • important ones that carry more traffic and provide basic connectivity • 10x fewer rules than static k-shortest path routing Tuesday, August 13, 13
Heuristic: Dynamic path set adaptation Observation: • working path set ≪ total needed paths Path selection: • important ones that carry more traffic and provide basic connectivity • 10x fewer rules than static k-shortest path routing Rule update: • multi-stage rule update • with 10% memory slack, typically 2 stages needed Tuesday, August 13, 13
Overall workflow Compute resource allocation Tuesday, August 13, 13
Overall workflow if not Compute resource allocation if enough gain Compute rule update plan Tuesday, August 13, 13
Overall workflow if not Compute resource allocation if enough gain Compute rule update plan Compute congestion- free update plan Tuesday, August 13, 13
Overall workflow if not Compute resource allocation if enough gain Compute rule update plan Notify services with Compute congestion- decrease allocation free update plan Tuesday, August 13, 13
Overall workflow if not Compute resource allocation if enough gain Compute rule Update network update plan Notify services with Compute congestion- decrease allocation free update plan Tuesday, August 13, 13
Overall workflow if not Compute resource Notify services with allocation increase allocation if enough gain Compute rule Update network update plan Notify services with Compute congestion- decrease allocation free update plan Tuesday, August 13, 13
Evaluation platforms Prototype Cisco N3K • 5 DCs across 3 continents; Blade 10 switches Arista Server Tuesday, August 13, 13
Evaluation platforms Prototype Cisco N3K • 5 DCs across 3 continents; Blade 10 switches Arista Data-driven evaluation Server • 40+ DCs across 3 continents, 80+ switches • G-scale: 12 DCs, 24 switches Tuesday, August 13, 13
Prototype evaluation 1 Goodput 0.8 0.6 Background (normalized 0.4 Elastic Elastic & stacked) 0.2 Interactive 0 0 1 2 3 4 5 6 Time [minute] Traffic: ( ∀ DC-pair) 125 TCP flows per class Tuesday, August 13, 13
Prototype evaluation (impractical) dips due to rate adaptation optimal line 1 1 Goodput 0.8 0.8 0.6 0.6 Background Background (normalized 0.4 0.4 Elastic Elastic Elastic Elastic & stacked) 0.2 0.2 Interactive Interactive 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 Time [minute] Traffic: ( ∀ DC-pair) 125 TCP flows per class High utilization SWAN’s goodput: 98% of an optimal method Tuesday, August 13, 13
Prototype evaluation (impractical) dips due to rate adaptation optimal line 1 1 Goodput 0.8 0.8 0.6 0.6 Background Background (normalized 0.4 0.4 Elastic Elastic Elastic Elastic & stacked) 0.2 0.2 Interactive Interactive 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 Time [minute] Traffic: ( ∀ DC-pair) 125 TCP flows per class Flexible sharing High utilization Interactive protected; SWAN’s goodput: 98% of an optimal method background rate-adapted Tuesday, August 13, 13
Data-driven evaluation of 40+ DCs 1 0.8 0.6 Goodput [versus optimal] 0.4 0.2 0 SWAN MPLS SWAN w/o Rate TE Control Tuesday, August 13, 13
Data-driven evaluation of 40+ DCs Near-optimal total goodput 99.0% 1 1 under a practical setting 0.8 0.8 0.6 0.6 Goodput [versus optimal] 0.4 0.4 0.2 0.2 0 0 SWAN SWAN MPLS MPLS SWAN SWAN w/o Rate w/o Rate TE TE Control Control Tuesday, August 13, 13
Data-driven evaluation of 40+ DCs SWAN carries ~60% more 99.0% 1 1 1 traffic than MPLS-TE 0.8 0.8 0.8 58.3% 0.6 0.6 0.6 Goodput [versus optimal] 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0 SWAN SWAN SWAN MPLS MPLS MPLS SWAN SWAN SWAN w/o Rate w/o Rate w/o Rate TE TE TE Control Control Control Tuesday, August 13, 13
Data-driven evaluation of 40+ DCs SWAN w/o rate control still carries 20% more 99.0% 1 1 1 1 traffic than MPLS TE 0.8 0.8 0.8 0.8 70.3% 58.3% 0.6 0.6 0.6 0.6 Goodput [versus optimal] 0.4 0.4 0.4 0.4 0.2 0.2 0.2 0.2 0 0 0 0 SWAN SWAN SWAN SWAN MPLS MPLS MPLS MPLS SWAN SWAN SWAN SWAN w/o Rate w/o Rate w/o Rate w/o Rate TE TE TE TE Control Control Control Control Tuesday, August 13, 13
S WAN : S oftware-driven WAN Tuesday, August 13, 13
S WAN : S oftware-driven WAN ✔ High utilization and flexible sharing via global rate and route coordination Tuesday, August 13, 13
S WAN : S oftware-driven WAN ✔ High utilization and flexible sharing via global rate and route coordination ✔ Scalable allocation via approximated max-min fairness Tuesday, August 13, 13
S WAN : S oftware-driven WAN ✔ High utilization and flexible sharing via global rate and route coordination ✔ Scalable allocation via approximated max-min fairness ✔ Congestion-free update in bounded stages Tuesday, August 13, 13
S WAN : S oftware-driven WAN ✔ High utilization and flexible sharing via global rate and route coordination ✔ Scalable allocation via approximated max-min fairness ✔ Congestion-free update in bounded stages ✔ Using commodity switches with limited memory Tuesday, August 13, 13
Conclusion Achieving high utilization itself is easy, but coupling it with flexible sharing and change management is hard Tuesday, August 13, 13
Conclusion Achieving high utilization itself is easy, but coupling it with flexible sharing and change management is hard Approximating max-min fairness with low computational time Tuesday, August 13, 13
Conclusion Achieving high utilization itself is easy, but coupling it with flexible sharing and change management is hard Approximating max-min Keeping scratch capacity of fairness with low links and switch memory to computational time enable quick transitions Tuesday, August 13, 13
Thanks! on the job market! Chi-Yao Hong (UIUC) Srikanth Kandula Ratul Mahajan Ming Zhang Vijay Gill Mohan Nanduri Roger Wattenhofer Microsoft Tuesday, August 13, 13
SWAN versus B4 SWAN B4 high utilization yes yes scalable rate and route bounded heuristic computation error in bounded congestion-free update no steps using commodity switches with limited # forwarding yes no rules Tuesday, August 13, 13
Demo Video: SWAN achieves high utilization Tuesday, August 13, 13
Demo Video: SWAN provides flexible sharing Tuesday, August 13, 13
Failure handling Link and switch failures • Network agent notifies SWAN controller • SWAN controller performs one-time global recomputation Controller crashes • Run stateless backup instances • During the recovery, data plane will still operate Controller bugs • Work in progress Tuesday, August 13, 13
Demo Video: SWAN handles link failures gracefully Tuesday, August 13, 13
SWAN controller Global allocation at {SrcDC, DstDC, ServicePriority}-level • support a few priorities (e.g., background < elastic < interactive) • map flows to priority queues at switches (via DSCP bits) 30% Label-based forwarding (“tunnels”) • by tagging VLAN IDs 50% • SWAN controller globally computes Src Dst how to split traffic at ingress switches 20% Tuesday, August 13, 13
Link-level fairness != network-wide fairness Link-level Network-wide 2/3 1/2 S 1 D 1 S 1 D 1 1/3 1/2 S 2 D 2 S 2 D 2 1/3 1/2 S 3 D 3 S 3 D 3 2/3 1/2 Tuesday, August 13, 13
Time for network update Tuesday, August 13, 13
How much stretch capacity is needed? max steps 99th pctl. goodput s 50% 1 1 79% 30% 3 91% 2 > 10% 9 100% 3 ✔ >> ∞ 0% 6 100% >> [data-driven evaluation] Tuesday, August 13, 13
Our heuristic: dynamic path selection if can fit in memory Solve rate fin. allocation if not Greedily select Solve again with important paths selected paths Using 10x fewer paths than static k-shortest path routing Tuesday, August 13, 13
Rule update with memory constraints Option #1: Fully utilize all the switch memory ? Rule update may old new rules rules disrupt traffic switch memory Tuesday, August 13, 13
Recommend
More recommend