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()

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend