1 / 26

Distributed systems Total Order Broadcast

Distributed systems Total Order Broadcast. Prof R. Guerraoui Distributed Programming Laboratory. Overview. Intuitions: what total order broadcast can bring? Specifications of total order broadcast Consensus- based total order algorithm. Broadcast. A. deliver. m. B. m. broadcast.

jpellegrino
Download Presentation

Distributed systems Total Order Broadcast

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed systemsTotal Order Broadcast Prof R. Guerraoui Distributed Programming Laboratory

  2. Overview • Intuitions: what total order broadcast can bring? • Specifications of total order broadcast • Consensus-based total order algorithm

  3. Broadcast A deliver m B m broadcast deliver C

  4. Intuitions (1) • In reliable broadcast, the processes are free to deliver messages in any order they wish • In causal broadcast, the processes need to deliver messages according to some order (causal order) • The order imposed by causal broadcast is however partial: some messages might be delivered in different order by the processes

  5. Reliable Broadcast m3 m1 m2 m1 m2 p1 m2 m3 m1 p2 m2 m1 m3 p3 m3

  6. Causal Broadcast m3 m1 m2 m1 m2 p1 m2 m1 m3 p2 m1 m2 m3 p3 m3

  7. Intuitions (2) • In total order broadcast, the processes must deliver all messages according to the same order (i.e., the order is now total) • Note that this order does not need to respect causality (or even FIFO ordering) • Total order broadcast can be made to respect causal (or FIFO) ordering

  8. Total Order Broadcast (I) m1 m3 m2 m1 m2 p1 m2 m1 m3 p2 m3 m2 m1 p3 m3

  9. Total Order Broadcast (II) m2 m3 m1 m1 m2 p1 m1 m2 m3 p2 m3 m1 m2 p3 m3

  10. Intuitions (3) • A replicated service where the replicas need to treat the requests in the same order to preserve consistency (we talk about state machine replication) • A notification service where the subscribers need to get notifications in the same order

  11. Modules of a process indication Applications request Total order broadcast indication request indication (R-U)Reliable broadcast Failure detector Channels

  12. Overview • Intuitions: what total order broadcast can bring? • Specifications of total order broadcast • Consensus-based algorithm

  13. Total order broadcast (tob) • Events • Request: <toBroadcast, m> • Indication: <toDeliver, src, m> • Properties: • RB1, RB2, RB3, RB4 • Total order property

  14. Specification (I) • Validity: If pi and pj are correct, then every message broadcast by pi is eventually delivered by pj • No duplication: No message is delivered more than once • No creation: No message is delivered unless it was broadcast • (Uniform) Agreement: For any message m. If a correct (any) process delivers m, then every correct process delivers m

  15. Specification (II) (Uniform) Total order: Let m and m’ be any two messages. Let pi be any (correct) process that delivers m without having delivered m’ Then no (correct) process delivers m’ before m

  16. Specifications Note the difference with the following properties: Let pi and pj be any two correct (any) processes that deliver two messages m and m’. If pi delivers m’ before m, then pj delivers m’ before m. Let pi and pj be any two (correct) processes that deliver a message m. If pi delivers a message m’ before m, then pj delivers m’ before m.

  17. m1 p1 m1 p2 crash m2 p3 crash p4 m2

  18. m1 p1 m1 p2 crash m2 p3 crash p4 m2

  19. Overview • Intuitions: what total order broadcast can bring? • Specifications of total order broadcast • Consensus-based algorithm

  20. (Uniform) Consensus In the (uniform) consensus problem, the processes propose values and need to agree on one among these values C1. Validity: Any value decided is a value proposed C2. (Uniform) Agreement: No two correct (any) processes decide differently C3. Termination: Every correct process eventually decides C4. Integrity: Every process decides at most once

  21. Consensus • Events • Request: <Propose, v> • Indication: <Decide, v’> • Properties: • C1, C2, C3, C4

  22. indication Applications request Total order broadcast indication request indication request Consensus (R-U)Reliable broadcast indication Failure detector Channels Modules of a process

  23. Algorithm • Implements: TotalOrder (to). • Uses: • ReliableBroadcast (rb). • Consensus (cons); • upon event < Init > do • unordered = delivered = empty; • wait := false; • sn := 1;

  24. Algorithm (cont’d) • upon event < toBroadcast, m> do • trigger < rbBroadcast, m>; • upon event <rbDeliver,sm,m> and (m not in delivered) do • unordered := unordered U {(sm,m)}; • upon (unordered not empty) and not(wait) do • wait := true: • trigger < Propose, unordered>sn;

  25. Algorithm (cont’d) • upon event <Decide,decided>sndo • unordered := unordered \ decided; • ordered := deterministicSort(decided); • for all (sm,m) in ordered: • trigger < toDeliver,sm,m>; • delivered := delivered U {m}; • sn : = sn + 1; • wait := false;

  26. Equivalences • One can build consensus with total order broadcast • One can build total order broadcast with consensus and reliable broadcast • Therefore, consensus and total order broadcast are equivalent problems in a system with reliable channels

More Related