Current schedule of readings

This list is neither sound (i.e., if something’s listed here, that doesn’t mean we’ll read it) nor complete (i.e., if something’s not listed here, that doesn’t mean we won’t read it).

Date Topic Presenter Reading
Friday, 9/28 Course overview Lindsey  
Monday, 10/1 The CAP trade-off Lindsey Seth Gilbert and Nancy Lynch, Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services (2002) (see also: Gilbert and Lynch’s Perspectives on the CAP Theorem (2012))
Wednesday, 10/3 The CAP trade-off Aldrin Eric Brewer, CAP Twelve Years Later: How the “Rules” Have Changed (IEEE Computer, 2012)
Friday, 10/5 Consistency models Dev Maurice P. Herlihy and Jeannette M. Wing, Linearizability: A Correctness Condition for Concurrent Objects (TOPLAS 1990)
Monday, 10/8 Consistency models Natasha Mustaque Ahamad et al., Causal memory: definitions, implementation, and programming (Distributed Computing, 1995) (off-campus access link (requires CruzID Gold login))
Wednesday, 10/10 Consistency models Abhishek Leslie Lamport, Time, Clocks, and the Ordering of Events in a Distributed System (1978)
Friday, 10/12 Consistency models Austen Douglas B. Terry et al., Session Guarantees for Weakly Consistent Distributed Data (PDIS ‘94) (off-campus access link (requires CruzID Gold login))
Monday, 10/15 Consistency models Abhishek Wyatt Lloyd et al., Don’t Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS (SOSP ‘11)
Wednesday, 10/17 Consistency models Lindsey Paolo Viotti and Marko Vukolić, Consistency in Non-Transactional Distributed Storage Systems (ACM Computing Surveys, 2016) (off-campus access link (requires CruzID Gold login)) (cf. the Jepsen overview of consistency models)
Friday, 10/19 Replicated data types Sohum Marc Shapiro et al., Conflict-free Replicated Data Types (2011)
Monday, 10/22 Replicated data types Dev Marc Shapiro et al., A comprehensive study of Convergent and Commutative Replicated Data Types (2011)
Wednesday, 10/24 Class cancelled due to campus labor strike    
Friday, 10/26 Replicated data types Austen Sebastian Burckhardt et al., Cloud Types for Eventual Consistency (ECOOP ‘12) (off-campus access link (requires CruzID Gold login))
Monday, 10/29 Replicated data types (aim to be done with a draft of your first blog post and soliciting editor/instructor feedback by today) Sohum Sebastian Burckhardt et al., Replicated Data Types: Specification, Verification, Optimality (POPL ‘14) (see also: Burckhardt’s book, Principles of Eventual Consistency)
Wednesday, 10/31 Combining consistencies Guest speaker: Brandon Holt (special location: Engineering 2, Room 280) Brandon Holt et al., Disciplined Inconsistency with Consistency Types (SoCC ‘16)
Friday, 11/2 Combining consistencies Aldrin Alexey Gotsman et al., ‘Cause I’m Strong Enough: Reasoning About Consistency Choices in Distributed Systems (POPL ‘16)
Monday, 11/5 Combining consistencies Natasha Matthew Milano and Andrew C. Myers, MixT: a Language for Mixing Consistency in Geodistributed Transactions (PLDI ‘18)
Wednesday, 11/7 *pause for breath*    
Friday, 11/9 Combining consistencies Lindsey KC Sivaramakrishnan, Gowtham Kaki, and Suresh Jagannathan, Declarative Programming over Eventually Consistent Data Stores (PLDI ‘15)
Monday, 11/12 No class (Veterans Day) (hard deadline to have your first of two blog posts published)    
Wednesday, 11/14 Languages and frameworks for distribution Guest speaker: Peter Alvaro Peter Alvaro et al., Consistency Analysis in Bloom: a CALM and Collected Approach (CIDR ‘11)
Friday, 11/16 Languages and frameworks for distribution Dev Neil Conway et al., Logic and Lattices for Distributed Programming (SoCC ‘15) (off-campus access link (requires CruzID GOld login))
Monday, 11/19 Languages and frameworks for distribution Sohum Yanhong A. Liu et al., From Clarity to Efficiency for Distributed Algorithms (OOPSLA ‘12) (see also: the extended TOPLAS version; the DistAlgo website)
Wednesday, 11/21 Languages and frameworks for distribution Abhishek Cezara Drăgoi, Thomas Henzinger, and Damien Zufferey, PSync: A partially synchronous language for fault-tolerant distributed algorithms (POPL ‘16) (see also: the authors’ previous SNAPL ‘15 paper on this project for helpful context)
Friday, 11/23 No class (Thanksgiving)    
Monday, 11/26 Languages and frameworks for distribution Guest speaker: Ankush Desai (special location: Engineering 2, Room 280) Ankush Desai et al., P: Safe Asynchronous Event-Driven Programming (PLDI ‘13) (off-campus access link (requires CruzID Gold login)) (see also: P on GitHub)
Wednesday, 11/28 Languages and frameworks for distribution Natasha Sergey Bykov et al., Orleans: Cloud Computing for Everyone (SoCC ‘11)
Friday, 11/30 Languages and frameworks for distribution Guest speaker: Michael Isard (special location: Engineering 2, Room 215) Derek G. Murray et al., Naiad: A Timely Dataflow System
Monday, 12/3 Pat Helland’s colloquium talk (be done with a draft of your second blog post and soliciting editor/instructor feedback by today)    
Wednesday, 12/5 Abstractions for configuration management Guest speaker: Arjun Guha (special location: Engineering 2, Room 280) Rian Shambaugh, Aaron Weiss, and Arjun Guha, Rehearsal: A Configuration Verification Tool for Puppet (PLDI ‘16) (see also: Aaron Weiss, Arjun Guha, and Yuriy Brun, Tortoise: Interactive System Configuration Repair (ASE ‘17)
Friday, 12/7 Abstractions for configuration management Aldrin/Austen Sameer Ajmani, Barbara Liskov, and Liuba Shrira, Modular Software Upgrades for Distributed Systems (ECOOP ‘06); Mark Reitblatt et al., Abstractions for Network Update (SIGCOMM ‘12)
Wednesday, 12/12 final exam end-of-quarter celebration at 10am (hard deadline to have your second of two blog posts published) Guest speaker: Mohsen Lesani (special location: the LSD lab (Engineering 2, Room 398)) Mohsen will be telling us about his new work on replication coordination analysis and synthesis. No required reading.

Further reading

There’s a vast amount of reading material that would be in scope for a course on “languages and abstractions for distributed programming”, but that this particular course won’t have time to cover, including but not limited to: