Exam¶
Question 1: Distributed Mutual Exclusion
- What is DME and what are the requirements to a DME algorithm?
- What are the criteria to evaluate DME algorithms?
- Explain the centralized, token ring, and Ricart and Agrawala’s algorithms, and compare them. What are their advantages/disadvantages?
Question 2: Multicast
- Why do you need multicast?
- Explain basic multicast assuming reliable 1:1 communication
- What are the requirements to reliable multicast and how do you implement it over basic multicast and IP-multicast?
- Explain the difference between FIFO, Total and Causal ordering? When is it important?
- Briefly explain the two ideas to implement TO-multicast. What can you say about reliability?
Question 3: Replication and Consistency ()
- Why do you need replication?
- Explain the challenges resulting from replication
- What consistency models exist?
- Explain the consistency model and compare them
- Present an execution which is sequentially consistent but not linearizable
Question 4: Consensus
- Explain the consensus problem
-
Solution in synchronous system
-
Explain what the Byzantine generals problem is.
- Present impossibility result for 3 Byzantine generals, 1 faulty (argue carefully!)
- Present the solution for 4 Byzantine generals, 1 faulty.
- Present clearly your assumptions on system model, failures, and message signing.
- Discuss impossibility in asynchronous systems and practical workarounds
Question 5: Clustered Storage (GFS, Chubby, BigTable) ()
- What are the design principles behind the Google Infrastructure?
- Go into depth with GFS: Explain the architecture, consistency model, replication, fault tolerance. What are its advantages and disadvantages?
- Chubby: goals, architecture.
- BigTable: goals and architecture, as difference from GFS and Chubby
Question 6: Big Data Processing (MapReduce/Hadoop, Spark, Pregel) ()
- Explain the Map Reduce paradigm and programming model
- Explain the system architecture
- Explain a concrete example application and how it is executed
- Explain how to optimize the performance and how worker failures can be handled
- Describe Spark and Pregel, as difference from Hadoop
Question 7: Internet of Things Routing (Directed Diffusion, Tree Routing in ZigBee, AODV, DSR) ()
- Explain the characteristics and limitation of IoT
- Describe goals of IoT platforms
- Describe Directed Diffusion
- Explain the basics of 802.15.4 (ZigBee's lower layers)
- Describe Tree Routing in ZigBee
- Describe AODV and DSR as difference from the other routing approaches
Question 8: Peer to Peer (Gnutella, Chord) ()
- Explain the characteristics of peer-to-peer networks
- Describe the initial architecture of Gnutella
- Describe the novel architecture of Gnutella (with super-peers)
- Describe Chord routing approach
- Discuss Pastry/Tapestry, as differences from Chord
Question 9: Blockchain (Tamper-free linked lists, Nakamoto Consensus, proof of work, transactions in Merkle trees)
- Explain the characteristics of the blocks in a blockchain (e.g.: immutability, linear growth)
- Explain how the crypto tools used in blockchain work (hash function, signature, merkle tree, hash pointer) and how they are used in the blockchain
- Explain why Paxos consensus is not enough for a blockchain, e.g.: to protect against the double spending conundrum
- Bitcoin: explain the structure of the transaction and how they are verified by the miner
Last update:
January 11, 2021