Time, Clocks, and the Ordering of Events (Lamport, 1978)
The paper that introduced logical clocks. Published in CACM (1978). Annotated reading at https://semicolony.dev/papers/time-clocks/.
Foundational distributed-systems, storage, and networking papers, read closely and annotated. TL;DR, problem statement, contributions, criticisms, where the ideas show up today.
The paper that introduced logical clocks. Published in CACM (1978). Annotated reading at https://semicolony.dev/papers/time-clocks/.
The threat model behind every blockchain consensus algorithm. Published in ACM TOPLAS (1982). Annotated reading at https://semicolony.dev/papers/byzantine-generals/.
The 13-page plain-English rewrite of the 1989 Paxos paper. Published in SIGACT News (2001). Annotated reading at https://semicolony.dev/papers/paxos-made-simple/.
Designed to be easier to teach than Paxos. Powers etcd, Consul, CockroachDB. Published in USENIX ATC (2014). Annotated reading at https://semicolony.dev/papers/raft/.
Consistent hashing, vector clocks, eventual consistency in one paper. Published in SOSP (2007). Annotated reading at https://semicolony.dev/papers/dynamo/.
The blueprint for HBase, Cassandra, and a generation of wide-column stores. Published in OSDI (2006). Annotated reading at https://semicolony.dev/papers/bigtable/.
TrueTime + Paxos at planetary scale. Foundational for CockroachDB, Yugabyte. Published in OSDI (2012). Annotated reading at https://semicolony.dev/papers/spanner/.
Strongly eventual consistency without coordination. Published in INRIA TR (2011). Annotated reading at https://semicolony.dev/papers/crdts/.
The bound every consensus algorithm has to negotiate. Published in JACM (1985). Annotated reading at https://semicolony.dev/papers/flp/.
Why exactly-once delivery is a fiction and idempotency is the answer. Published in CIDR (2009). Annotated reading at https://semicolony.dev/papers/building-on-quicksand/.
Foundational for every modern KV store — RocksDB, LevelDB, Cassandra. Published in Acta Informatica (1996). Annotated reading at https://semicolony.dev/papers/lsm-tree/.
How nearly every database implements crash recovery. Published in ACM TODS (1992). Annotated reading at https://semicolony.dev/papers/aries/.
Why standard isolation levels are fuzzy. Named snapshot isolation. Published in SIGMOD (1995). Annotated reading at https://semicolony.dev/papers/sql-isolation-critique/.
How Google replaced sharded MySQL on Spanner. Published in VLDB (2013). Annotated reading at https://semicolony.dev/papers/f1/.
Deterministic transaction ordering — an alternative to 2PC. Published in SIGMOD (2012). Annotated reading at https://semicolony.dev/papers/calvin/.
10× speedup on analytical workloads. Spawned Vertica, ClickHouse. Published in VLDB (2005). Annotated reading at https://semicolony.dev/papers/c-store/.
The blueprint for HDFS, Colossus, every "scale-out" filesystem since. Published in SOSP (2003). Annotated reading at https://semicolony.dev/papers/gfs/.
The programming model that defined a decade of big-data systems. Published in OSDI (2004). Annotated reading at https://semicolony.dev/papers/mapreduce/.
Why p99 matters more than averages. Published in CACM (2013). Annotated reading at https://semicolony.dev/papers/tail-at-scale/.
The Google paper documenting the lineage from Borg to Omega to k8s. Published in ACM Queue (2016). Annotated reading at https://semicolony.dev/papers/borg-omega-kubernetes/.
The architectural principle that shaped TCP/IP. Published in ACM TOCS (1984). Annotated reading at https://semicolony.dev/papers/end-to-end-arguments/.
Google's consistent-hash L4 load balancer. Published in NSDI (2016). Annotated reading at https://semicolony.dev/papers/maglev/.
The first BFT protocol practical enough for production. Published in OSDI (1999). Annotated reading at https://semicolony.dev/papers/pbft/.