ds2
ds2
Unit 2
Designing a distributed system introduces several challenges due to its decentralized nature,
where multiple interconnected nodes work together to achieve a common goal. The main
issues and challenges include:
1. Fault Tolerance
5. Scalability
6. Security
7. Network Partitioning
Challenge: Network partitioning occurs when nodes cannot communicate with each
other due to network failures.
System Perspective: Handling network partitioning requires making trade-offs
between consistency and availability. Systems like Cassandra or DynamoDB favor
availability over consistency during partitions, while others prioritize consistency at
the expense of availability.
8. Distributed Coordination
9. Heterogeneity of Nodes
Challenge: Maintaining synchronized clocks across all nodes is crucial for ordering
events.
System Perspective: Techniques like Network Time Protocol (NTP) or logical
clocks (e.g., Lamport timestamps) are used to synchronize time. However,
achieving perfectly synchronized clocks is impossible, leading to potential issues with
data consistency and causality.
Challenge: Distributing and replicating data across nodes for availability and fault
tolerance while maintaining consistency.
System Perspective: Systems must determine how to partition data (sharding),
replicate data across nodes, and manage replication lag. Choosing between
synchronous and asynchronous replication involves a trade-off between
consistency and latency.
14. Transparency
Assumptions:
Algorithm Outline:
Properties:
Consistency: Since the physical clocks are synchronized, all nodes record their local state at
the same global time, ensuring a consistent snapshot.
Minimal Overhead: With perfectly synchronized clocks, there's no need for complex
message coordination or extra control messages beyond the initial broadcast.
This algorithm leverages synchronized physical clocks to simplify the global state recording
process, reducing the need for coordination overhead and ensuring consistent snapshots
across the system.