Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The.

Similar presentations


Presentation on theme: "An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The."— Presentation transcript:

1 An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The University of Texas at Austin

2 2 Contents Associative Broadcast Associative Broadcast Building an Application Building an Application Example Application: Convex Hull Example Application: Convex Hull Future Work, Summary, and Conclusions Future Work, Summary, and Conclusions

3 3 Associative Broadcast Just like in IP Multicast, Just like in IP Multicast,  Messages addressed to arbitrarily-chosen numerical group.  Nodes subscribe to those groups. But addressing is more powerful. But addressing is more powerful.  Node addresses are tables of attributes (“profiles”)  Messages are addressed to “profiles.”

4 4 Profiles Profile: table of attributes and attribute/value pairs Name Optional value Linux Version Memory “7.0” 128

5 5 Messages and Selectors Message: A two-tuple of (Selector, Data) Message: A two-tuple of (Selector, Data) Selector: propositional logic expressions over profiles. Selector: propositional logic expressions over profiles.  Existence of attribute  Comparison of attribute values  Equality  Inequalities for ordered value types  Compound Boolean (AND/OR) Data: Transaction name, control flow protocol, application payload Data: Transaction name, control flow protocol, application payload

6 6 Selector to Profile Matching Examine selector of message Examine selector of message Consult profile for attributes. Consult profile for attributes. If selector evaluates true, message passed to application If selector evaluates true, message passed to application Semantics: Selector evaluated when receive primitive called Semantics: Selector evaluated when receive primitive called  All messages queued until called for

7 7 Specifying an Application The attribute domain in which the profiles and selectors are specified The attribute domain in which the profiles and selectors are specified Each component of the application as a state machine Each component of the application as a state machine Rules for binding states to profiles Rules for binding states to profiles Protocols for interactions including message and selector details Protocols for interactions including message and selector details Required common state information Required common state information

8 8 Application Execution Behavior Each entity governed by its state machine Each entity governed by its state machine Profile set to correspond to initial state Profile set to correspond to initial state When a message is received that satisfies the profile: When a message is received that satisfies the profile:  State machine transitions to new state  Executes some action  Possibly associatively broadcasting one or more messages  Set profile to correspond to new state

9 9 Associative Interfaces and Interactions Accepts interface: set of (profile, transaction, protocol) tuples Accepts interface: set of (profile, transaction, protocol) tuples  Represents the services the process provides.  Transaction: Method invocation, or unit of work.  Protocols: data flow (asynchronous) and call- return (synchronous). Requests interface: set of (selector, transaction, protocol) tuples Requests interface: set of (selector, transaction, protocol) tuples  Represents the services the process requires. These interfaces can, and usually will, change during execution of the system. These interfaces can, and usually will, change during execution of the system.

10 10 Status Working runtime system implementing the communication layer. Working runtime system implementing the communication layer. Applications implemented: distributed mutual exclusion, distributed readers/writers, convex hull, some parallel linear algebra algorithms. Applications implemented: distributed mutual exclusion, distributed readers/writers, convex hull, some parallel linear algebra algorithms. Extension of the associative interface to multiple message conditions. (Data flow firing rules) Extension of the associative interface to multiple message conditions. (Data flow firing rules)

11 11 Implementation Implemented as Java classes on an Ethernet Implemented as Java classes on an Ethernet Timed Reliable Broadcast Timed Reliable Broadcast  Applications require knowledge of maximum network latency  Applications require guarantee of reliable delivery of broadcasts  Implemented reliable broadcast based on Kaashoek

12 12 Example: Convex Hull Convex hull in 2-D: Subset of points that form a convex polygon containing all points in the set.

13 13 Incremental Convex Hull Traditional approach: Guess… Traditional approach: Guess… Max Y Max X Min Y Min X Red point = in the hull Coordinate axes Quadrant

14 14 Incremental Convex Hull …then refine. …then refine. Green = hull refinement lines

15 15 Example: Convex Hull – Algorithm Specification Every point represented as a process Every point represented as a process Process common state is the current “incremental” convex hull Process common state is the current “incremental” convex hull Points coordinate with each other to refine the hull until all points are contained Points coordinate with each other to refine the hull until all points are contained

16 16 Example: Convex Hull – Domain Attributes Status: Yes/No/Unknown indicating membership in the convex hull Status: Yes/No/Unknown indicating membership in the convex hull State: MinX/MinY/MaxX/MaxY/Other State: MinX/MinY/MaxX/MaxY/Other Quadrant: Computed quadrant value Quadrant: Computed quadrant value X and Y: Point coordinates X and Y: Point coordinates

17 17 Example: Convex Hull – Algorithm Specification Each point Each point  Determines whether it is x/y min/max.  Determines its quadrant.  Computes a line joining “nearest” known hull points,determines position with respect to this line.  Continues previous step until membership in hull is confirmed or negated.

18 18 Example: Convex Hull – Selector Samples Signaling completion for a quadrant: Signaling completion for a quadrant:  Quadrant == 1 Sending a refinement out: Sending a refinement out:  Status == Unknown && Quadrant == 2 && X >= 2.0 && X = 2.0 && X <= 10.0

19 19 Example: Convex Hull - States Determine min/max status Determine quadrant Compute hull segment Determine relative position Farthest point from segment? Yes NoReceive segment endpoints Not contained Yes No Completed Contained Status := NOStatus := YES Broadcast segment endpoints

20 20 Properties of Associative Broadcast Coordination and Composition Coordination among dynamic sets with dynamic behaviors Coordination among dynamic sets with dynamic behaviors Fault-tolerance and replication follow from coordination model Fault-tolerance and replication follow from coordination model Integration of coordination and composition Integration of coordination and composition Processes are fully distributed and symmetric Processes are fully distributed and symmetric

21 21 Relation to Data-Driven vs. Control-Driven Models Combination of data-driven and control- driven models Combination of data-driven and control- driven models Data-driven: State changes caused by message reception Data-driven: State changes caused by message reception Control-driven: Interfaces are kept separate, and link into computational code Control-driven: Interfaces are kept separate, and link into computational code Transient Channels Transient Channels

22 22 Related Work Linda: Pattern matching on tuple extraction Linda: Pattern matching on tuple extraction  Associative Broadcast: Distributed Tuple Space Structured Dagger: message-driven programming style Structured Dagger: message-driven programming style Splice: Interface-mediated communication, receiver-controlled subscriptions Splice: Interface-mediated communication, receiver-controlled subscriptions

23 23 Future Work System definition language System definition language  Specification of accepts and requests interface  Matching of interfaces to ensure all requests can be serviced  Libraries of modules to service requests not serviced by the program itself  Integration of runtime and compile time composition.


Download ppt "An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The."

Similar presentations


Ads by Google