Distributed Systems : Exercise 3

1. Consider two different scenarios for replicating information (servers):

- Google Docs provides a free collaborative file editing service
  to users in different locations around the world.
- A comprehensive Basically Operational & Ontological Healthcare Information
  System Service (abbreviated "BOO-HISS") is set up to handle all electronic
  prescriptions, doctors' statements and patient logs (you name it) in Finland.

a) Explain what kinds of benefits replication can achieve in these cases.

b) What kinds of problems should be prepared for (...due to the replication
and replication transparency in particular)?

c) Sketch acceptable solutions to these problems based on what you have
learned on this course.

2. Make a shell script of two processes on different Ukko nodes that
communicate over the network. Node A sends node B a number, node B adds
10 to it and sends the sum back to A, who prints it out to the user. You
can use netcat ('nc') for communication between the nodes.

Be prepared to show your scripts, either on paper or through more
advanced technology, such as your laptop.

(See the first two October workshops for supporting exercises.)

3. Why is consistency a problem and in what kinds of situations? Provide example
scenarios - specific application and situation - for different consistency
needs. (For best learning result, be creative, don't just repeat the default
examples from the slides.)

You can claim double credit for this task if you provide educative examples of
all the different consistency models we listed (without repeating the lecture
examples). If you do, please let us post that on the course homepage for
everyone to learn from. :)

4. Describe the main differences between user-centric and data-centric
consistency models from the point of view of application environment, guarantees
provided and how they would be implemented.

(You can clump the different data-centric and user-centric models together or
use an example of each group to provide an overview here.)

5. Implementing a consistency model requires a contract between the different
replicas to behave in a specific way. Describe how data accesses (read, write)
should be implemented in a replica for the three different consistency models
that group operations together and use synchronization variables. What are the
main differences in the guarantees provided by release/entry consistency and
weak consistency?

PS. Errata to lecture: old material reveals that Release consistency does
synchronize local data when the lock is acquired, instead of only propagating
changes when exiting the critical section, as was claimed in the slides.