Distributed computing reading list
Warning: file_get_contents(http://graph.facebook.com/http://arnon.me/2012/08/distributed-computing-reading-list/): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/arnon920/public_html/wp-content/plugins/custom-share-buttons/custom-share-buttons.php on line 873
My twitter feed spewed a very good list of distributed computing related papers (compiled by Dan Creswell). There are links to a lot of papers there. Few of my favorites include The fallacies of distributed computing by Peter Deutsch – you may also want to check out the paper I wrote explaining them; Life beyond distributed transactions an apostate’s opinion by Pat Helland and also “The Byzantine generals problem” by Leslie Lamport, Robert Shostak and Marshall Pease, “A note of distributed computing” by Samuel C. Kendall, Jim Waldo, Ann Wollrath and Geoff Wyant and “Harvest, yield, and scalable tolerant systems” by Armando Fox, Eric A. Brewer which I mentioned before in “10 papers every architect should read”
There are a also a few additional papers that are not in that list and that I found illuminating:
“Architectural Styles and the Design of Network-based Software Architectures” by Roy Fielding – This where Roy defines the REST architectural style. I’d recommend reading the whole thesis but if you are short for time at least read chapter 3 – on Networked based architectural styles and chapter 5 where REST is defined.
Apropos REST – looking at “RESTful” APIs it seems that many people didn’t bother reading Fieldings’s dissertation and just call REST anything that uses HTTP verbs. That’s a far cry from what the original definition does. You may want to read “How to get a cup of coffee” by Jib Webber, Savas Parastatidis & Ian Robinson that shows a simple example of what it actually means.
Another thesis worth reading is “Making reliable distributed systems in the presence of software errors” by Joe Armstrong. This is a rather lengthy thesis where Armstrong introduces ERLANG (a great language with a syntax that, well, takes some time to get used to). Chapter 2. section 4.4 and chapter 5 are not erlang specific and are highly recommended. I have a presentation covering similar topics called “Building reliable systems from unreliable components” I presented in QCon 2011
“CAP Twelve Years Later: How the “Rules” Have Changed” by Eric Brewer – Brewer is taking another look at the CAP theorem he defined more than a decade ago. An enlightening read that explains some of the mis-conceptions. You may also want to check “Problems with CAP, and Yahoo’s little known NoSQL system” by Daniel Abadi
“If you have Too Much Data, then ‘Good enough’ is Good enough” by Pat Helland which provides an interesting view on the whole NoSQL/Big data theme which is all the rage these days.
There are many other interesting papers and articles out there and not just related to distributed computing but I think that’s enough for one post (not to mention the larger list by Dan) – but if you find it is interesting I can publish more lists in the future