Distributed Computing - Class Notes
1. Introduction to Distributed Computing
- Definition: A model in which components located on networked computers communicate and
coordinate their actions by passing messages.
- Goal: To make a network of computers function as a single coherent system.
- Examples: Cloud computing, Blockchain, Distributed databases.
2. Characteristics of Distributed Systems
- Concurrency of components
- Lack of a global clock
- Independent failures of components
- Resource sharing
3. Advantages
- Scalability
- Fault tolerance
- Resource sharing
- Performance improvement
4. Challenges
- Synchronization
- Security
- Load balancing
- Data consistency
5. Architectures of Distributed Systems
- Client-Server model
- Peer-to-Peer model
- Hybrid model
6. Communication in Distributed Systems
- Remote Procedure Calls (RPC)
- Remote Method Invocation (RMI)
- Message-Oriented Communication
7. Synchronization
- Logical clocks (Lamport timestamps)
- Vector clocks
- Mutual exclusion algorithms (Ricart-Agrawala, Token-based)
8. Distributed File Systems
- Examples: NFS, HDFS, Google File System
- Features: Transparency, replication, fault tolerance
9. Consistency and Replication
- Consistency models: Strong, Weak, Eventual
- Replication techniques for fault tolerance and performance
10. Fault Tolerance
- Redundancy
- Checkpointing and recovery
- Consensus algorithms (Paxos, Raft)
11. Applications of Distributed Computing
- Cloud computing platforms (AWS, Azure, Google Cloud)
- Big Data frameworks (Hadoop, Spark)
- Blockchain and Cryptocurrency
- Distributed AI and Edge Computing
Conclusion:
Distributed computing enables efficient, scalable, and reliable solutions for modern applications by
leveraging multiple interconnected systems.