CMPSCI 677 (Spring 2007): Homework 4
Due: In-Class, April 26, 2007
Off-campus students: one week from when you view Lecture 20
Web posted: Thursday, April 18 2007
- Consider the behavior of two machines in a distributed system. Both have
clocks that are supposed to tick 1000 times per millisecond. One of them
actually does, but the other ticks only 990 times per millisecond. If UTC
updates come in once a minute, what is the maximum clock skew that will
occur?
- To achieve totally-ordered multicasting with Lamport timestamps, is it
strictly necessary that each message is acknowledged?
- In Fig. 6-21 (old version: Fig. 5-12) we have two ELECTION messages circulating simultaneously.
While it does no harm to have two of them, it would be more elegant if one
could be killed off. Devise an algorithm for doing this without affecting the
operation of the basic election algorithm.
- What kind of consistency would you use to implement an electronic stock
market? Explain your answer.
- Consider a personal mailbox for a mobile user, implemented as part of a
wide-area distributed database. What kind of client-centric consistency would
be most appropriate?
- Describe a simple implementation of read-your-writes consistency for displaying
Web pages that have just been updated.
- A file is replicated on 10 servers. List all the combinations of read quorum
and write quorum that are permitted by the voting algorithm.
- In the text, we suggest that atomic multicasting can save the day when it
comes to performing updates on an agreed set of processes. Can
we guarantee that each update is actually performed?
- In the two-phase commit protocol, why can blocking never be completely
eliminated, even when the participants elect a new coordinator?
- In our explanation of three-phase commit, it appears that committing a
transaction is based on majority voting. Is this true?
- Why is it not necessary in Fig. 9-15 (Old version: Fig. 8-15) for the KDC to know for sure it was
talking to Alice when it receives a request for a secret key that Alice can share
with Bob?
- Assume Alice wants to send a message m to Bob. Instead of encrypting m
with Bob's public key KB, she generates a session key KA,B and then sends
[KA,B(m), KB(KA,B)]. Why is this scheme generally better? (Hint: consider performance issues.)
- What is the role of the timestamp in message 6 in Fig. 9-23 (Old version: Fig 8-38, and why does it
need to be encrypted?