37
Incremental Consistent Updates Naga Praveen Katta Jennifer Rexford, David Walker Princeton University

Incremental Consistent Updates

  • Upload
    guri

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

Incremental Consistent Updates. Naga Praveen Katta Jennifer Rexford, David Walker Princeton University. Network Policy. Policy : C ollection of Openflow rules in the entire network. === === ===. === === ===. === === ===. 2. 1. 1. 1. 2. 2. 1. 2. === === ===. - PowerPoint PPT Presentation

Citation preview

Page 1: Incremental Consistent Updates

Incremental Consistent Updates

Naga Praveen KattaJennifer Rexford, David Walker

Princeton University

Page 2: Incremental Consistent Updates

2

• Policy : Collection of Openflow rules in the entire network

Network Policy

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 3: Incremental Consistent Updates

3

• From old policy

Policy Update

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 4: Incremental Consistent Updates

4

• From old policy to new policy

Policy Update

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 5: Incremental Consistent Updates

5

Inconsistent policy during transition

1

2

1

2

12

1

2

=========

=========

=========

=========

======

===

=========

======

Page 6: Incremental Consistent Updates

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

7

Both old and new policy on the network

1

2

1

2

12

1

2

Page 8: Incremental Consistent Updates

8

100% space overhead in intermediate steps

1

2

1

2

12

1

2

Page 9: Incremental Consistent Updates

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

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

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

12

Update the policy slice by slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 13: Incremental Consistent Updates

13

Update the policy slice by slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 14: Incremental Consistent Updates

14

Update the policy slice by slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 15: Incremental Consistent Updates

15

Update the policy slice by slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 16: Incremental Consistent Updates

16

Update the policy slice by slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 17: Incremental Consistent Updates

17

Update the policy slice by slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 18: Incremental Consistent Updates

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

1. Computing a slice for a given predicate

19

Collect matching rules from all switches?

Page 20: Incremental Consistent Updates

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

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

22

Compute policy slice using symbolic execution

1

2

1

2

12

1

2

Page 23: Incremental Consistent Updates

23

Compute policy slice using symbolic execution

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 24: Incremental Consistent Updates

24

Similarly compute the old slice

1

2

1

2

12

1

2

=========

=========

=========

=========

Page 25: Incremental Consistent Updates

25

2. Update policy slice – Add the new slice

1

2

1

2

12

1

2

=========

=========

=========

=========

===

===

===

===

Page 26: Incremental Consistent Updates

26

Then remove the old slice?

1

2

1

2

12

1

2

=========

=========

=========

=========

===

===

===

===

Page 27: Incremental Consistent Updates

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

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

29

Optimal order of updates• How many slices in total?• Which predicates in which slice?

3. Choosing the predicates?

Page 30: Incremental Consistent Updates

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

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

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

33

Overhead decreases significantly with increased rounds

Spac

e O

verh

ead

(%)

Consistent Updates

Total number of slices

Page 34: Incremental Consistent Updates

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

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

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

Page 37: Incremental Consistent Updates

Questions?

Naga Praveen [email protected]