Googleを支える技術 第4章 MapReduce

これまでで一番目から鱗な考え方だと思いました。
まずはその定義から。
Map + Reduce = MapReduce
Mapとは(p138)

ひとまとまりのデータを受け取って新しいデータを生成していくプロセス

Reduceとは(p138)

Mapによって作られたデータをまとめて、最終的に手に入れたい結果を作り上げるプロセス

つまり過程さえ定義すれば、後は勝手にMapReduceが分散して処理を行ってくれます。開発者はMapとReduceだけ意識すればよいので余計な負担はかかりません。また、内部で行われる分散処理はこれまでと同様、障害対策がしっかりと行われます。この辺の話もとても面白いです。さらに、BigtableMapReduceに渡すこともできるように、様々な使い方ができます。うまく抽象化されている証拠だと思います。
インプットとアウトプットを定義してその中の処理をカプセル化する考え方というのは、いろんなところで使えそうです。