Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
etcetera08
Sep 11, 2008

MononcQc posted:

1. Get to know your CAP theorem. I'd start with http://www.julianbrowne.com/article/viewer/brewers-cap-theorem and then You Can't Sacrifice Partition Tolerance. I also made my own thing on it at http://learnyousomeerlang.com/distribunomicon#my-other-cap-is-a-theorem

2. Read and try to understand Amazon's Dynamo Paper(PDF). It's a very good read and behind a shitload of systems' architecture now.

3. Read on "The fallacies of distributed computing" (I've made a write up on them vs. Erlang).

4. Then, I’d direct people to try and understand vector clocks/Lamport clocks. I suggest reading Basho's Why Vector Clocks are Easy followed by their post titled Why Vector Clocks are Hard. I then explain them very simply in my project.log. Get to read the papers if you want, there's a shitload of them.

5. Check out PACELC. It's a very simple extension to CAP that basically says that PAC is “during a (P)artition, do you pick (A)vailability or (C)onsistency”, and “(E)lse, do you pick (L)atency or (C)onsistency”. For this one, http://www.slideshare.net/abadid/cap-pacelc-and-determinism and http://dbmsmusings.blogspot.ca/2010/04/problems-with-cap-and-yahoos-little.html are nice.

6. Take a look at Two-Phase Commits and Three-Phase Commit protocol. You could also look into other schemes for replication such as chain replication and whatnot.

7. Consensus algorithms. Three main ones here, in order of how easy they are to understand: Raft, ZAB, and Paxos (notoriously hard to understand). They guarantee consistency but with failed nodes.

Oh and all around that, go read Aphyr's blog, particularly "The trouble with timestamps" and the "Call me maybe" series.

(Sorry this isn't directly about Erlang, but I saw it pop on Twitter as I was reading this thread: http://www.infoq.com/presentations/raft)

Adbot
ADBOT LOVES YOU

  • Locked thread