MapReduce diverge de la mayoría de los sistemas de división y conquista de una manera bastante fundamental, pero es tan simple que muchas personas casi lo pierden. El verdadero genio de esto está en etiquetar los resultados intermedios.
En un sistema típico de división y conquista (anterior), divide el trabajo en serie, ejecuta paquetes de trabajo en paralelo y luego combina los resultados de ese trabajo en serie nuevamente.
En MapReduce, divide el trabajo en serie, ejecuta paquetes de trabajo en paralelo y etiqueta los resultados para indicar qué resultados van con qué otros resultados. La fusión es en serie para todos los resultados con la misma etiqueta, pero se puede ejecutar en paralelo para obtener resultados que tengan etiquetas diferentes.
En la mayoría de los sistemas anteriores, el paso de fusión se convirtió en un cuello de botella para todas las tareas, excepto las más triviales. Con MapReduce todavía puede ser así si la naturaleza de las tareas requiere que todas las fusiones se realicen en serie. Sin embargo, si la tarea permite cierto grado de fusión paralela de resultados, entonces MapReduce ofrece una manera simple de aprovechar esa posibilidad. La mayoría de los otros sistemas hacen una de dos cosas: ejecutan todas las fusiones en serie solo porque puede ser necesario para algunas tareas, o bien definen estáticamente la fusión paralela para una tarea en particular. MapReduce le brinda suficientes datos en el paso de fusión para programar automáticamente tanto en paralelo como sea posible, sin dejar de garantizar (suponiendo que no haya cometido errores en el paso de mapeo) que se mantenga la coherencia.
También tenga en cuenta que en MapReduce, está implícito que todos los pasos pueden ser recursivos, por lo que podría tener un paso de mapeo inicial que divide una gran tarea en 5 tareas más pequeñas que se pueden ejecutar en paralelo, pero cada una de ellas podría (en a su vez) se asignan a una serie de otras tareas paralelas más pequeñas, y así sucesivamente.
Esto lleva a una estructura de árbol tanto en el mapeo como en los lados reductores para dividir rápidamente una tarea grande en partes suficientes para aprovechar muchas máquinas.