DEV Community

Discussion on: Explain MapReduce like I'm five

 
rhymes profile image
rhymes • Edited

I think it became a thing when massive scalability was required.

The idea of dividing computation in smaller parts and then combining it to return a result is as old as modern programming I think. Sorting (quicksort for example) is an example of a divide and conquer algorithm. Generic tail recursion is another example.

I would say MapReduce is a specialization of a divide and conquer type of algorithm but I could be wrong about this.

The primitives "map" and "reduce" are part of functional computer languages since way before MapReduce was created so I think people were aware they could something do like that but could not do so at scale.

MapReduce IIRC was implemented at large by Google in their efforts to index the WWW. Here you can browse the slides describing the algorithm: research.google.com/archive/mapred...

Note that they used a distributed file system (GFS) to share data.

Thread Thread
 
rhymes profile image
rhymes

sorry I forgot the 5 year old part :-D

Thread Thread
 
ben profile image
Ben Halpern

Thread Thread
 
nickshanks profile image
Nicholas Shanks

Not so Genius.jpg : c ≠ a² + b² (right-angled triangle, left hand side of board)