Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save svtdanny/236516f61539bc518d175a4cdc4af579 to your computer and use it in GitHub Desktop.
Save svtdanny/236516f61539bc518d175a4cdc4af579 to your computer and use it in GitHub Desktop.
distributed systems readings

#Distributed System Course List

##Systems

##Databases

##Distributed Algorithms

##Data Structures and Algorithms

##Discrete Mathematics and Probability

  • MIT 6.042J (OCW) - Elementary discrete maths, including graph theory and some combinatorics. Lecture slides are available, and good, but the real meat is in the readings.

#Paper List

##Thought Provokers

Ramblings that make you think about the way you design. Not everything can be solved with big servers, databases and transactions.

  • Commentary on coping with latency and it's architectural impacts
  • Large scale systems are everything developers dislike - unpredictable, unordered and parallel
  • A collection of scalable architecture papers from various of the large websites

##Amazon

Somewhat about the technology but more interesting is the culture and organization they've created to work with it.

##Google

Current "rocket science" in distributed systems.

##eBay

Interesting they dumped most of J2EE and use a lot of db partitioning. Check out their site upgrade tool as well.

##Consistency Models

Key to building systems that suit their environments is finding the right tradeoff between consistency and availability.

  • Two phase commit avoidance approaches
  • Two phase commit isn't a silver bullet
  • Helland

##Theory

Papers that describe various important elements of distributed systems design.

##Languages and Tools

Issues of distributed systems construction with specific technologies.

##Infrastructure

##Storage

##Paxos Consensus

Understanding this algorithm is the challenge. I would suggest reading "Paxos Made Simple" before the other papers and again afterward.

Other Consensus Papers

##Gossip Protocols (Epidemic Behaviours)

##P2P

  • Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications

  • Kademlia: A Peer-to-peer Information System Based on the XOR Metric

  • Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems

  • PAST: A large-scale, persistent peer-to-peer storage utility - storage system atop Pastry

  • SCRIBE: A large-scale and decentralised application-level multicast infrastructure - wide area messaging atop Pastry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment