NoSQL Zone is brought to you in partnership with:

Arnon Rotem-Gal-Oz is the director of technology research for Amdocs. Arnon has more than 20 years of experience developing, managing and architecting large distributed systems using varied platforms and technologies. Arnon is the author of SOA Patterns from Manning publications. Arnon is a DZone MVB and is not an employee of DZone and has posted 68 posts at DZone. You can read more from them at their website. View Full User Profile

Distributed Computing Reading List

08.22.2012
| 8478 views |
  • submit to reddit

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

Published at DZone with permission of Arnon Rotem-gal-oz, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)