stateful chained network functions
play

Stateful Chained Network Functions Junaid Khalid W,G and Aditya - PowerPoint PPT Presentation

Correctness and Performance for Stateful Chained Network Functions Junaid Khalid W,G and Aditya Akella W 1 *This work does not have any affiliation with Google Network Function Virtualization (NFV) Hardware NF software NF over commodity


  1. CHC – State Externalization NF state is stored in an in-memory external state store (similar to statelessNF) 18

  2. CHC – State Externalization NF state is stored in an in-memory external state store (similar to statelessNF) • This ensures state availability and simplifies reasoning about state ownership and concurrency control across instances External store 18

  3. CHC – State Externalization NF state is stored in an in-memory external state store (similar to statelessNF) • This ensures state availability and simplifies reasoning about state ownership and concurrency control across instances External store Naively externalizing the state can degrade NF performance 18

  4. CHC CHC is a generic NFV framework to support all of these requirements without trading off correctness for performance or functionality CHC consist of three main building blocks 1. State store external to NF 2. NF state-aware state management algorithms 3. Metadata – logical clock and logs 19

  5. State Management Strategies State 20

  6. State Management Strategies State per-flow cross-flow 20

  7. State Management Strategies State per-flow cross-flow Any Instance-local caching w/ periodic nonblocking flush 20

  8. State Management Strategies State per-flow cross-flow Write rarely Any (read heavy) Instance-local caching w/ Instance-local caching periodic nonblocking flush w/ callbacks 20

  9. State Management Strategies State per-flow cross-flow Write rarely Write mostly Any (read heavy) Read rarely Instance-local caching w/ Instance-local caching periodic nonblocking flush w/ callbacks 20

  10. State Management Strategies State per-flow cross-flow Write rarely Write/read Write mostly Any (read heavy) Read rarely often Instance-local caching w/ Instance-local caching periodic nonblocking flush w/ callbacks 20

  11. State Management Strategies State per-flow cross-flow Write rarely Write/read Write mostly Any (read heavy) Read rarely often Instance-local caching w/ Operation offloading Instance-local caching periodic nonblocking flush w/ callbacks 20

  12. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf 21

  13. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Operation Description Increment/Decrement a Increment or decrement the value stored at key by the given value value Push/pop a value to/from Push or pop the value in/from the list stored at the given key list Compare and update Update the value, if the condition is true 21

  14. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Operation Description Increment/Decrement a Increment or decrement the value stored at key by the given value value Push/pop a value to/from Push or pop the value in/from the list stored at the given key list Compare and update Update the value, if the condition is true The datastore serializes operations issued by different instances for the same shared state object and applies them in the background 21

  15. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf 22

  16. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 22

  17. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 22

  18. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 22

  19. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 X++ 22

  20. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 X++ 22

  21. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 X++ X++ 22

  22. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf Without operation offload NF 1 Datastore NF 2 X=0 NF 1 X++ X++ X=2 22

  23. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf With operation offload Without operation offload NF 1 Datastore NF 2 NF 1 Datastore NF 2 X=0 X=0 NF 1 X++ X++ X=2 22

  24. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf With operation offload Without operation offload NF 1 Datastore NF 2 NF 1 Datastore NF 2 X=0 X=0 NF 1 X++ X++ X=2 22

  25. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf With operation offload Without operation offload NF 1 Datastore NF 2 NF 1 Datastore NF 2 X=0 X=0 NF 1 X++ X++ X=2 22

  26. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf With operation offload Without operation offload NF 1 Datastore NF 2 NF 1 Datastore NF 2 X=0 X=0 NF 1 X++ X++ X=2 22

  27. State Maintenance - Offloading Operation An NF instance can offload operations and instruct the datastore to perform them on its behalf With operation offload Without operation offload NF 1 Datastore NF 2 NF 1 Datastore NF 2 X=0 X=0 NF 1 X++ X++ X=2 X=2 22

  28. State Management Strategies State per-flow cross-flow Write rarely Write mostly Any (read heavy) Read rarely Instance-local caching w/ Instance-local caching periodic nonblocking flush w/ callbacks 23

  29. State Management Strategies State per-flow cross-flow Write rarely Write mostly Any (read heavy) Read rarely Instance-local caching w/ Instance-local caching Non-blocking periodic nonblocking flush w/ callbacks operation without caching 23

  30. State Management Strategies State per-flow cross-flow Write rarely Write/read Write mostly Any (read heavy) Read rarely often Instance-local caching w/ Instance-local caching Depends upon traffic Non-blocking periodic nonblocking flush w/ callbacks split. Cache, if split operation without allows; flush periodically caching 23

  31. CHC CHC is a generic NFV framework to support all of these requirements without trading off correctness for performance or functionality CHC consist of three main building blocks 1. State store external to NF 2. NF state-aware state management algorithms 3. Metadata – logical clock and logs 24

  32. Metadata CHC adds a “root splitter” at the entry of a chain that: Root splitter 25

  33. Metadata CHC adds a “root splitter” at the entry of a chain that: • Root splitter attaches a unique logical clock with each packet. Logical clock is used for duplication suppression, ordering, and traffic replay Adding logical clock Root splitter 25

  34. Metadata CHC adds a “root splitter” at the entry of a chain that: • Root splitter attaches a unique logical clock with each packet. Logical clock is used for duplication suppression, ordering, and traffic replay • It also logs all the in-transit packets Adding logical clock Packet logging Root splitter 25

  35. Metadata CHC adds a “root splitter” at the entry of a chain that: • Root splitter attaches a unique logical clock with each packet. Logical clock is used for duplication suppression, ordering, and traffic replay • It also logs all the in-transit packets CHC encodes state object’s ownership information and logical clock associated with state operations as metadata Adding State logical clock ownership info Packet logging Root splitter 25

  36. CHC – Elastic Scaling Root splitter Old instance 26

  37. CHC – Elastic Scaling • CHC marks the last packet going to the old instance and first packet going to the new instance Last pkt First pkt Root splitter Old instance 26

  38. CHC – Elastic Scaling • CHC marks the last packet going to the old instance and first packet going to the new instance • Ownership information encoded as metadata of state objects is used to ensure consistent handover of per-flow state Last pkt First pkt Root splitter Old instance 26

  39. CHC – Elastic Scaling • CHC marks the last packet going to the old instance and first packet going to the new instance • Ownership information encoded as metadata of state objects is used to ensure consistent handover of per-flow state • Cross-flow state does not require any special handling as operation offloading is used to update it Last pkt First pkt Root splitter Old instance 26

  40. CHC – Fault Tolerance CHC provides fault tolerance for: • NF instance • Root splitter • Datastore 27

  41. CHC – Fault Tolerance CHC provides fault tolerance for: • NF instance • Root splitter • Datastore 27

  42. CHC – Fault Tolerance NF instance failure recovery: 28

  43. CHC – Fault Tolerance NF instance failure recovery: • Failover instance takes over 28

  44. CHC – Fault Tolerance NF instance failure recovery: • Failover instance takes over • Datastore associates the failover instance ID with the relevant state 28

  45. CHC – Fault Tolerance NF instance failure recovery: • Failover instance takes over • Datastore associates the failover instance ID with the relevant state • Root replays the packet 28

  46. CHC – Fault Tolerance NF instance failure recovery: • Failover instance takes over • Datastore associates the failover instance ID with the relevant state • Root replays the packet 28

  47. CHC – Fault Tolerance NF instance failure recovery: • Failover instance takes over • Datastore associates the failover instance ID with the relevant state • Root replays the packet • Metadata is used to suppress duplicate state-update and processing 28

  48. CHC – Straggler Mitigation 29

  49. CHC – Straggler Mitigation • Metadata (logical clocks) is used to suppress duplicate state updates at the datastore and duplicate packets at downstream NFs 29

  50. CHC – Straggler Mitigation • Metadata (logical clocks) is used to suppress duplicate state updates at the datastore and duplicate packets at downstream NFs 29

  51. CHC – Straggler Mitigation • Metadata (logical clocks) is used to suppress duplicate state updates at the datastore and duplicate packets at downstream NFs state updates are suppressed suppressed 29

Recommend


More recommend