We revisit the MapReduce programming model in an attempt to provide a rigorous description of the model. We focus on the key abstraction for MapReduce computations; this abstraction is parameterized by the problem-specific ingredients for data extraction and reduction. We use Haskell as a lightweight specification language to capture the essence of MapReduce computations in a succinct, executable and strongly typed manner. Our study substantiates that clarity, generality and correctness of designs (or the presentations thereof) are easily improved, if modest functional programming skills are put to work.
@unpublished{MapReduce,
author = "Ralf L{\"a}mmel",
title = "{Google's MapReduce Programming Model -- Revisited}",
year = 2006,
month = "22~" # jan,
note = {Draft; Online since 2 January, 2006; 26 pages}
}
(C) Ralf Lämmel