I finally had a light-bulb go off in my head about MapReduce. To be honest, part of the problem with understanding it is that the implementation most of us look at (Hadoop) has a considerable amount of implementation detail visible at all times. I'm going to try to explain some of the fundamentals behind it in terms of C#, which has two great advantages: I know it LINQ gives us a fairly decent declarative syntax for expressing algorithms declaratively. Now, as everyone knows, Map and Reduce are lisp terms for project and aggregation respectively. In LINQ, these are...