Ricky Ho writes illustrated technical posts on NoSQL databases, scalable system design, and MapReduce-style data processing.
Commenters praise his diagrams and link his NoSQL patterns, CouchDB implementation, and Pregel posts as clear references for database and distributed computing topics.
Thank you. And, heck yes, more people need to be talking about how to deal with computations that are largely repeated. That problem comes up all over the place.
Couchdb had an interesting approach for this that did not require inverses: they persist intermediate reduce results, so that you can re-use nodes in the tree that haven't changed. So clever. http://horicky.blogspot.com/2008/10/couchdb-implementation.html
> In the new system, they are probably doing local walks in the instantiated graph. These local walks are simple iterations, not map-reduce.
Actually it using Pregel, a variation on Map/Reduce:
http://googleresearch.blogspot.com/2009/06/large-scale-graph-computing-at-google.html
http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html
http://portal.acm.org/citation.cfm?id=1582716.1582723
Here are a few resources for Couchdb:
* an intro: http://aimee.mychores.co.uk/2008/09/07/post/320
* a use case: http://kore-nordmann.de/blog/couchdb_a_use_case.html
* CouchDB Implementation: http://horicky.blogspot.com/2008/10/couchdb-implementation.html
* joins in couchdb: http://www.cmlenz.net/archives/2007/10/couchdb-joins
* peepcode: http://peepcode.com/products/couchdb-with-rails
As a programmer the saying "A picture says more then a thousand words" often feels like a fallacy but Ricky Ho has a history of illustrating his points beautifully. His nosql patterns post is another very good read: http://horicky.blogspot.com/2009/11/nosql-patterns.html