0% found this document useful (0 votes)
30 views2 pages

KTU Distributed Computing Class Notes

Uploaded by

savitha km
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views2 pages

KTU Distributed Computing Class Notes

Uploaded by

savitha km
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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.

Common questions

Powered by AI

Distributed computing systems aim to make a network of computers function as a single coherent system. This is achieved through allowing components to communicate and coordinate by passing messages. Goals such as scalability, fault tolerance, and resource sharing enhance system functionality by improving performance, ensuring reliability, and enabling efficient use of shared resources .

In distributed systems, the client-server model involves a central server providing resources and services to multiple clients, which simplifies control and management. The peer-to-peer model, however, consists of nodes (peers) that are functionally equivalent, allowing direct resource sharing without a centralized authority. This decentralization enhances scalability and fault tolerance but increases complexity in consistency and coordination .

Fault tolerance in distributed systems is enhanced through redundancy, which involves replicating components and services so that failures do not impact the entire system. Checkpointing aids in recovery by saving system state periodically, enabling systems to restart from the last checkpoint in case of failure, thereby minimizing data loss and downtime .

Consensus algorithms like Paxos and Raft are crucial in ensuring consistency across distributed systems by facilitating agreement on a single data value among distributed processes. They handle component failures and network issues, ensuring that even in adverse conditions, all processes reach a consistent state, which is essential for maintaining integrity and reliability .

Distributed file systems maintain transparency by abstracting the complexities of file location from users, providing a seamless interface regardless of the physical storage location. Fault tolerance is ensured through replication, where multiple copies of data are maintained across different nodes, allowing the system to handle failures without data loss or disruption in service .

Remote procedure calls (RPC) and remote method invocation (RMI) enable communication in distributed systems by allowing a program to execute code or methods on a remote system as if they were local. RPC focuses on procedural calls across machines, while RMI extends this concept to object-oriented methods, supporting more complex interaction models .

Strong consistency ensures operations are completed and seen in the same order across the system. Weak consistency relaxes these constraints, allowing systems to read stale data temporarily. Eventual consistency, a subset of weak consistency, ensures that despite temporary inconsistencies, the system will converge to a consistent state over time, which is often sufficient for many real-world applications .

Cloud computing platforms significantly enhance the scalability and reliability of distributed systems by providing on-demand resources and redundancy. Platforms like AWS, Azure, and Google Cloud scale easily to accommodate varying workloads and provide built-in fault-tolerant mechanisms, ensuring high availability and data integrity, which are critical for modern applications .

The absence of a global clock in distributed systems means that there is no single time reference for all components, which complicates coordination and synchronization. Logical clocks, such as Lamport timestamps, and vector clocks are used to order events and ensure proper sequence in executing actions across distributed components .

Load balancing is challenging in distributed systems due to the variability in demand and resource availability, as well as the independent failure of components. Techniques such as dynamic load distribution, round-robin, and least-connections strategies are employed to distribute workload evenly across system components to prevent overload and optimize resource utilization .

You might also like