MapReduce odbiega od większości systemów dzielenia i podbijania w dość fundamentalny sposób, ale taki, który jest tak prosty, że wiele osób prawie za nim tęskni. Prawdziwy geniusz polega na oznaczaniu wyników pośrednich.
W typowym (poprzednim) systemie dzielenia i podbijania dzielisz pracę szeregowo, równolegle wykonujesz pakiety robocze, a następnie ponownie scalasz wyniki z pracy.
W MapReduce dzielisz pracę szeregowo, równolegle wykonujesz pakiety robocze i otagujesz wyniki, aby wskazać, które wyniki towarzyszą innym wynikom. Scalanie jest następnie szeregowe dla wszystkich wyników z tym samym znacznikiem, ale może być wykonane równolegle dla wyników, które mają różne znaczniki.
W większości poprzednich systemów krok scalania stał się wąskim gardłem w przypadku wszystkich zadań oprócz najbardziej trywialnych. Dzięki MapReduce nadal może tak być, jeśli charakter zadań wymaga, aby wszystkie połączenia były wykonywane szeregowo. Jeśli jednak zadanie pozwala na pewien stopień równoległego łączenia wyników, MapReduce daje prosty sposób na skorzystanie z tej możliwości. Większość innych systemów wykonuje jedną z dwóch czynności: albo wykonuje wszystkie scalenia szeregowo tylko dlatego, że może być konieczne do niektórych zadań, albo statycznie definiuje równoległe scalanie dla konkretnego zadania. MapReduce zapewnia wystarczającą ilość danych na etapie łączenia, aby automatycznie zaplanować jak najwięcej równolegle, jak to możliwe, przy jednoczesnym zapewnieniu (zakładając, że nie popełniłeś błędów w etapie mapowania), że zachowana jest spójność.
Zauważ też, że w MapReduce domyślnie zakłada się, że wszystkie kroki mogą być rekurencyjne, więc mogę mieć początkowy krok mapowania, który dzieli duże zadanie na 5 mniejszych zadań, które można wykonać równolegle - ale każdy z nich może (w kolei) zostaną przypisane do szeregu innych mniejszych równoległych zadań i tak dalej.
Prowadzi to do struktury drzewa zarówno po stronie mapowania, jak i strony redukującej, aby szybko rozbić duże zadanie na wystarczającą liczbę części, aby skorzystać z wielu maszyn.