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

  1. 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?

  2. To achieve totally-ordered multicasting with Lamport timestamps, is it strictly necessary that each message is acknowledged?

  3. 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.

  4. What kind of consistency would you use to implement an electronic stock market? Explain your answer.

  5. 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?

  6. Describe a simple implementation of read-your-writes consistency for displaying Web pages that have just been updated.

  7. A file is replicated on 10 servers. List all the combinations of read quorum and write quorum that are permitted by the voting algorithm.

  8. 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?

  9. In the two-phase commit protocol, why can blocking never be completely eliminated, even when the participants elect a new coordinator?

  10. In our explanation of three-phase commit, it appears that committing a transaction is based on majority voting. Is this true?

  11. 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?

  12. 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.)

  13. 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?