Papers We’ve Read
Not necessarily papers we love, but we try to continually learn and improve. Reading classics in the field and keeping abreast of new developments is an effective way of doing this.
The Queue
- Reconstructing human contributions to accidents: the new view on error and performance, Sidney W.A. Dekker
- Time, Clocks and the Ordering of Events in a Distributed System
- The Byzantine Generals Problem
- Distributed Snapshots: Determining Global States of a Distributed System
- Paxos Made Simple
- The Part-Time Parliament
- Dynamo: Amazon’s Highly Available Key-value Store
- Machine Learning: The High-Interest Credit Card of Technical Debt
- In Search of an Understandable Consensus Algorithm
- Raft Refloated: Do We Have Consensus?
- Communicating Sequential Processes
- Out of the Tar Pit
- Equal Rights for Functional Objects
- On Understanding Types, Data Abstraction and Polymorphism
- The Invention of Concurrent Programming
- An Axiomatic Basic for Computer Programming
- C4: The Continuously Compacting Collector
- Engineering Self-Adaptive Systems through Feedback Loops
- The Chubby lock service for loosely-coupled distributed systems
- Architecture of a Database System
- A tutorial on the universality and expressiveness of fold
- Use of formal methods at Amazon Web Services
- Fundamental Concepts in Programming Languages
- Your Server as a Function
- Structured Programming With goto Statements
- Organizing Programmes Without Classes
- Mining Query Logs: Turning Search Usage Data into Knowledge
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- Preliminary Experiments In The Physiology And Psychology of Reading
- Predicate Dispatching: A Unified Theory
- Lectures On Constructive Functional Programming
- Recursive Functions of Symbolic Expressions And Their Computation By Machine, Part 1
- Why Functional Programming Matters
- Unikernels: Library Operating Systems for the Cloud – Madhavapeddy et al. 2013
- Ideal Hash Trees
- SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
- Solution of a Problem in Concurrent Programming Control
- Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System
- A Note on Distributed Computing
- A Comprehensive study of Convergent and Commutative Replicated Data Types
- Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs
- Consistency Analysis in Bloom: a CALM and Collected Approach
- Consistency, Availability, and Convergence
- Coordination Avoidance in Database Systems
- Congestion Avoidance and Control
- Google’s Hybrid Approach to Research
- Naiad: A Timely Dataflow System
- Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores
- Balls into Bins – A Simple and Tight Analysis
- The Power of Two Choices in Randomized Load Balancing
- Join-Idle-Queue A Novel Load Balancing Algorithm for Dynamically Scalable Web Services
- Gorilla: A Fast, Scalable, In-Memory Time Series Database
- Spanner: Google’s Globally-Distributed Database
Useful tools
A lot of these papers are published in standard 2-column format. This can be quite annoying to read on a Kindle or similar. You might want to look at: