Dynamic ¡Scheduling ¡of ¡ Network ¡Updates ¡ Xin ¡Jin ¡ Hongqiang ¡Harry ¡Liu, ¡Rohan ¡Gandhi, ¡Srikanth ¡Kandula, ¡Ratul ¡Mahajan, ¡ Ming ¡Zhang, ¡Jennifer ¡Rexford, ¡Roger ¡WaHenhofer ¡
SDN: ¡Paradigm ¡ShiK ¡in ¡Networking ¡ • Direct, ¡centralized ¡updates ¡of ¡ Controller ¡ forwarding ¡rules ¡in ¡switches ¡ • Many ¡benefits ¡ – Traffic ¡engineering ¡ [B4, ¡SWAN] ¡ – Flow ¡scheduling ¡ [Hedera, ¡DevoFlow] ¡ – Access ¡control ¡ [Ethane, ¡vCRIB] ¡ – Device ¡power ¡management ¡ [ElasZcTree] ¡ 1 ¡
Network ¡Update ¡is ¡Challenging ¡ • Requirement ¡1: ¡fast ¡ – The ¡agility ¡of ¡control ¡loop ¡ • Requirement ¡2: ¡consistent ¡ – No ¡congesZon, ¡no ¡blackhole, ¡no ¡loop, ¡etc. ¡ Controller ¡ Network ¡ 2 ¡
What ¡is ¡Consistent ¡Network ¡Update ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F3: ¡10 ¡ F3: ¡10 ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F4: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ 3 ¡
What ¡is ¡Consistent ¡Network ¡Update ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F3: ¡10 ¡ F3: ¡10 ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F4: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ C ¡ A ¡ B ¡ F3: ¡10 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ Transient ¡State ¡ • Asynchronous ¡updates ¡can ¡cause ¡congesZon ¡ • Need ¡to ¡carefully ¡order ¡update ¡operaZons ¡ 4 ¡
ExisZng ¡SoluZons ¡are ¡Slow ¡ • ExisZng ¡soluZons ¡are ¡staZc ¡ [ConsistentUpdate’12, ¡SWAN’13, ¡zUpdate’13] ¡ – Pre-‑compute ¡an ¡order ¡for ¡update ¡operaZons ¡ F3 ¡ F2 ¡ StaZc ¡ Plan ¡A ¡ F4 ¡ F1 ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F3: ¡10 ¡ F3: ¡10 ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F4: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ 5 ¡
ExisZng ¡SoluZons ¡are ¡Slow ¡ • ExisZng ¡soluZons ¡are ¡staZc ¡ [ConsistentUpdate’12, ¡SWAN’13, ¡zUpdate’13] ¡ – Pre-‑compute ¡an ¡order ¡for ¡update ¡operaZons ¡ F3 ¡ F2 ¡ StaZc ¡ Plan ¡A ¡ F4 ¡ F1 ¡ ¡ • Downside: ¡Do ¡not ¡adapt ¡to ¡runZme ¡condiZons ¡ – Slow ¡in ¡face ¡of ¡highly ¡variable ¡operaZon ¡compleZon ¡Zme ¡ 6 ¡
OperaZon ¡CompleZon ¡Times ¡are ¡Highly ¡Variable ¡ • Measurement ¡on ¡commodity ¡switches ¡ >10x ¡ 7 ¡
OperaZon ¡CompleZon ¡Times ¡are ¡Highly ¡Variable ¡ • Measurement ¡on ¡commodity ¡switches ¡ ¡ • ContribuZng ¡factors ¡ – Control-‑plane ¡load ¡ – Number ¡of ¡rules ¡ – Priority ¡of ¡rules ¡ – Type ¡of ¡operaZons ¡ (insert ¡vs. ¡modify) ¡ 8 ¡
StaZc ¡Schedules ¡can ¡be ¡Slow ¡ F1 ¡ F1 ¡ F3 ¡ F2 ¡ StaZc ¡ F2 ¡ F2 ¡ Plan ¡A ¡ F3 ¡ F3 ¡ F4 ¡ F1 ¡ F4 ¡ F4 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ Time ¡ Time ¡ F1 ¡ F1 ¡ F2 ¡ F2 ¡ F3 ¡ F2 ¡ F1 ¡ StaZc ¡ F3 ¡ F3 ¡ Plan ¡B ¡ F4 ¡ F4 ¡ F4 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ Time ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ Time ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F3: ¡10 ¡ F3: ¡10 ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ No ¡staZc ¡schedule ¡is ¡a ¡clear ¡winner ¡under ¡all ¡condiZons! ¡ F1: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F4: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ 9 ¡
Dynamic ¡Schedules ¡are ¡AdapZve ¡and ¡Fast ¡ F3 ¡ F2 ¡ StaZc ¡ Plan ¡A ¡ F4 ¡ F1 ¡ F3 ¡ F2 ¡ Dynamic ¡ F1 ¡ Plan ¡ F4 ¡ Adapts ¡to ¡actual ¡condiZons! ¡ F3 ¡ F2 ¡ F1 ¡ StaZc ¡ Plan ¡B ¡ F4 ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F3: ¡10 ¡ F3: ¡10 ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ No ¡staZc ¡schedule ¡is ¡a ¡clear ¡winner ¡under ¡all ¡condiZons! ¡ F1: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F4: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ 10 ¡
Challenges ¡of ¡Dynamic ¡Update ¡Scheduling ¡ • ExponenZal ¡number ¡of ¡orderings ¡ • Cannot ¡completely ¡avoid ¡planning ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ C ¡ A ¡ A ¡ B ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ D ¡ E ¡ E ¡ F3: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ 11 ¡
Challenges ¡of ¡Dynamic ¡Update ¡Scheduling ¡ • ExponenZal ¡number ¡of ¡orderings ¡ • Cannot ¡completely ¡avoid ¡planning ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ C ¡ A ¡ A ¡ B ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ D ¡ E ¡ E ¡ F3: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ F2 ¡ Deadlock ¡ 12 ¡
Challenges ¡of ¡Dynamic ¡Update ¡Scheduling ¡ • ExponenZal ¡number ¡of ¡orderings ¡ • Cannot ¡completely ¡avoid ¡planning ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ C ¡ A ¡ A ¡ B ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ D ¡ E ¡ E ¡ F3: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ F1 ¡ 13 ¡
Challenges ¡of ¡Dynamic ¡Update ¡Scheduling ¡ • ExponenZal ¡number ¡of ¡orderings ¡ • Cannot ¡completely ¡avoid ¡planning ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ C ¡ A ¡ A ¡ B ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ D ¡ E ¡ E ¡ F3: ¡5 ¡ F3: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ F1 ¡ F3 ¡ 14 ¡
Challenges ¡of ¡Dynamic ¡Update ¡Scheduling ¡ • ExponenZal ¡number ¡of ¡orderings ¡ • Cannot ¡completely ¡avoid ¡planning ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ C ¡ A ¡ A ¡ B ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ D ¡ E ¡ E ¡ F3: ¡5 ¡ F3: ¡5 ¡ Target ¡State ¡ Current ¡State ¡ F1 ¡ F3 ¡ F2 ¡ Consistent ¡update ¡plan ¡ 15 ¡
Dionysus ¡Pipeline ¡ Current ¡ Target ¡ Consistency ¡ State ¡ State ¡ Property ¡ Dependency ¡Graph ¡Generator ¡ Encode ¡valid ¡orderings ¡ Determine ¡a ¡fast ¡order ¡ Update ¡Scheduler ¡ Network ¡ 16 ¡
Dependency ¡Graph ¡GeneraZon ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F3: ¡5 ¡ Current ¡State ¡ Target ¡State ¡ Dependency ¡Graph ¡Elements ¡ OperaZon ¡node ¡ Node ¡ Resource ¡node ¡(link ¡capacity, ¡switch ¡table ¡size) ¡ Path ¡node ¡ Edge ¡ Dependencies ¡between ¡nodes ¡ 17 ¡
Dependency ¡Graph ¡GeneraZon ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F3: ¡5 ¡ Current ¡State ¡ Target ¡State ¡ Move ¡ F2 ¡ Move ¡ Move ¡ F1 ¡ F3 ¡ 18 ¡
Dependency ¡Graph ¡GeneraZon ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F3: ¡5 ¡ Current ¡State ¡ Target ¡State ¡ Move ¡ F2 ¡ A-‑E: ¡5 ¡ Move ¡ Move ¡ F1 ¡ F3 ¡ 19 ¡
Dependency ¡Graph ¡GeneraZon ¡ F5: ¡10 ¡ F5: ¡10 ¡ C ¡ A ¡ B ¡ C ¡ A ¡ B ¡ F2: ¡5 ¡ F2: ¡5 ¡ F1: ¡5 ¡ F1: ¡5 ¡ F3: ¡5 ¡ F4: ¡5 ¡ F4: ¡5 ¡ D ¡ E ¡ D ¡ E ¡ F3: ¡5 ¡ Current ¡State ¡ Target ¡State ¡ Move ¡ F2 ¡ A-‑E: ¡5 ¡ 5 ¡ Move ¡ Move ¡ F1 ¡ F3 ¡ 20 ¡
Recommend
More recommend