Introduction and types of distributed systems – Introduction to P2P systems, Edge Networks, CPS, etc, architecture of DS – overview of processes – A Taxonomy of Distributed Systems, scalable performance, load balancing, and availability. Models of computation – shared memory and message passing system— synchronous and asynchronous systems. Communication in Distributed Systems – Remote Procedure Calls and Message Oriented Communications and implementation, High-level communication and publish-subscribe in Mapreduce
Logical time and event ordering, Global state and snapshot algorithms, clock synchronization, distributed mutual exclusion, leader election, deadlock detection, termination detection, Distributed Databases, implementations over a simple distributed system and case studies of distributed databases and systems – Distributed file systems: Examples from Dropbox, Google FS (GFS)/ Hadoop Distributed FS (HDFS), Bigtable/HBase MapReduce, RDD
Consistency control: Data Centric Consistency, Client Centric Consistency, Replica Management, Fault tolerance and recovery: basic concepts, fault models. Case Studies from Apache Spark, Edge Networks, Cyber-Physical Systems, Google Spanner, Amazon Aurora, BlockChain Systems etc.
Tools: MPI, OpenMP