Back close

Course Detail

Course Name Distributed Systems
Course Code 26CS632
Program M. Tech. in Computer Science & Engineering
Credits 4
Campus Bengaluru, Coimbatore, Chennai, Nagercoil

Syllabus

Syllabus

Introduction to Distributed Systems: Characteristics and challenges; Types of distributed systems: Client–Server, Peer-to-Peer (P2P), Cluster, Grid, Cloud, Edge, Fog, and Cyber-Physical Systems (CPS); Distributed system architecture, process overview, taxonomy of distributed systems, scalability, performance, load balancing, and availability; Models of computation: Shared memory and message-passing systems, synchronous and asynchronous systems; Communication in distributed systems: Remote Procedure Calls (RPC), REST APIs, gRPC, message-oriented communication, publish–subscribe, and event-driven communication.

Logical time and event ordering: Happened-Before Relation, Lamport Logical Clocks, Vector Clocks, Causal Ordering, Total Ordering; Physical clock synchronization: Clock Drift, Clock Skew, Network Time Protocol (NTP); Global state and snapshot algorithms: Consistent Global State, Chandy–Lamport Snapshot Algorithm; Distributed mutual exclusion: Centralized Algorithm, Ricart–Agrawala Algorithm, Token Ring Algorithm; Leader election: Bully Algorithm, Ring Algorithm; Distributed deadlock detection and termination detection; Distributed consensus: Consensus Problem, Introduction to Paxos, Raft Algorithm, Byzantine Fault Tolerance (BFT); Distributed transactions: Two-Phase Commit (2PC), Three-Phase Commit (3PC); Coordination services: Introduction to ZooKeeper and distributed coordination.

Distributed database architecture and design; Distributed file systems: Dropbox, Google File System (GFS), Hadoop Distributed File System (HDFS); Distributed data processing: MapReduce programming model, Apache Spark, and Resilient Distributed Datasets (RDDs); Distributed storage models: Introduction to NoSQL databases, Bigtable, and HBase; Consistency control: Data-centric consistency, Client-centric consistency, CAP Theorem, Replica Management; Fault tolerance and recovery: Basic concepts, fault models, recovery mechanisms, and checkpointing.

Case Studies/ Project: Analysis of large-scale distributed platforms such as Google Spanner, Apache Spark, Amazon Aurora, Distributed File Systems (GFS/HDFS), Edge Computing Platforms, Cyber-Physical Systems, and Blockchain-based Distributed Systems.

Laboratory: MPI/ OpenMP, Apache Spark.

Introduction

Pre-Requisite(s): None

Course Type: Lab

Objectives and Outcomes

Course Objectives

    • Understand the design of distributed systems and algorithms that support distributed computing.
    • Gain practical exposure to the design and functioning of existing distributed systems and algorithms.

Course Outcomes

CO1 Understand the design principles in distributed systems and the architectures for distributed systems.
CO2 Apply various distributed algorithms related to clock synchronization, concurrency control, deadlock detection, and termination.
CO3 Analyze techniques for Consistency, fault tolerance and recovery in distributed systems.
CO4 Analyze the design and functioning of existing distributed systems and file systems.
CO5 Implement different distributed algorithms over current distributed platforms.

CO-PO Mapping

CO PO1 PO2 PO3 PO4 PO5 PO6
CO1 3 3 1      
CO2 3 3 1 1    
CO3 3 2        
CO4 3 2 1 1 1  
CO5 3 2 1 1 1 2

Evaluation Pattern

Evaluation Pattern: 70/ 30

Assessment Internal Weightage External Weightage
Midterm Examination 20  
Continuous Assessment (Theory) 20  
Continuous Assessment (Lab) 30  
End Semester   30

Note: Continuous assessment may include quizzes, tutorials, laboratory assessments, case studies, assignments, and other course-related evaluation components. The Mid-Term examination may be conducted as a two-hour written examination or a two-hour laboratory-integrated examination, as applicable. The End-Semester assessment may be conducted either as a two-hour written examination, a laboratory-integrated examination, or as a project presentation and evaluation, provided the project-based assessment is approved by the Department.

Text Books / References

  1. Distributed Systems, Andrew S. Tanenbaum and Maarten van Steen, 3rd ed., Pearson, 2017.
  2. Distributed Computing: Principles, Algorithms, and Systems, Ajay D. Kshemkalyani and Mukesh Singhal, Cambridge University Press, 2012.
  3. Elements of Distributed Computing, Vijay K. Garg, John Wiley & Sons, 2002.
  4. Distributed Systems: Concepts and Design, George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair, 5th ed., Pearson Education, 2017.
  5. Distributed Algorithms: An Intuitive Approach, Wan Fokkink, 2nd ed., MIT Press, 2018.

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now