Week 1. Intro


  • Additional resources


Week 2. Concurrency

  • Processes and threads

  • C++ concurrency

    • Chapters 1 - 5, C++ Concurrency in Action," 2nd Edition, Williams, Anthony, Manning Publications

      • This book is accessible online through the library

      • This book is a good reference in general for C++ multi-threaded programming.

  • SEDA: an architecture for well-conditioned scalable Internet services, ACM Symposium on Operating System Principles, 2001, Matt Welsh (UC Berkeley, now at OctoML), David Culler (UC Berkeley) and Eric Brewer (UC Berkeley)


Week 3 Communications

  • Network in general

    • Chapter 1, Computer Networks, 5th Edition by Bruce S. Davie; Larry L. Peterson, Published by Morgan Kaufmann, 2011 (available online through Northeastern library)

  • Socket programming

  • RPC

    • Chapter 6.0-6.11, Kenneth P. Birman, Guide to Reliable Distributed Systems, 1st edition, Springer (available online through Northeastern library)

    • Birrell and Nelson, Implementing remote procedure call, ACM Transactions on Computer Systems, Vol. 2, No. 1, 1984

  • Logical clocks

    • Leslie Lamport. 1978. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (July 1978)


  • Additional resources:

    • If you want to learn more about computer networks, you can read this book. It is a widely used textbook for computer networks course and covers a variety of topics in depth.

      • Computer Networks, 5th Edition by Bruce S. Davie; Larry L. Peterson, Published by Morgan Kaufmann, 2011 (available online through Northeastern library)

    • Friedemann Mattern, "Virtual Time and Global States of Distributed Systems", Workshop on Parallel and Distributed Algorithms, Elsevier, pp. 215–226, 1989

    • Colin J. Fidge, "Timestamps in Message-Passing Systems That Preserve the Partial Ordering". 11th Australian Computer Science Conference. pp. 56–66. 1988.


Week 4 Virtualization, containers, cloud, and data centers


  • Additional resources:

    • Data centers

      • Luiz André Barroso; Urs Hölzle; Parthasarathy Ranganathan; Margaret Martonosi, The Datacenter as a Computer: Designing Warehouse-Scale Machines, Third Edition , Morgan & Claypool, 2018.

        • (Available online through Northeastern library)

    • Virtualization

Week 5 Replication



Week 6, 7 Consensus and distributed transactions


Week 8 NoSQL databases


Week 9 In-memory systems



Week 10 Load balancing, caching, and contents delivery network

  • Load balancer

    • https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-ug.pdf

  • CDN

    • https://www.imperva.com/learn/performance/cdn-guide/

  • Facebook's caching systems

    • Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, and Venkateshwaran Venkataramani. 2013. Scaling Memcache at Facebook. In Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation

    • Qi Huang, Ken Birman, Robbert van Renesse, Wyatt Lloyd, Sanjeev Kumar, and Harry C. Li. 2013. An analysis of Facebook photo caching. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles


Week 11 Data analytics

  • MapReduce

    • Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: simplified data processing on large clusters. Commun. ACM 51, 1 (January 2008), 107–113.

    • https://research.google/pubs/pub62/

  • Stream processing

    • Tyler Akidau, Slava Chernyak, Reuven Lax, Streaming Systems, O'Reilly Media, Inc.

      • Chapter 1 and Chapter 10

      • (Available through NEU library)

  • Spark

    • Matei Zaharia, Reynold S. Xin, Patrick Wendell, Tathagata Das, Michael Armbrust, Ankur Dave, Xiangrui Meng, Josh Rosen, Shivaram Venkataraman, Michael J. Franklin, Ali Ghodsi, Joseph Gonzalez, Scott Shenker, and Ion Stoica. 2016. Apache Spark: a unified engine for big data processing. Commun. ACM 59, 11 (November 2016), 56–65.


  • Additional resources

    • Spark RDD

      • Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2012. Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing. In Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation (NSDI'12).

      • https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf 

    • Spark streaming

      • Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, and Ion Stoica. 2013. Discretized streams: fault-tolerant streaming computation at scale. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP '13). Association for Computing Machinery, New York, NY, USA, 423–438.

      • https://cs.stanford.edu/~matei/papers/2013/sosp_spark_streaming.pdf 


Week 13 Microservices, serverless computing, SDN, and blockchains

  • Microservices:

    • Sam Newman, Building Microservices, 2nd Edition, O'Reilly Media

    • Chapter 1

  • Serverless computing:

    • Jason Katzer, Learning Serverless, 2020, O'Reilly Media, Inc.

    • Chapter 1

  • Software defined networks:

    • Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, and Jonathan Turner. 2008. OpenFlow: enabling innovation in campus networks. SIGCOMM Comput. Commun. Rev. 38, 2 (April 2008), 69–74.

    • http://ccr.sigcomm.org/online/files/p69-v38n2n-mckeown.pdf

  • Blockchains:

    • Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System

    • https://bitcoin.org/bitcoin.pdf


  • Additional reading:

    • Microservices

    • SwitchKV

      • Xiaozhou Li, Raghav Sethi, Michael Kaminsky, David G. Andersen, and Michael J. Freedman. 2016. Be fast, cheap and in control with SwitchKV. In Proceedings of the 13th Usenix Conference on Networked Systems Design and Implementation (NSDI'16). USENIX Association, USA, 31–44.

    • NetCache

      • Xin Jin, Xiaozhou Li, Haoyu Zhang, Robert Soulé, Jeongkeun Lee, Nate Foster, Changhoon Kim, and Ion Stoica. 2017. NetCache: Balancing Key-Value Stores with Fast In-Network Caching. In Proceedings of the 26th Symposium on Operating Systems Principles (SOSP '17). Association for Computing Machinery, New York, NY, USA, 121–136.