Dynamic ¡Scheduling ¡of ¡ Network ¡Updates ¡
Xin ¡Jin ¡
Hongqiang ¡Harry ¡Liu, ¡Rohan ¡Gandhi, ¡Srikanth ¡Kandula, ¡Ratul ¡Mahajan, ¡ Ming ¡Zhang, ¡Jennifer ¡Rexford, ¡Roger ¡WaHenhofer ¡
Dynamic Scheduling of Network Updates Xin Jin Hongqiang - - PowerPoint PPT Presentation
Dynamic Scheduling of Network Updates Xin Jin Hongqiang Harry Liu, Rohan Gandhi, Srikanth Kandula, Ratul Mahajan, Ming Zhang, Jennifer Rexford, Roger
Hongqiang ¡Harry ¡Liu, ¡Rohan ¡Gandhi, ¡Srikanth ¡Kandula, ¡Ratul ¡Mahajan, ¡ Ming ¡Zhang, ¡Jennifer ¡Rexford, ¡Roger ¡WaHenhofer ¡
1 ¡ Controller ¡
2 ¡
Network ¡ Controller ¡
3 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡
4 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡ A ¡ D ¡ C ¡ B ¡ E ¡ F4: ¡5 ¡ F1: ¡5 ¡ F3: ¡10 ¡ F2: ¡5 ¡
Transient ¡State ¡
5 ¡
F3 ¡ F4 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡A ¡
Target ¡State ¡ Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F4: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F3: ¡10 ¡ A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡
6 ¡
F3 ¡ F4 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡A ¡
7 ¡
>10x ¡
8 ¡
9 ¡
F3 ¡ F4 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡B ¡ F3 ¡ F4 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡A ¡ F1 ¡ F2 ¡ F3 ¡ F4 ¡ Time ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ F1 ¡ F2 ¡ F3 ¡ F4 ¡ Time ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ F1 ¡ F2 ¡ F3 ¡ F4 ¡ Time ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ F1 ¡ F2 ¡ F3 ¡ F4 ¡ Time ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡
Target ¡State ¡ Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F4: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F3: ¡10 ¡ A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡
10 ¡
F3 ¡ F4 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡B ¡ F3 ¡ F4 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡A ¡
Target ¡State ¡ Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F4: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F3: ¡10 ¡ A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F2: ¡5 ¡ F3: ¡10 ¡
F3 ¡ F4 ¡ F2 ¡ F1 ¡ Dynamic ¡ Plan ¡
Adapts ¡to ¡actual ¡condiZons! ¡
11 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
12 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡ F2: ¡5 ¡
F2 ¡
Deadlock ¡
13 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
F1 ¡
F1: ¡5 ¡
14 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F2: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
F1 ¡ F3 ¡
F1: ¡5 ¡ F3: ¡5 ¡
15 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
F1 ¡ F3 ¡ F2 ¡
Consistent ¡update ¡plan ¡
F2: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡
16 ¡
Dependency ¡Graph ¡Generator ¡ Update ¡Scheduler ¡ Network ¡ Current ¡ State ¡ Target ¡ State ¡ Consistency ¡ Property ¡ Encode ¡valid ¡orderings ¡ Determine ¡a ¡fast ¡order ¡
17 ¡
Dependency ¡Graph ¡Elements ¡
OperaZon ¡node ¡ Resource ¡node ¡(link ¡capacity, ¡switch ¡table ¡size) ¡
Node ¡ Edge ¡
Dependencies ¡between ¡nodes ¡ Path ¡node ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
18 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
19 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡ A-‑E: ¡5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
20 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ A-‑E: ¡5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡ F3: ¡5 ¡ F2: ¡5 ¡
21 ¡
A-‑E: ¡5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
22 ¡
A-‑E: ¡5 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
23 ¡
A-‑E: ¡5 ¡ 5 ¡ D-‑E: ¡0 ¡ 5 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
Target ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡ F2: ¡5 ¡
Current ¡State ¡
A ¡ D ¡ C ¡ B ¡ E ¡ F3: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F5: ¡10 ¡
– Tunnel-‑based ¡forwarding: ¡WANs ¡ – WCMP ¡forwarding: ¡data ¡center ¡networks ¡
– Loop ¡freedom ¡ – Blackhole ¡freedom ¡ – Packet ¡coherence ¡ – CongesZon ¡freedom ¡
24 ¡
25 ¡
Dependency ¡Graph ¡Generator ¡ Update ¡Scheduler ¡ Network ¡ Current ¡ State ¡ Target ¡ State ¡ Consistency ¡ Property ¡ Encode ¡valid ¡orderings ¡ Determine ¡a ¡fast ¡order ¡
26 ¡
A-‑E: ¡5 ¡ 5 ¡ D-‑E: ¡0 ¡ 5 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
27 ¡
A-‑E: ¡0 ¡ D-‑E: ¡0 ¡ 5 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
Deadlock! ¡
28 ¡
A-‑E: ¡0 ¡ 5 ¡ D-‑E: ¡0 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡
29 ¡
A-‑E: ¡0 ¡ 5 ¡ D-‑E: ¡5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F2 ¡
30 ¡
A-‑E: ¡0 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F2 ¡
31 ¡
A-‑E: ¡5 ¡ 5 ¡ Move ¡ F2 ¡
32 ¡
Move ¡ F2 ¡
Done! ¡
33 ¡
– Extension: ¡assign ¡larger ¡weight ¡to ¡operaZon ¡nodes ¡if ¡ we ¡know ¡in ¡advance ¡the ¡switch ¡is ¡slow ¡
34 ¡
A-‑B:5 ¡ CPL=3 ¡ C-‑D:0 ¡ 5 ¡ CPL=1 ¡ 5 ¡ 5 ¡ 5 ¡ 5 ¡ CPL=1 ¡ CPL=2 ¡ CPL=2 ¡ CPL=1 ¡
Move ¡ F4 ¡ Move ¡ F3 ¡ Move ¡ F2 ¡ Move ¡ F1 ¡
– Extension: ¡assign ¡larger ¡weight ¡to ¡operaZon ¡nodes ¡if ¡ we ¡know ¡in ¡advance ¡the ¡switch ¡is ¡slow ¡
35 ¡
A-‑B:0 ¡ CPL=3 ¡ C-‑D:0 ¡ 5 ¡ CPL=1 ¡ 5 ¡ 5 ¡ 5 ¡ CPL=1 ¡ CPL=2 ¡ CPL=2 ¡ CPL=1 ¡
Move ¡ F4 ¡ Move ¡ F3 ¡ Move ¡ F2 ¡ Move ¡ F1 ¡
– Consider ¡each ¡strongly ¡connected ¡ component ¡(SCC) ¡as ¡a ¡virtual ¡node ¡
36 ¡
CPL=1 ¡ CPL=3 ¡ weight ¡= ¡1 ¡ weight ¡= ¡2 ¡
– Weight ¡wi ¡of ¡SCC: ¡number ¡of ¡operaZon ¡nodes ¡
A-‑E: ¡5 ¡ 5 ¡ D-‑E: ¡0 ¡ 5 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡ Move ¡ F2 ¡
– Consider ¡each ¡strongly ¡connected ¡ component ¡(SCC) ¡as ¡a ¡virtual ¡node ¡
37 ¡
CPL=1 ¡ CPL=3 ¡ weight ¡= ¡1 ¡ weight ¡= ¡2 ¡
– Weight ¡wi ¡of ¡SCC: ¡number ¡of ¡operaZon ¡nodes ¡
A-‑E: ¡0 ¡ 5 ¡ D-‑E: ¡0 ¡ 5 ¡ 5 ¡ 5 ¡ Move ¡ F3 ¡ Move ¡ F1 ¡ Move ¡ F2 ¡ Move ¡ F2 ¡
38 ¡
0 ¡ 0.5 ¡ 1 ¡ 1.5 ¡ 2 ¡ 2.5 ¡ 3 ¡ 3.5 ¡ WAN ¡TE ¡ Data ¡Center ¡TE ¡ Update ¡Time ¡(second) ¡
50th ¡PercenZle ¡Update ¡Time ¡
OneShot ¡ Dionysus ¡ SWAN ¡
Not ¡congesZon-‑free ¡ CongesZon-‑free ¡ CongesZon-‑free ¡
39 ¡
Improve ¡50th ¡percenZle ¡update ¡speed ¡by ¡80% ¡ compared ¡to ¡staZc ¡scheduling ¡(SWAN), ¡close ¡to ¡OneShot ¡ 0 ¡ 0.5 ¡ 1 ¡ 1.5 ¡ 2 ¡ 2.5 ¡ 3 ¡ 3.5 ¡ WAN ¡TE ¡ Data ¡Center ¡TE ¡ Update ¡Time ¡(second) ¡
50th ¡PercenZle ¡Update ¡Time ¡
OneShot ¡ Dionysus ¡ SWAN ¡
Not ¡congesZon-‑free ¡ CongesZon-‑free ¡ CongesZon-‑free ¡
40 ¡
0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ OneShot ¡ Dionysus ¡ SWAN ¡ Link ¡OversubscripZon ¡(GB) ¡
99th ¡PercenZle ¡ Link ¡OversubscripZon ¡
0 ¡ 0.5 ¡ 1 ¡ 1.5 ¡ 2 ¡ 2.5 ¡ 3 ¡ OneShot ¡ Dionysus ¡ SWAN ¡ Update ¡Time ¡(second) ¡
99th ¡PercenZle ¡ Update ¡Time ¡
41 ¡
Reduce ¡99th ¡percenZle ¡link ¡oversubscripZon ¡by ¡ 40% ¡compared ¡to ¡staZc ¡scheduling ¡(SWAN) ¡ Improve ¡99th ¡percenZle ¡update ¡speed ¡by ¡ 80% ¡compared ¡to ¡staZc ¡scheduling ¡(SWAN) ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ OneShot ¡ Dionysus ¡ SWAN ¡ Link ¡OversubscripZon ¡(GB) ¡
99th ¡PercenZle ¡ Link ¡OversubscripZon ¡
0 ¡ 0.5 ¡ 1 ¡ 1.5 ¡ 2 ¡ 2.5 ¡ 3 ¡ OneShot ¡ Dionysus ¡ SWAN ¡ Update ¡Time ¡(second) ¡
99th ¡PercenZle ¡ Update ¡Time ¡
42 ¡
43 ¡