Readings
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 | 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:
- …yet more foundational or survey papers on consistency models, such as:
- Leslie Lamport, How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs (1979)
- Theo Haerder and Andreas Reuter, Principles of Transaction-Oriented Database Recovery (ACM Computing Surveys, 1983)
- Prince Mahajan, Lorenzo Alvisi, and Mike Dahlin, Consistency, Availability, and Convergence (2011)
- …yet more material on verif{ying, ied} distributed systems, such as:
- James R. Wilcox et al., Verdi: A Framework for Implementing and Formally Verifying Distributed Systems (PLDI ‘15) (see also: the Verdi website)
- Victor B. F. Gomes et al., Verifying Strong Eventual Consistency in Distributed Systems (OOPSLA ‘17)
- Ilya Sergey, James R. Wilcox, and Zachary Tatlock, Programming and Proving with Distributed Protocols (POPL ‘18)
- …material on process calculi, such as:
- the pi-calculus (see Jeannette Wing’s FAQ)
- Cédric Fournet et al., A Calculus of Mobile Agents (CONCUR ‘96)
- Luca Cardelli and Andrew D. Gordon, Mobile Ambients (FoSSaCS ‘98)
- …material on early or pioneering distributed languages, such as:
- Andrew Black et al., Distribution and Abstract Types in Emerald (IEEE TSE 1987)
- Barbara Liskov, Distributed Programming in Argus (CACM 1988)
- Luca Cardelli, A Language with Distributed Scope (POPL ‘95)
- Joe Armstrong, Erlang (CACM 2010)
- Andreas Rossberg et al., Alice Through the Looking Glass (TFP ‘04) (see also: the Alice ML website)
- …material on extending languages for distribution, such as:
- Jeff Epstein, Andrew P. Black, and Simon Peyton Jones, Towards Haskell in the Cloud (Haskell ‘11) (see also: the Cloud Haskell website)
- …more “systems-y” perspectives on mixing consistency levels, such as:
- Douglas B. Terry et al., Consistency-based service level agreements for cloud storage (SOSP ‘13)
- …material on distributed programming models that facilitate testing, such as:
- Ankush Desai et al., Compositional Programming and Testing of Dynamic Distributed Systems (OOPSLA ‘18)
- …material on multitier programming, such as:
- Ezra Cooper et al., Links: web programming without tiers (FMCO ‘06)
- Pascal Weisenburger, Mirko Köhler, and Guido Salvaneschi, Distributed System Development with ScalaLoci (OOPSLA ‘18) (see also: ScalaLoci website and GitHub organization)
- …material on computation orchestration, such as:
- Jayadev Misra and William R. Cook, Computation Orchestration: A Basis for Wide-Area Computing (JSSM 2007)
- David Kitchin et al., The Orc Programming Language (FORTE ‘09)
- …material on modal logic as a basis for distributed computing, such as:
- Joseph Y. Halpern, Using Reasoning About Knowledge to Analyze Distributed Systems (1987)
- Limin Jia and David Walker, Modal Proofs as Distributed Programs (ESOP ‘04)
- Tom Murphy VII, Karl Crary, and Robert Harper, Type-Safe Distributed Programming with ML5 (TGC ‘07) (see also: Murphy’s dissertation, Modal Types for Mobile Code)
- Etc., etc., etc.