Advanced Course on Distributed Systems

Lecturer: Hiroki Matsutani (Dept of ICS, Matsutani Lab)
If you have any questions please contact me via Email or Slack at 1_matsutani.hiroki.

Important Notice

  • (2023-01-20) Thank you for attending this course!
  • (2022-10-19) As previously noticed we will not have class on Day 03.
  • (2022-10-13) Report 01 will be assigned on Day 02. Please write your report in English or Japanese and submit it via Keio Canvas LMS after the class.
  • (2022-10-06) We will run this course as an online course with Zoom meeting. To join the Zoom meeting, please login with your keio.jp account and click the Zoom link below.
  • This is a tentative schedule which may be updated later.

    2022 Fall

  • Day 01 (Oct 07, 2022): Introduction [Slide] [Zoom]
  • Day 02 (Oct 14, 2022): Architecture [Slide] [Zoom]
  • Day 03 (Oct 21, 2022): [NO CLASS]
  • Day 04 (Oct 28, 2022): Process [Slide] [Zoom]
  • Day 05 (Nov 04, 2022): Communication (Socket & RPC) [Slide] [Zoom]
  • Day 06 (Nov 11, 2022): Naming [Slide] [Zoom]
  • Day 07 (Nov 25, 2022): Logical clocks & Snapshot [Slide] [Zoom]
  • Day 08 (Dec 02, 2022): Mutual exclusion & Election [Slide] [Zoom]
  • Day 09 (Dec 09, 2022): Transaction [Slide] [Zoom]
  • Day 10 (Dec 16, 2022): Concurrency control [Slide] [Zoom]
  • Day 11 (Dec 23, 2022): Consistency & Replication [Slide] [Zoom]
  • Day 12 (Jan 06, 2023): Fault tolerance & Agreement [Slide] [Zoom]
  • Day 13 (Jan 13, 2023): Security [Slide] [Zoom]
  • Day 14 (Jan 20, 2023): Examples: NFS, Web, & Google [Slide] [Zoom]

    2021 Fall

  • Day 01 (Oct 01, 2021): Introduction [Slide] [Video]
  • Day 02 (Oct 08, 2021): Architecture [Slide] [Video]
  • Day 03 (Oct 15, 2021): Process [Slide] [Video]
  • Day 04 (Oct 22, 2021): Communication (Socket & RPC) [Slide] [Video]
  • Day 05 (Oct 29, 2021): Naming [Slide] [Video]
  • Day 06 (Nov 05, 2021): Logical clocks & Snapshot [Slide] [Video]
  • Day 07 (Nov 12, 2021): Mutual exclusion & Election [Slide] [Video]
  • Day 08 (Nov 19, 2021): Transaction [Slide] [Video]
  • Day 09 (Dec 03, 2021): Concurrency control [Slide] [Video]
  • Day 10 (Dec 10, 2021): Consistency & Replication [Slide] [Video]
  • Day 11 (Dec 17, 2021): Fault tolerance & Agreement [Slide] [Video]
  • Day 12 (Dec 24, 2021): Security [Slide] [Video]
  • Day 13 (Jan 14, 2022): Examples: NFS, Web, & Google [Slide] [Video]

    2020 Fall

  • Day 01 (Oct 02, 2020): Introduction [Slide] [Video]
  • Day 02 (Oct 09, 2020): Architecture [Slide] [Video]
  • Day 03 (Oct 16, 2020): Process [Slide] [Video]
  • Day 04 (Oct 23, 2020): Communication (Socket & RPC) [Slide] [Video]
  • Day 05 (Oct 30, 2020): Naming [Slide] [Video]
  • Day 06 (Nov 06, 2020): Logical clocks, Snapshot, Mutual exclusion, & Election [Slide1] [Slide2] [Video1] [Video2]
  • Day 07 (Nov 13, 2020): Transaction [Slide] [Video]
  • Day 08 (Nov 20, 2020): Concurrency control [Slide] [Video]
  • Day 09 (Nov 27, 2020): Consistency & Replication [Slide] [Video]
  • Day 10 (Dec 04, 2020): Fault tolerance & Agreement [Slide] [Video]
  • Day 11 (Dec 11, 2020): Security [Slide] [Video]
  • Day 12 (Dec 18, 2020): Examples: NFS, Web, & Google [Slide] [Video]

    2019 Fall

  • Day 01 (Sep 27, 2019): Introduction [Slide]
  • Day 02 (Oct 04, 2019): Architecture [Slide]
  • Day 03 (Oct 11, 2019): Process [Slide]
  • Day 04 (Oct 18, 2019): [NO CLASS]
  • Day 05 (Oct 25, 2019): Communication (Socket and RPC) [Slide]
  • Day 06 (Nov 01, 2019): Naming [Slide]
  • Day 07 (Nov 08, 2019): Clock synchronization [Slide]
  • Day 08 (Nov 15, 2019): Mutual exclusion & Election [Slide]
  • Day 09 (Nov 29, 2019): Transaction [Slide]
  • Day 10 (Dec 06, 2019): Concurrency control [Slide]
  • Day 11 (Dec 13, 2019): Consistency & Replication [Slide]
  • Day 12 (Dec 20, 2019): Fault tolerance & Agreement [Slide]
  • Day 13 (Dec 27, 2019): Security [Slide]
  • Day 14 (Jan 17, 2020): Examples: NFS, Web, & Google [Slide]

    2018 Fall

  • Day 01 (Sep 28, 2018): Introduction [Slide]
  • Day 02 (Oct 05, 2018): Architecture [Slide]
  • Day 03 (Oct 12, 2018): Process [Slide]
  • Day 04 (Oct 19, 2018): Communication (Socket and RPC) [Slide]
  • Day 05 (Oct 26, 2018): Naming [Slide]
  • Day 06 (Nov 02, 2018): Clock synchronization [Slide]
  • Day 07 (Nov 09, 2018): Mutual exclusion & Election [Slide]
  • Day 08 (Nov 16, 2018): Transaction [Slide]
  • Day 09 (Nov 30, 2018): Concurrency control [Slide1] Consistency & Replication [Slide2]
  • Day 10 (Dec 07, 2018): [NO CLASS]
  • Day 11 (Dec 14, 2018): Fault tolerance & Agreement [Slide]
  • Day 12 (Dec 21, 2018): Security [Slide]
  • Day 13 (Jan 11, 2019): Examples: NFS & Web [Slide]
  • Day 14 (Jan 18, 2019): [NO CLASS]

    2017 Fall

  • Day 01 (Sep 22, 2017): Introduction [Slide]
  • Day 02 (Sep 29, 2017): Architecture [Slide]
  • Day 03 (Oct 06, 2017): Process [Slide]
  • Day 04 (Oct 13, 2017): Communication (Socket and RPC) [Slide]
  • Day 05 (Oct 20, 2017): [NO CLASS]
  • Day 06 (Oct 27, 2017): Naming [Slide]
  • Day 07 (Nov 10, 2017): Clock synchronization [Slide]
  • Day 08 (Nov 17, 2017): Mutual exclusion & Election [Slide]
  • Day 09 (Dec 08, 2017): Transaction [Slide1] Concurrency control [Slide2]
  • Day 10 (Dec 15, 2017): [NO CLASS]
  • Day 11 (Dec 22, 2017): Consistency & Replication [Slide]
  • Day 12 (Jan 12, 2018): Fault tolerance & Agreement [Slide]
  • Day 13 (Jan 19, 2018): Security [Slide]
  • Day 14 (Jan 20, 2018): Examples: NFS & Web [Slide]

    2016 Fall

  • Day 01 (Sep 23, 2016): Introduction [Slide]
  • Day 02 (Sep 30, 2016): Architecture [Slide]
  • Day 03 (Oct 07, 2016): Process [Slide]
  • Day 04 (Oct 14, 2016): Communication (Socket and RPC) [Slide]
  • Day 05 (Oct 21, 2016): Naming [Slide]
  • Day 06 (Oct 28, 2016): Clock synchronization [Slide]
  • Day 07 (Nov 04, 2016): Mutual exclusion & Election [Slide]
  • Day 08 (Nov 25, 2016): Transaction [Slide]
  • Day 09 (Dec 02, 2016): Concurrency control [Slide]
  • Day 10 (Dec 09, 2016): [NO CLASS]
  • Day 11 (Dec 16, 2016): Consistency & Replication [Slide]
  • Day 12 (Jan 06, 2017): Fault tolerance & Agreement [Slide]
  • Day 13 (Jan 13, 2017): Security [Slide]
  • Day 14 (Jan 20, 2017): Examples: NFS & Web [Slide]

    2015 Fall

  • Day 01 (Sep 25, 2015): Introduction [Slide]
  • Day 02 (Oct 02, 2015): [NO CLASS]
  • Day 03 (Oct 09, 2015): Architecture [Slide]
  • Day 04 (Oct 16, 2015): Process [Slide]
  • Day 05 (Oct 23, 2015): Communication (Socket and RPC) [Slide]
  • Day 06 (Oct 30, 2015): Naming [Slide]
  • Day 07 (Nov 06, 2015): Clock synchronization [Slide]
  • Day 08 (Nov 27, 2015): Mutual exclusion & Election [Slide]
  • Day 09 (Dec 04, 2015): Transaction [Slide]
  • Day 10 (Dec 11, 2015): Concurrency control [Slide]
  • Day 11 (Dec 18, 2015): Consistency & Replication [Slide]
  • Day 12 (Dec 25, 2015): Fault tolerance & Agreement [Slide]
  • Day 13 (Jan 08, 2016): Security [Slide]
  • Day 14 (Jan 15, 2016): Examples: NFS & Web [Slide]

    2014 Fall

  • Day 01 (Sep 26, 2014): Introduction [Slide]
  • Day 02 (Oct 03, 2014): Architecture [Slide]
  • Day 03 (Oct 10, 2014): Process [Slide]
  • Day 04 (Oct 17, 2014): Communication (Socket and RPC) [Slide]
  • Day 05 (Oct 24, 2014): Naming [Slide]
  • Day 06 (Oct 31, 2014): Global state & Positioning [NO CLASS]
  • Day 07 (Nov 07, 2014): Clock synchronization [Slide]
  • Day 08 (Nov 14, 2014): Mutual exclusion & Election [Slide]
  • Day 09 (Nov 28, 2014): Transaction & Deadlock [Slide]
  • Day 10 (Dec 05, 2014): Consistency [Slide]
  • Day 11 (Dec 12, 2014): Replication [Slide]
  • Day 12 (Dec 19, 2014): Fault tolerance & Agreement [Slide]
  • Day 13 (Jan 09, 2015): Security [Slide]
  • Day 14 (Jan 16, 2015): Examples: NFS & Web [Slide]

    2013 Fall

  • Day 01 (Sep 27, 2013): Introduction [Slide]
  • Day 02 (Oct 04, 2013): Architecture [Slide]
  • Day 03 (Oct 11, 2013): Process [Slide]
  • Day 04 (Oct 18, 2013): Communication (Socket and RPC) [Slide]
  • Day 05 (Oct 25, 2013): Naming [Slide]
  • Day 06 (Nov 01, 2013): Clock synchronization [Slide]
  • Day 07 (Nov 08, 2013): Global state & Positioning [NO CLASS]
  • Day 08 (Nov 15, 2013): Mutual exclusion & Election [Slide]
  • Day 09 (Nov 29, 2013): Transaction & Deadlock [Slide]
  • Day 10 (Dec 13, 2013): Consistency [Slide]
  • Day 11 (Dec 20, 2013): Replication [Slide]
  • Day 12 (Dec 27, 2013): Fault tolerance & Agreement [Slide]
  • Day 13 (Jan 15, 2014): Security [Slide]
  • Day 14 (Jan 17, 2014): Examples: NFS & Web [Slide]

    2012 Fall

  • Day 01 (Sep 24, 2012): Introduction [Slide]
  • Day 02 (Oct 01, 2012): Architecture & Process [Slide]
  • Day 03 (Oct 15, 2012): Communication (Socket) [Slide]
  • Day 04 (Oct 22, 2012): Communication (RPC) [Slide]
  • Day 05 (Nov 05, 2012): Naming [Slide]
  • Day 06 (Nov 12, 2012): Clock synchronization [Slide]
  • Day 07 (Nov 19, 2012): Global state & Positioning [Slide]
  • Day 08 (Nov 26, 2012): Mutual exclusion & Election [Slide]
  • Day 09 (Dec 03, 2012): Transaction & Deadlock [Slide]
  • Day 10 (Dec 10, 2012): Consistency & Replication #1 [Slide]
  • Day 11 (Dec 17, 2012): Consistency & Replication #2 [Slide]
  • Day 12 (Jan 07, 2013): Fault tolerance & Agreement [Slide]
  • Day 13 (Jan 15, 2013): Security [Slide]
  • Day 14 (Jan 21, 2013): Examples: NFS & Web [Slide]