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.