Example Exam Questions


Question 1

In an interview about designing distributed systems Ken Arnold (the original lead architect of JavaSpaces) said "State is hell. You need to design systems under the assumption that state is hell. Everything that can be stateless should be stateless". Why does state pose a problem in distributed systems?

Question 2

SOAP and XML-RPC are two examples of RPC protocols that use XML as their data format and HTTP as their transport. Discuss the benefits and drawbacks of using XML as a data format. Also discuss the benefits and drawbacks of using HTTP as a transport.

Question 3

Servers hosting popular Web sites often receive more requests than they can handle, causing their performance to suffer. A typical way of overcoming this problem is to to replicate the contents on other servers. Describe some of the problems that this may introduce. Discuss possible solutions to the problems you mention.

Question 4

Read your writes is a client-centric consistency model.

  1. Describe this model.
  2. A naive implementation of this model requires that each replica server maintain a write set of the write operations that it has seen. Likewise, each client maintains a read set of the write operations that it has seen. For this implemenatation we assume that each write operation is identified by a unique identifier (note that because we are dealing with replication a write operation will be executed at each replica server. Each replicated execution of the same write operation will have the same identifier). This identifier is generated by the server that accepts the operation for the first time (i.e., the server where the write is initiated). Complete (and describe) the design of this naive implementation of read your writes. Provide an example of how your design works.
  3. A problem with the naive implementation introduced above is that the write and read sets may become very large, leading to poor performance. A more efficient solution is possible using vector timestamps. Sketch the design of a read your writes implementation that avoids the overhead of large read and write sets by using vector timestamps. Provide an example of how your design works.

Question 5

The Erlang client server exercise could also be an exam question.

Comments

These are examples of the kinds of questions you may encounter. This is an open book exam so it requires you to understand the material. A result of this is that you may be required to combine concepts and ideas that were presented separately (in separate lectures). Be prepared to think, not regurgitate.

When answering the questions answer briefly, overly lengthy answers will be penalised. Make sure that you answer only the question that has been asked (but make sure that you answer all the questions you have been asked). Also make sure that you don't contradict yourself. If you give a correct answer and then contradict yourself by giving the wrong answer too, then the answer won't count as being right. You may draw diagrams to clarify your answer, but make sure that you explain the diagrams. Diagrams generally don't speak for themselves.

This page is maintained by cs9243@cse.unsw.edu.au Last modified: Monday, 07-Sep-2020 22:07:45 AEST