SLIDE 1 ETH Zurich – Distributed Computing – www.disco.ethz.ch
Don’t disturb my Flows: Consistent Migration of Flows in SDNs
Klaus-Tycho Förster Joint work with Sebastian Brandt, Laurent Vanbever, and Roger Wattenhofer
SLIDE 2
A Small Sample Network
SLIDE 3
Green wants to send as well
SLIDE 4
Congestion!
SLIDE 5
This would work
SLIDE 6
So lets go back
SLIDE 7
But Red is a bit Slow..
SLIDE 8
Congestion Again!
SLIDE 9 Appears in Practice
“some switches can ‘straggle,’ taking substantially more time than average (e.g., 10-100x) to apply an update” Jin et al., SIGCOMM 2014
SLIDE 10
So lets go Back …
SLIDE 11
First, Red switches
SLIDE 12
Then, Blue …
SLIDE 13
And then, Green …
SLIDE 14
Done
SLIDE 15
Consistent Migration of Flows
Introduced in SWAN (Hong et al., SIGCOMM 2013) Idea: Flows can be on the old or new route
For all edges: σ∀𝐺 max 𝐩𝐦𝐞, 𝐨𝐟𝐱 ≤ 𝑑𝑏𝑞𝑏𝑑𝑗𝑢𝑧
SLIDE 16 Consistent Migration of Flows
Introduced in SWAN (Hong et al., SIGCOMM 2013) Idea: Flows can be on the old or new route
For all edges: σ∀𝐺 max 𝐩𝐦𝐞, 𝐨𝐟𝐱 ≤ 𝑑𝑏𝑞𝑏𝑑𝑗𝑢𝑧 No ordering exists (2/3 + 2/3 > 1)
2/3 2/3
SLIDE 17 Consistent Migration of Flows
Approach of SWAN: use slack 𝑦 (i.e., %)
Here 𝑦 = 1/3 Move slack 𝑦 ⇛ 1/𝑦 − 1 staged partial moves
2/3 2/3
SLIDE 18 Consistent Migration of Flows
Approach of SWAN: use slack 𝑦 (i.e., %)
Here 𝑦 = 1/3 Move slack 𝑦 ⇛ 1/𝑦 − 1 staged partial moves Update 1 of 2
1/3 1/3
SLIDE 19 Consistent Migration of Flows
Approach of SWAN: use slack 𝑦 (i.e., %)
Here 𝑦 = 1/3 Move slack 𝑦 ⇛ 1/𝑦 − 1 staged partial moves Update 1 of 2
1/3 1/3
SLIDE 20 Consistent Migration of Flows
Approach of SWAN: use slack 𝑦 (i.e., %)
Here 𝑦 = 1/3 Move slack 𝑦 ⇛ 1/𝑦 − 1 staged partial moves Update 2 of 2
2/3 2/3
SLIDE 21 Consistent Migration of Flows
No slack on flow edges?
1 1
SLIDE 22
Consistent Migration of Flows
Alternate routes?
SLIDE 23 Consistent Migration of Flows
Think: variable swapping of 𝑐 &
- 1. 𝑦 ≔ 𝑐, 2. b ≔ , 3. ≔ 𝑦
SLIDE 24 Consistent Migration of Flows
Think: variable swapping of 𝑐 &
- 1. 𝑦 ≔ 𝑐, 2. b ≔ , 3. ≔ 𝑦
SLIDE 25 Consistent Migration of Flows
Think: variable swapping of 𝑐 &
- 1. 𝑦 ≔ 𝑐, 2. b ≔ , 3. ≔ 𝑦
SLIDE 26
Consistent Migration of Flows
SWAN: LP-approach with binary search 1 update? 2 updates? 4 updates? …
SLIDE 27
Consistent Migration of Flows
SWAN: LP-approach with binary search 1 update? 2 updates? 4 updates? … 𝜻
SLIDE 28
Consistent Migration of Flows
SWAN: LP-approach with binary search Θ 1/𝜁 updates 𝜻
SLIDE 29 Consistent Migration of Flows
Open problem: Can we decide in (polynomial) time?
“Halting Problem”
Flow migration LP
SLIDE 30
To Slack or not to Slack?
Slack of 𝑦 on all flow edges?
1/𝑦 − 1 updates
SLIDE 31
To Slack or not to Slack?
What if not?
Try to create slack
SLIDE 32
To Slack or not to Slack?
Combinatorial approach
Augmenting paths
SLIDE 33 Combinatorial Approach
Move single commodities at a time
𝑓
1 1
u v
SLIDE 34 Combinatorial Approach
Where to increase flow?
+ + + + + 𝑓 u v
SLIDE 35 Combinatorial Approach
Where to push back flow?
− − 𝑓 − − − − − u v
SLIDE 36 Combinatorial Approach
Resulting residual network
𝑓 u v
SLIDE 37 Combinatorial Approach
We found an augmenting path ⇒ create slack on 𝑓
𝑓 − u v
SLIDE 38
High-level Algorithm Idea
No slack on flow edges? Find augmenting paths
On both initial and desired state Success? Use SWAN method to migrate
Can’t create slack on some flow edge?
Consistent migration impossible By contradiction (else augmenting paths would create slack)
Runtime: 𝑃 𝐺𝑛³
(𝐺 being #commodities, 𝑛 being #edges)
SLIDE 39
Are we done?
Consistent Migration = Lossless Migration?
SLIDE 40 Moving Flows with High Latency
ping of new path ping of old path
SLIDE 41 Moving Flows with High Latency
ping of new path ping of old path
SLIDE 42
Moving Flows with High Latency
SLIDE 43 Moving Flows with High Latency
UDP TCP
SLIDE 44 Moving Flows with High Latency
packet loss equivalent to latency-Δ
SLIDE 45
Overview and Outlook
Consistent migration of flows
Decidable in polynomial time
Lossless migration
Fixed delays: NP-hard, Arbitrary delays: Polynomially decidable
Unsplittable/Integer flow migration: NP-hard Migrate to new demands
Single-dest: Polynomial #updates, Multi-Dest: Ongoing work
SLIDE 46 ETH Zurich – Distributed Computing – www.disco.ethz.ch
Don’t disturb my Flows: Consistent Migration of Flows in SDNs
Klaus-Tycho Förster Joint work with Sebastian Brandt, Laurent Vanbever, and Roger Wattenhofer