middleware for gossip protocols
play

Middleware for Gossip Protocols Michael Chow and Robbert van Renesse - PowerPoint PPT Presentation

Middleware for Gossip Protocols Michael Chow and Robbert van Renesse Cornell University Mo:va:on Gossip protocols are highly robust Problema:c when an error does occur E.g. Amazon S3 6 hours to fix an otherwise simple problem


  1. Middleware for Gossip Protocols Michael Chow and Robbert van Renesse Cornell University

  2. Mo:va:on • Gossip protocols are highly robust • Problema:c when an error does occur – E.g. Amazon S3 – 6 hours to fix an otherwise simple problem – Want to offer a way to fix such problems without having to take down the en:re system

  3. Contribu:ons Design, implementa:on, and analysis of gossip middleware that supports rapid code upda:ng

  4. Talk Outline • Versions and Deployments • Architecture • Evalua:on • Conclusion and Future Work

  5. Talk Outline • Versions and Deployments • Architecture • Evalua:on • Conclusion and Future Work

  6. Versions and Deployments • Modules : Gossip applica:on instances • Each module assigned a Deployment Number – Iden:fies origina:ng node and :me of deployment – Used to determine whether or not nodes are running the correct version of the applica:on – Does not correspond with code version

  7. Versions and Deployments Initial Deployment Code Version: v 1 Code Deployment: d 1 Code Update Code Version: v 2 Code Deployment: d 2 Roll Back Code Version: v 1 Code Deployment: d 3

  8. Talk Outline • Code Upda:ng • Architecture • Evalua:on • Conclusion and Future Work

  9. Architecture Module 1 Module 1 Module 2 Module 3 Core Core

  10. Core • Provides Module Management and Upda:ng • Core gossips deployment numbers and corresponding code versions • Core itself cannot be updated this way • Challenge: keep core small • Approach: core leverages ongoing gossip between modules

  11. Module Management • Core maintains a configura:on file that contains: – List of Modules and current versions (iden:fied by hash codes of the class files) – Deployment Number • Keeps track of which modules and corresponding versions are currently running • Cores gossip Configura:on files

  12. Gossip Media:on • Core mediates gossip between modules • Two advantages 1. Core piggybacks module deployment number on exis:ng gossip traffic which keeps core simple 2. Core uses HTTP to minimize problems with firewalls

  13. Backup Gossip • Cores need to be able to update code even if all modules have failed • Cores implement a rudimentary but robust gossip protocol – Sta:c list of rendezvous nodes – Intercepted membership hints from module gossip

  14. Core To Modules From Modules Hints Table Incoming Gossip Connections Outgoing Gossip Connections

  15. Examples of gossip interac:ons • Normal case: core piggybacks deployment numbers and checks for matched modules • Mismatched deployment numbers: core ini:ates code update • Modules fail to gossip usefully: core gossips configura:on informa:on

  16. Normal Case Node A Node B Module 1 Module 1 Deployment: d 1 Deployment: d 1 Core Core

  17. Normal Case Node A Node B Module 1 Module 1 Deployment: d 1 Deployment: d 1 Core Core

  18. Normal Case Node A Node B Module 1 Module 1 Deployment: d 1 Deployment: d 1 Core Core

  19. Normal Case Node A Node B Module 1 Module 1 Deployment: d 1 Deployment: d 1 Core Core

  20. Mismatched Deployment Numbers Node A Node B Module 1 Module 1 Deployment: d 2 Deployment: d 1 Core Core

  21. Mismatched Deployment Numbers Node A Node B Module 1 Module 1 Deployment: d 2 Deployment: d 1 Core Core

  22. Mismatched Deployment Numbers Node A Node B Module 1 Module 1 Deployment: d 2 Deployment: d 1 Core Core Request code update

  23. Mismatched Deployment Numbers Node A Node B Module 1 Module 1 Deployment: d 2 Deployment: d 2 Core Core

  24. Mismatched Deployment Numbers Node A Node B Module 1 Module 1 Deployment: d 2 Deployment: d 2 Core Core

  25. Failure to Gossip usefully Node A Node B Module 1 Module 1 Deployment: d 3 Deployment: d 1 Core Core Exchange configuration deployment number

  26. Failure to Gossip usefully Node A Node B Module 1 Module 1 Deployment: d 3 Deployment: d 1 Core Core Request code update

  27. Failure to Gossip usefully Node A Node B Module 1 Module 1 Deployment: d 3 Deployment: d 3 Core Core

  28. Talk Outline • Code Upda:ng • Layered Architecture • Evalua:on • Conclusion and Future Work

  29. Evalua:on • Tested on 100 local instances with 10 serving as rendezvous servers • Applica:on: A Simple Membership Protocol

  30. Evalua:on • How much overhead does the core add?

  31. Evalua:on • How long does it take to propagate code?

  32. Evalua:on • How long does it take to propagate code? Rendezvous nodes loaded with code

  33. Evalua:on • How long does it take to propagate code? Backup gossip in the background

  34. Evalua:on • How long does it take to propagate code? Application gossip picks up

  35. Conclusion and Future Work • Can we make the core smaller? • Can the core be updated? • Security • NAT Traversal as a layered service

  36. Ques:ons?

  37. Module Management • Core provides the following public methods for module upda:ng: public String transferState() public void acceptState() Module 1 Module 1 Deployment: d 1 Deployment: d 2 transferState() acceptState()

Recommend


More recommend