Yet Another Page on Readings in Distributed Systems
Table of Contents
This page is dedicated to general discussion of distributed systems, references to general overviews and the like. Distributed systems are difficult and even the well established ones aren't bulletproof. How can we make this better? As SysAdmins? As Developers? First we can attempt to understand some of the issues related to designing and implementing distributed systems. Then we can throw all that out and figure out what really happens to distributed systems.
"Distributed systems are hard." -Everyone.
Recommended Reading
General
- Fallacies of Distributed Computing
- CAP Theorem
- LYSEFGG: Distribunomicon: My other cap is a theorem
- For a more entertaining introduction to CAP, Hebert's ''Learn You Some Erlang for Great Good'' has a really good subsection on the topic that includes the zombie apocalypse and some introduction to how a blend between AP and CP systems can be achieved.
- CAP Theorem Proof
- You can't sacrifice partition tolerance
- Consistency Model
- Paxos
- Vector Clock
- Split-Brain
- Network Partitions
- Distributed Systems and the End of the API
- The Log: What every software engineer should know about real time data's unifying abstraction
The Jepsen "Call me maybe" articles are really good, well written essays on topics and technologies related to distributed systems.
Introductory post to the "Call me maybe" series:
Here are some personal recommendations:
Really anything from Ferd Herbert is good. Particularly, the first and last chapters of Erlang In Anger which includes longer essays from his blog posts.
General Networking
Hadoop ecosystem
This link is more specific to HDFS and is a rather limited experiment but nonetheless a good read to further understand partition issues that can arise in Hadoop systems:
More links from the Jepsen essays: