Distributed system Assignment Questions
Core Concepts and Motivations
1. Distributed Programming Definition and Rationale: Define distributed programming and
explain the primary motivation for using multiple computers to solve a problem that
could theoretically be solved on a single computer. When does upgrading hardware on a
single node cease to be a viable strategy?
2. Fundamental Consequences of Distribution: In the context of system design, what are the
two core consequences of distribution that programmers must deal with?
3. Physical Constraints: What two physical factors fundamentally constrain distributed
systems? How does an increase in the number of independent nodes negatively impact
system availability and administrative costs?
System Goals: Scalability, Performance, and Availability
4. Types of Scalability: List and briefly define the three types of scalability that are
particularly interesting to examine when measuring system growth.
5. Performance vs. Latency: Define performance and identify low latency as the most
interesting aspect of performance limitations. What does the etymology of latent reveal
about how latency functions in a distributed system (e.g., in terms of data visibility)?
6. Minimum Latency: What two factors establish the minimum latency that cannot be
overcome in a distributed system?
7. Availability and Fault Tolerance: Define availability. Explain the relationship between
distributed systems and reliability, particularly how distributed systems can be built from
unreliable components. Define fault tolerance.
Design Techniques
8. Abstractions and Models: What purpose do abstractions and models serve in distributed
programming, particularly when dealing with systems that have many moving parts?
9. Partitioning: Define partitioning (divide and conquer) and explain how it improves both
performance and availability.
10. Replication: Define replication and explain how it helps fight latency and improve
performance. What major challenge does replication introduce that necessitates the use of
consistency models?
System Models and Assumptions
11. Abstractions and Equating: According to the provided sources (including the Nietzsche
quote), what is the fundamental nature of abstractions, and what is the "trick" in
developing a useful abstraction?
12. Properties of Distributed Programs: List four key implications or properties of programs
running in a distributed system (e.g., regarding knowledge, failure, and communication).
13. Failure Models: What is the most common failure model assumed in commercial systems
(e.g., crash-recovery)? How do Byzantine faults differ, and why are algorithms designed
for them rarely used commercially?
14. Communication Failures: Define a network partition and explain why partitioned nodes
must be treated differently from crashed nodes.
15. Timing Models Comparison: Compare and contrast the assumptions of the Synchronous
system model and the Asynchronous system model regarding message transmission,
execution rates, and clocks. Which model is generally considered unrealistic for real-
world networks?
16. The Consensus Problem: Identify the four formal properties required for processes to
achieve consensus (Agreement, Integrity, Termination, and Validity). Why is solving the
consensus problem central to many commercial distributed systems?
Impossibility Results
17. FLP Impossibility Result: State the finding of the FLP impossibility result regarding
deterministic algorithms for the consensus problem. What hard constraint does this
impose on designers concerning the tradeoff between safety and liveness?
18. The CAP Theorem Statement: State the CAP theorem, defining the three properties it
concerns (Consistency, Availability, and Partition Tolerance). What is the central
implication of the theorem regarding achieving all three simultaneously?
19. System Types under CAP: Describe the three types of systems based on which two
properties they prioritize (CA, CP, and AP), providing an example system type for each.
20. Partition Behavior (CA vs. CP): Explain why a CA system (like Two-Phase Commit)
must stop accepting writes everywhere upon failure, and how a CP system (like Paxos)
ensures single-copy consistency while retaining partial availability during a network
partition.
21. Consistency vs. Performance Tradeoff: Explain why strong consistency typically results
in high latency during normal operation, and how relaxing consistency guarantees can
improve performance.
Consistency Models
22. The Ambiguity of Consistency: Explain why the "C" in CAP is misleading, emphasizing
the difference between "strong consistency" and the general term "consistency model."
23. Strong Consistency Models: Define Linearizable consistency and Sequential consistency.
What is the key difference between these two models?
24. Eventual Consistency Drawbacks: Provide the basic definition of eventual consistency.
Why this definition is considered useless without supplemental information, and what
two specific characteristics should a vendor specify to make the consistency model more
precise?