MapReduce

Lo que más me agradó del artículo es la forma en la que explica el concepto de MapReduce, así como su funcionalidad, no solamente es una receta de cocina para implementar y entender el modelo de programación. Considero que lo que provocó la necesidad por un modelo que nos permitiera procesar tanta cantidad de datos es algo bastante interesante, ya que no solamente es procesar estos datos de forma rápida, sino también de forma paralela en medida de lo posible y ocultando el desastre que es crear, tener, manejar y mantener este tipo de implementaciones.

Tampoco esperaba que para un procesamiento tan pesado de datos se inspirara en un lenguaje funcional ya que siempre me ha parecido más fácil para nosotros y más pesado para la computadora. Sin embargo, es algo bastante obvio por la forma en que lo describe el artículo, basarse en las funciones de Map y Reduce de Lisp que dan origen a sus hermanos en otros lenguajes funcionales como Clojure o Erlang.

El modelo que usan para correr varios procesos al mismo tiempo creando un maestro y varios trabajadores, me recuerda al modelo de replicación de bases de datos Master-slave. En este caso, resulta muy eficiente porque reduce el tiempo que tardaría una sola maquina distribuyendo el trabajo para cientos de máquinas en vez de que sólo una haga el procesamiento.

La optimización que obtienes por aplicar este modelo, hace posible que se pueda utilizar tanto para trabajos relativamente pequeños, como por compañías grandes que se enfrentan con este problema diariamente, como Google, y nos demuestra que la estrategia de dividir y conquistar sigue siendo una buena aplicación después de miles de años. Lo que más rescato sin embargo, es que lograron implementarlo de una forma bastante más amigable de la que esperaríamos cuando hablamos de programación paralela y más si consideramos la complejidad que se agrega cuando distribuyes en varios equipos y con diferentes jerarquías

Comentarios

Entradas populares de este blog

Blade Runner... quoi?

The State of Parallel Programming

Código Enigma