CSE5306: Distributed Systems, Fall 2023Time: T/Th 3:30PM - 4:50PM Annoucements
Course DescriptionDistributed systems help programmers aggregate the resources of many networked computers to construct highly available and scalable services. With the recent advances in cloud computing, a specialized form of distributed computing, and the proliferation of mobile devices, the frontier of computing at the edge of networks, it is important to understand the fundamental concepts and learn the design and implementation techniques of distributed systems. However, building a highly efficient, scalable, and reliable distributed system is challenging due to the complexity large-scale networked systems, including hardware heterogeneity, dynamic network topology, unreliable network interconnection, and the ever growing user needs of multitenancy. This course is designed to provide students with the understanding of fundamentals of distributed systems. In this course, we will first introduce the basics of distributed computing, including distributed architectures, processes and threads, communication, naming, synchronization, consistency and replication, fault tolerance, and later move onto the discussions of representative distributed systems, such as distributed computing systems and file systems. Upon completion of this course, students are expected to be familiar with the fundamentals of distributed computing, be able to analyze and evaluate the performance of distributed systems, to write simple distributed programs, and to understand the inherent tradeoffs of distributed system design. Prerequisites
Textbook
|