Distributed Data Flow Language for Multi-Party Protocols

Slide Note
Embed
Share

"Exploring a Distributed Data Flow Language designed for Multi-Party Protocols, the research by Krzysztof Ostrowski, Ken Birman, and Danny Dolev from Cornell University and Hebrew University showcases innovative solutions for efficient data processing across distributed systems. The work highlights the importance of seamless communication and coordination in complex network environments."


Uploaded on Oct 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Distributed Data Flow Language for Multi-Party Protocols Krzysztof Ostrowski , Ken Birman , Danny Dolev Cornell University, Hebrew University {krzys|ken}@cs.cornell.edu, dolev@cs.huji.ac.il

  2. Introduction

  3. http://liveobjects.cs.cornell.edu

  4. http://liveobjects.cs.cornell.edu node1 node2 user distributed peer-to-peer protocols node3

  5. http://liveobjects.cs.cornell.edu node1 node2 user distributed peer-to-peer protocols multicast commit locking node3 replication

  6. http://liveobjects.cs.cornell.edu user shared content distributed peer-to-peer protocols multicast commit locking replication

  7. http://liveobjects.cs.cornell.edu user replicated content distributed peer-to-peer protocols multicast commit locking replication

  8. http://liveobjects.cs.cornell.edu synchronization, coordination user replicated content distributed peer-to-peer protocols multicast commit locking replication

  9. http://liveobjects.cs.cornell.edu node1 node2 user A2 A1 app. component A3 node3

  10. http://liveobjects.cs.cornell.edu instance of the protocol stack Distributed Protocol Instance A2 P2 A1 app. P1 component P3 A3 instance of the protocol stack instance of the protocol stack

  11. http://liveobjects.cs.cornell.edu instance of the protocol stack Distributed Protocol Instance A2 P2 A1 app. P1 component P3 events A3 instance of the protocol stack instance of the protocol stack

  12. http://liveobjects.cs.cornell.edu instance of the protocol stack Distributed Protocol Instance A2 P2 m m network messages m m A1 app. P1 component P3 m events A3 instance of the protocol stack instance of the protocol stack

  13. http://liveobjects.cs.cornell.edu proxy of the object Live Distributed Object (LO) basic building block P2 m m network messages m m P1 P3 m proxy of the object proxy of the object

  14. http://liveobjects.cs.cornell.edu proxy of the object Live Distributed Object (LO) basic building block P2 m m network messages m m P1 P3 m proxy of the object proxy of the object

  15. http://liveobjects.cs.cornell.edu proxy of the object Live Distributed Object (LO) basic building block P2 m m network messages m m P1 P3 m proxy of the object proxy of the object

  16. http://liveobjects.cs.cornell.edu P2 m m P2 m P1 m P3 m m m m P2 P1 m P3 m m m m P2 P1 P3 m m m m m P2 P2 P1 m m m P3 m m m m m need lots of different objects (protocols) P1 P3 m m P1 P3 m m P2 P2 m m m m P1 m P3 m m m P1 P3 m m

  17. http://liveobjects.cs.cornell.edu user-defined objects P2 m m P2 m P1 m P3 m m m m P2 P1 m P3 m m m m P2 P1 P3 m m m m m P2 P2 P1 m m m P3 m m m m m need lots of different objects (protocols) P1 P3 m m P1 P3 m m P2 P2 m m m m P1 m P3 m m m P1 P3 m m

  18. How to Implement New Objects? custom user-defined object P2 m m m P1 P3 m m

  19. How to Implement New Objects? Java / C# / C++ custom user-defined object protocol composition Frameworks (Ensemble, BAST, Appia) P2 m m m P1 P3 m m MACE, P2, etc.

  20. How to Implement New Objects? Java / C# / C++ custom user-defined object protocol composition Frameworks (Ensemble, BAST, Appia) P2 m m m P1 P3 m m MACE, P2, etc.

  21. How to Implement New Objects? Java / C# / C++ custom user-defined object protocol composition Frameworks (Ensemble, BAST, Appia) P2 m m m P1 P3 m m MACE, P2, etc.

  22. How to Implement New Objects? higher-level logic (making decisions) Java / C# / C++ protocol composition Frameworks (Ensemble, BAST, Appia) intermingled, tightly-coupled lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping) MACE, P2, etc.

  23. How to Implement New Objects? higher-level logic (making decisions) intermingled, tightly-coupled lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping)

  24. How to Implement New Objects? higher-level logic (making decisions) intermingled, tightly-coupled Protocol 1 Protocol 2 node ACK/NAK recovery lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping) Node node node Protocol 3 Region A A C AC node node node ABC AB BC C B B

  25. How to Implement New Objects? harder to write/debug Java / C# / C++ error- prone protocol composition Frameworks (Ensemble, BAST, Appia) Protocol 1 Protocol 2 node ACK/NAK recovery Node node node Protocol 3 Region A A C AC node node node ABC AB BC C B less B sophisticated less MACE, P2, etc. flexibility

  26. How to Implement New Objects? harder to write/debug Java / C# / C++ error- prone protocol composition Frameworks (Ensemble, BAST, Appia) Protocol 1 Protocol 2 node ACK/NAK recovery Node node node Protocol 3 Region A A C AC node node node ABC AB BC C B less B sophisticated less MACE, P2, etc. flexibility

  27. How to Implement New Objects? harder to write/debug Java / C# / C++ error- prone protocol composition Frameworks (Ensemble, BAST, Appia) Protocol 1 Protocol 2 node ACK/NAK recovery Node node node Protocol 3 Region A A C AC node node node ABC AB BC C B less B sophisticated less MACE, P2, etc. flexibility

  28. How to Implement New Objects? harder to write/debug Java / C# / C++ error- prone protocol composition Frameworks (Ensemble, BAST, Appia) Protocol 1 Protocol 2 node ACK/NAK recovery Node node node Protocol 3 Region A A C AC node node node ABC AB BC C B less B sophisticated less MACE, P2, etc. flexibility

  29. How to Implement New Objects? separation of concerns higher-level logic (making decisions) Protocol 1 Protocol 2 node ACK/NAK recovery lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping) Node node node Protocol 3 Region A A C AC node node node ABC AB BC C B B

  30. How to Implement New Objects? separation of concerns programmer Protocol 1 Protocol 2 node ACK/NAK recovery Node compiler and runtime node node Protocol 3 Region A A C AC node node node ABC AB BC C B B

  31. How to Implement New Objects? separation of concerns programmer Protocol 1 Protocol 2 node ACK/NAK recovery Node compiler and runtime node node Protocol 3 Region A A C AC node node node ABC AB BC C B B

  32. Our Approach: Flows Objects Aggregation Batching Recursion

  33. physical machine (node)

  34. physical machine (node) node x1

  35. software physical machine (node) node x1

  36. layer 1 functional layer software node x1

  37. layer 1 functional layers layer 2 software node x1

  38. layer 1 functional layers interface exposed by layer2 layer 2 node x1

  39. consumed by layer1 layer 1 functional layers interface exposed by layer2 layer 2 node x1

  40. consumed by layer1 method call (event) layer 1 e1 interface exposed by layer2 layer 2 node x1

  41. method call (event) layer 1 e1 occurred at time t0 layer 2 node x1

  42. layer 1 e1 occurred at time t0 at node x1 layer 2 node x1

  43. time layer 1 e1 later occurred at time t0 at node x1 layer 2 time is increasing bottom-up earlier t0 e1 node x1 x1 location (node)

  44. time layer 1 e1 later occurred at time t0 at node x1 layer 2 time is increasing bottom-up earlier t0 e1 node x1 x1 location (node)

  45. time layer 1 e1 later occurred at time t0 at node x1 layer 2 time is increasing bottom-up earlier t0 e1 node x1 x1 location (node)

  46. time layer 1 e1 later layer 2 time is increasing bottom-up earlier t0 e1 node x1 x1 location (node)

  47. time layer 1 layer 1 e2 later layer 2 layer 2 time is increasing bottom-up earlier e2 t1 t0 e1 node x1 node x2 x1 x2 x3 location (node)

  48. time layer 1 layer 1 layer 1 e3 later layer 2 layer 2 layer 2 time is increasing bottom-up e3 t2 earlier e2 t1 t0 e1 node x1 node x2 node x3 x1 x2 x3 location (node)

  49. time layer 1 layer 1 layer 1 e5 e4 later layer 2 layer 2 layer 2 time is increasing bottom-up e4 e5 t3 e3 t2 earlier e2 t1 t0 e1 node x1 node x2 node x3 x1 x2 x3 location (node)

  50. time layer 1 layer 1 layer 1 e6 layer 2 layer 2 layer 2 e6 t4 e4 e5 t3 e3 t2 e2 t1 t0 e1 node x1 node x2 node x3 x1 x2 x3 location (node)

Related


More Related Content