Lab 1 Bulletin Board System
-
Upload
felix-noble -
Category
Documents
-
view
31 -
download
0
description
Transcript of Lab 1 Bulletin Board System
![Page 1: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/1.jpg)
Farnaz MoradiBased on slides by Andreas Larsson
2013
![Page 2: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/2.jpg)
Purpose:Become familiar with the fundamental ideas and protocols
that are discussed in the course. The task is to create a bulletin board system (BBS) on the top
of an existing distributed system infrastructure called Ensemble.
2Lab 1 - Bulletin Board System
![Page 3: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/3.jpg)
• The Ensemble system• Introduction• Architecture and Protocols• How does Ensemble achieve the group communication properties?
• The Bulletin Board System
3Lab 1 - Bulletin Board System
![Page 4: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/4.jpg)
• A library of protocols that support group communication.
• Ensemble Provides• Group membership service• Reliable communication• Failure detector• Secure communication
4Lab 1 - Bulletin Board System
![Page 5: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/5.jpg)
Deliver a messageSend it upwards in the stackFrom ensemble to the program that uses Ensemble
Between layers within ensemble
5Lab 1 - Bulletin Board System
![Page 6: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/6.jpg)
Endpoints Abstraction for a communicating entity Normally one per process
Groups Corresponds to a set of endpoints that
communicates Just a name for endpoints to use
Views A snapshot of the group membership at a
specified point May change from time to time
Maintaining membership 6Lab 1 - Bulletin Board System
![Page 7: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/7.jpg)
Multicast communicationMessages are delivered by all group members in the current view of the sender.
Point-to-Point communication
Properties:Virtual synchronyStabilityOrdering
7Lab 1 - Bulletin Board System
![Page 8: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/8.jpg)
AKA: View-synchronous group communication
IntegrityA correct process delivers a message at most once.
ValidityA message from a correct process will be delivered eventually by that process.
AgreementA message delivered by one correct process will be delivered by all correct processes.
8Lab 1 - Bulletin Board System
![Page 9: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/9.jpg)
9Lab 1 - Bulletin Board System
a crashes
V0={a,b,c} V1={a,b,c,d} V2={b,c,d} V3={b,c,d,e}
a
b
c
d
ed wants to join
e wants to join
![Page 10: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/10.jpg)
• The Ensemble system• Introduction• Architecture & Protocols• How does Ensemble achieve the group communication properties ?
• The Bulletin Board System
10Lab 1 - Bulletin Board System
![Page 11: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/11.jpg)
Layered protocol architecture All features are implemented as micro-
protocols/layers A stack/combination ~ a high-level protocol
A new stack is created for a new configuration at each endpoint.
It is possible to change the group protocol on the fly.
Lab 1 - Bulletin Board System 11
![Page 12: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/12.jpg)
• Layers are implemented as a set of callbacks that handle events passed to them.
• Each layer gives the system 2 callbacks to handle events from its adjacent layers
• Layers use 2 callbacks of its adjacent layers for passing events.
• Each instance of a layer maintain a private local state.
12Lab 1 - Bulletin Board System
![Page 13: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/13.jpg)
Combinations of layers that work together to provide high-level protocols
Stack creation:A new protocol stack is created at each endpoint of a group whenever the configuration (e.g. the view) of the group changes.
All endpoints in the same partition receive the same ViewState record to create their stack: select appropriate layers according to the ViewState create a new local state for each layer compose the protocol layers connect to the network
13Lab 1 - Bulletin Board System
![Page 14: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/14.jpg)
• The Ensemble system• Introduction• Architecture & Protocols• How does Ensemble achieve the group communication properties ?
• The Bulletin Board System
14Lab 1 - Bulletin Board System
![Page 15: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/15.jpg)
Each group has a leader for the membership protocol.
Lab 1 - Bulletin Board System 15
Bottom Interface to the network
Mnak Reliable fifo
Stable Stability detection
Sequencer Total ordering
Top_appl Interface to the application
Synch Block during membership change
Gmp Membership algorithm (7 layers)
Layers Functionality
Suspect Failure detector
Slander Failure suspicion sharing
![Page 16: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/16.jpg)
Suspect layer:Regularly ping other members to check for suspected failures
Protocol: If (#unacknowledged Ping messages for a member >
threshold)send a Suspect event
Slander layer:Share suspicions between members of a partition The leader is informed so that faulty members are
removed, even if the leader does not detect the failures.Protocol: The protocol multicasts slander messages to other
members whenever receiving a new Suspect event16Lab 1 - Bulletin Board System
![Page 17: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/17.jpg)
Stable layer:Track the stability of multicast messagesProtocol:Maintain Acks[N][N] by unreliable multicast: Acks[s][t]: #(s’ messages) that t has acknowledged Stability vector
StblVct = {(minimum of row s): s} NumCast vector
NumCast = {(maximum of row s): s}
Occasionally, recompute StblVct and NumCast, then send them down in a Stable event.
17Lab 1 - Bulletin Board System
![Page 18: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/18.jpg)
Mnak layer: Implements a reliable FIFO-ordered multicast protocol Messages from live members are delivered reliably Messages from faulty members are retransmitted by
live members
Protocol: Keep a record of all multicast messages to retransmit on
demand Use Stable event from Stable layer:
StblVct vector is used for garbage collection NumCast vector gives an indication to lost messages
recover them
18Lab 1 - Bulletin Board System
![Page 19: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/19.jpg)
Sequencer layer:Provide total orderingProtocol:Members buffer all messages received from below in a local buffer
The leader periodically multicasts an ordering message
Members deliver the buffered messages according to the leader’s instructions
See Causal layer for causal ordering
19Lab 1 - Bulletin Board System
![Page 20: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/20.jpg)
Handle Failure by splitting a group into several subgroups: one primary and many non-primary (partitionable)
Protocol: Each member keeps a list of suspected members via Suspect layer A member shares its suspicions via Slander layer View leader l:
collect all suspicions reliably multicast a fail(pi0,…,pik) message synchronize the view via Synch layer Install a new view without pi0,…,pik
A new leader is elected for the view without leader If pk in view V1 suspects that all lower ranked members are faulty,
it elects itself as leader and does like l. A member that agrees with pk, continues with pk to the new view
V2 with pk as the leader. A member that disagrees with pk, suspects pk.
20Lab 1 - Bulletin Board System
![Page 21: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/21.jpg)
Recover failure by merging non-primary subgroups to the primary subgroup.
Protocol: l: local leader, r: remote leader1. l synchronizes its view2. l sends a merge request to r3. r synchronizes its view4. r installs a new view with its mergers and
sends the view to l5. l installs the new view in its subgroup
21Lab 1 - Bulletin Board System
![Page 22: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/22.jpg)
Achieved by a simple leader-based protocol:Idea:Before a membership change from V1 to V2 all messages in V1 must become stable.
Protocol: before any membership changeThe leader activates the Synch protocol the set, MV1, of messages needed to deliver in V1 is bounded.
The leader waits until live members agree on MV1 via sending negative acknowledgements and recovering lost messages (i.e. StblVct = NumCast)
22Lab 1 - Bulletin Board System
![Page 23: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/23.jpg)
23Lab 1 - Bulletin Board System
a crashes
V0={a,b,c} V1={a,b,c,d} V2={b,c,d} V3={b,c,d,e}
a
b
c
d
ed wants to join
e wants to join
![Page 24: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/24.jpg)
• The Ensemble system• Introduction• Architecture and Protocols• How does Ensemble achieve the group communication properties?
• The Bulletin Board System
24Lab 1 - Bulletin Board System
![Page 25: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/25.jpg)
Bulletin board with messages Subject, ID, sender, time Arriving messages shall be displayed immediately No agreed order of messages is needed But: Replies should always be after their parent
Take advantage of ensemble to do this
Peer to peer application The bulletin board is shared No server that keeps the messages Stability while endpoints join and leave
The application should be able to stand the loss of any client Except the last one Warn client when it is the only one left
25Lab 1 - Bulletin Board System
![Page 26: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/26.jpg)
An ensembled process needs to run at each computer If none is running at your computer run /chalmers/groups/cse-ds2/ensemble/ensembled
Already runs on: remote{1,2}.student.chalmers.se
Ensembled is providing the ensemble serviceEnsemble servers are not centralized serversThe server serves one hostThe servers connect to each other and form the network
26Lab 1 - Bulletin Board System
![Page 27: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/27.jpg)
27Lab 1 - Bulletin Board System
Ensembled Ensembled
Network
Endpoint Endpoint Endpoint EndpointEndpoint
Process Process Process Process
![Page 28: Lab 1 Bulletin Board System](https://reader035.fdocuments.us/reader035/viewer/2022062721/56813844550346895d9fef50/html5/thumbnails/28.jpg)
• Look at the documentation:• Ensemble tutorial
• Chapter 8 for the java interface• 5.8 for quick view of properties/layers
• Ensemble reference manual• Chapter 11 for more details on the layers• For additional information
• client/java/ensemble/JoinOps.java• Under /chalmers/groups/cse-ds2/ensemble/• To see how to select layers• Do not change JoinOps itself.
• Understand the example program• Get the Talk app from the course page• Get it to run and figure out how it works• Take advantage of our office hours to ask your
questions• Thursday Feb 7, 15:00 to 17:00, room 5107
28Lab 1 - Bulletin Board System