In this second part in the "Hands On Review of the Dynamo Paper" we take a look at only acknowledging update to user after it has been written to multiple stores, and comparing read values from multiple sources to ensure consistent reads.
Instead of just listing off the myriad interesting ideas in the Amazon Dynamo paper, I decided it would be more interesting for both myself and readers to actually walk through implementing a distributed key-value store and incrementally evolve it using the ideas introduced in the Amazon Dynamo paper.
This article looks at a couple of approaches for implementing systems with recurring events using message-passing based concurrency (Erlang and Clojure are used in code snippets). In particular it looks at the ping-pong, circle, coordinator and gossip approaches to distributed communication.
A fairly indepth tutorial which takes a look at using Clojure to extract data from webpages, using agents to process data, and a few other knickknacks.
This post contains an extremely brief discussion on how Clojure agents differ from Erlang actors, and then follows with examples o fusing Clojure agents to serialize file writes, form message relays and perform parallel HTTP fetches.
Another quick Clojure blog entry, this one on writing out file contents.
A brief overview to approaches to reading in files in Clojure.
A quick walkthrough for setting up the TLA+ tools on OS X.
A few quick comments on the excellent paper from 1997, "Why Engineers Should Consider Formal Methods".
We don't know how long we'll live, but we do know our time is limited, and life could be thought of as our endeavor to optimize the economics of our time. Yet, much like the current financial debacle, often the attempt to optimize ends poorly.
Software engineer, technical leader, sci-fi reader, and so on. Born in NC, living in SF, and glad to grab a coffee.