Download - Incremental Consistent Updates
![Page 1: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/1.jpg)
Incremental Consistent Updates
Naga Praveen KattaJennifer Rexford, David Walker
Princeton University
![Page 2: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/2.jpg)
2
• Policy : Collection of Openflow rules in the entire network
Network Policy
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 3: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/3.jpg)
3
• From old policy
Policy Update
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 4: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/4.jpg)
4
• From old policy to new policy
Policy Update
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 5: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/5.jpg)
5
Inconsistent policy during transition
1
2
1
2
12
1
2
=========
=========
=========
=========
======
===
=========
======
![Page 6: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/6.jpg)
6
Inconsistent policy during transition
1
2
1
2
12
1
2
=========
=========
=========
=========
======
===
=========
======
Per Packet Consistency (Reitblatt et. al. SIGCOMM’12)
• A packet sees either exclusively the old policy or exclusively the new policy.
![Page 7: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/7.jpg)
7
Both old and new policy on the network
1
2
1
2
12
1
2
![Page 8: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/8.jpg)
8
100% space overhead in intermediate steps
1
2
1
2
12
1
2
![Page 9: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/9.jpg)
9
100% space overhead in intermediate steps
1
2
1
2
12
1
2
Problem Statement
• Can we do a consistent update with less space?
![Page 10: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/10.jpg)
10
Less space overhead but more update time Goals
• General : Works for any policy (with ternary matches)• Efficient : No packet-processing overhead on the controller
Trade Space for time
![Page 11: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/11.jpg)
11
Less space overhead but more update time Goals
• General : Works for any policy (with ternary matches)• Efficient : No packet-processing overhead on the controller
Trade Space for time
Divide entire update into multiple rounds
1. Each round is assigned a set of predicates (predicate : a symbolic ingress packet)
2. Each round updates policy slice for assigned predicates
Slice : rules effecting the packets of a predicate
![Page 12: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/12.jpg)
12
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 13: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/13.jpg)
13
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 14: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/14.jpg)
14
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 15: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/15.jpg)
15
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 16: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/16.jpg)
16
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 17: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/17.jpg)
17
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 18: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/18.jpg)
18
Update the policy slice by slice
1
2
1
2
12
1
2
=========
=========
=========
=========
Given a predicate, how do you compute the slice? How do you update the network with policy slices? How do you assign predicates to slices?
![Page 19: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/19.jpg)
1. Computing a slice for a given predicate
19
Collect matching rules from all switches?
![Page 20: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/20.jpg)
01->111101
Header Modifications
Multiple predicates match a single rule
Packets of predicate never reach a switch.
010101
01
Challenges in computing a slice
20
0*01
11
![Page 21: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/21.jpg)
21
Compute policy slice using symbolic execution
1
2
1
2
12
1
2
Similar to Header Space Analysis (NSDI 2012)
![Page 22: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/22.jpg)
22
Compute policy slice using symbolic execution
1
2
1
2
12
1
2
![Page 23: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/23.jpg)
23
Compute policy slice using symbolic execution
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 24: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/24.jpg)
24
Similarly compute the old slice
1
2
1
2
12
1
2
=========
=========
=========
=========
![Page 25: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/25.jpg)
25
2. Update policy slice – Add the new slice
1
2
1
2
12
1
2
=========
=========
=========
=========
===
===
===
===
![Page 26: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/26.jpg)
26
Then remove the old slice?
1
2
1
2
12
1
2
=========
=========
=========
=========
===
===
===
===
![Page 27: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/27.jpg)
27
• Cannot remove 1* rule till both 10 and 11 migrate
1
2
1
2
12
1
2
11 -> 2
10 -> 111 -> 2
1* -> 1
10 -> 2
Difficult with multiple dependent predicates
![Page 28: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/28.jpg)
28
• Cannot remove 1* rule till both 10 and 11 migrate
1
2
1
2
12
1
2
11 -> 2
00 -> 101 -> 2
0* -> 1
00 -> 2
Difficult with multiple dependent predicates
Keep track of all dependent predicates
• Add a new rule as soon as any new slice needs it• Delete an old rule as soon as no old slice needs it
![Page 29: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/29.jpg)
29
Optimal order of updates• How many slices in total?• Which predicates in which slice?
3. Choosing the predicates?
![Page 30: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/30.jpg)
30
Divide N ingress predicates into K ordered slices optimally• Avoid exponential preprocessing• Cannot consider slices in isolation
Choosing the predicates
![Page 31: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/31.jpg)
31
Divide N ingress predicates into K ordered slices optimally• Avoid exponential preprocessing• Cannot consider slices in isolation
Pose it as a Mixed Integer Program• Combine individual predicate symbolic analyses• Encode dependency counting
Choosing the predicates
Trade-off dimensions• Rule space overhead • Update time (# rounds/slices)• Traffic volume of migrated rules
![Page 32: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/32.jpg)
32
Fattree topology - 24 Switches, 576 hosts Load Balancer Policy
• Each client chooses server randomly• Packet modification at the ingress• Shortest path forwarding to servers
Optimization solver• Always within 1% in few (~5) seconds
Evaluation
![Page 33: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/33.jpg)
33
Overhead decreases significantly with increased rounds
Spac
e O
verh
ead
(%)
Consistent Updates
Total number of slices
![Page 34: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/34.jpg)
34
Minimizing update times finishes in just 9 slices
Switch space overhead capped at 5%
Number of slices updated Number of slices updated
![Page 35: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/35.jpg)
35
80% traffic migrates in slice 1 and 99% in 3 slices
Switch space overhead capped at 5%
Number of slices updated
![Page 36: Incremental Consistent Updates](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681622f550346895dd25e12/html5/thumbnails/36.jpg)
36
Policy abstractions come with a cost How to implement efficiently? Keeping the essence of abstraction
Optimizing consistent updates Slice by slice policy update Symbolic execution and MIP
reduction• Uses less rule space• Moves high volume flows early
Conclusion