Coordination Avoidance in Database Systems [pdf]
vldb.org
vldb.org
http://research.microsoft.com/pubs/211297/onward14.pdf
The idea is to let computations proceed uncoordinated, build a dependency graph, and then "fix" computations that read stale information by re-executing them (like transactions, except retry is automatic and effects are undone after re-execution).
The thing I find really compelling about this paper is that it's not tied to a single coordination method, though -- it pulls everything back to application level invariants. Human beings have a bad track record of reasoning about invariants in distributed systems, but computers are pretty good at that sort of thing... if we can specify our invariants explicitly, and let the machine figure out how exactly to spread that work out on the cluster, I think we'll come out far ahead.