Distributed Systems - Questions & Answers
Q: What are the main differences between client-server and peer-to-peer architecture?
Client-Server Architecture:
- Structure: Client ↔ Server
- Centralized control, server provides services, clients request
- Less scalable; server is a bottleneck
- ■Chapter 2, Page 46
Peer-to-Peer Architecture:
- Structure: All peers are equal; no central server
- Decentralized, more fault-tolerant and scalable
- ■Chapter 2, Page 47
Q: What is the main difference between distributed and centralized systems?
1. Number of Computers: Centralized = 1 main system; Distributed = many networked systems
2. Resource Sharing: Centralized = local; Distributed = shared across nodes
3. Failure Handling: Centralized = total failure; Distributed = partial resilience
■Chapter 1, Page 2–4
Q: How does concurrency affect the performance of distributed systems, and what
techniques can be used to manage it?
- Improves performance by allowing parallel execution
- Can cause race conditions or inconsistency
Techniques:
1. Locks & Mutexes
2. Transactions
3. Timestamp ordering
4. Consensus (e.g., Paxos)
■Chapter 1 Page 2, 4–5 | Chapter 2 Page 38
Q2.2: What is scalability in distributed systems, and how can it be achieved?
Scalability = ability to grow without losing performance.
Achieved by:
- Replication
- Caching
- Load balancing
- Partitioning
■Chapter 1, Page 5
Q3.1: What is an architectural model in distributed systems, and what are its key
components?
Describes system structure & interactions.
Key Components:
- Communicating entities (processes, components)
- Communication paradigms (RPC, RMI, etc.)
- Roles (client/server, P2P)
■Chapter 2, Page 41
Q3.2: What is the fundamental model of a distributed system, and how does it work?
Abstract view of:
- Interaction (timing, message delivery)
- Failures (crashes, delays)
- Security (attacks)
Helps in designing robust systems.
■Chapter 2, Page 37
Q4: How can we measure the performance of distributed systems?
1. Latency
2. Throughput
3. Resource Utilization
4. Scalability under load
■Chapter 2, Page 37–38
Q5: What is a failure model and its classifications?
Defines fault types in processes or communication.
Types:
1. Omission – e.g., dropped message
2. Timing – e.g., late response
3. Crash – e.g., node stops working
■Chapter 2, Page 37–38
Q1: Types of distributed system models?
- Physical
- Architectural
- Fundamental
■Chapter 2, Page 37–39
Q2: Advantage & disadvantage of distributed systems?
Advantage: Scalability, fault tolerance, resource sharing
Disadvantage: Complexity, failure handling, concurrency issues
■Chapter 1, Page 2, 5
Q3: Challenges in distributed systems?
- Heterogeneity
- Openness
- Security
- Scalability
- Concurrency
- Transparency
■Chapter 1, Page 5
Q4: Sockets & UDP
1. Socket = endpoint for network communication
2. Used for sending/receiving data across nodes
3. UDP is fast, low-overhead (used for DNS, VoIP)
■Chapter 4, Page 149–153
Q: Difference between deadlock models in distributed systems?
Types based on handling:
1. Deadlock-Prone
2. Deadlock-Preventing (ordering, timeout)
3. Deadlock-Avoiding (e.g., Banker's algorithm)
4. Deadlock-Detecting (wait-for graphs)
■Implied from concurrency concepts, Chapter 1
Q: Difference between Flat and Nested Distributed Transactions?
Flat:
- One atomic unit
- All-or-nothing
Nested:
- Parent and sub-transactions
- More flexible, allows partial commits
(Not covered in Ch1–4; general knowledge)