иногда просто узнаешь чтото новое =)

MapReduce

И вот хочу отрекомендовать статью MapReduce за авторством Jeffrey Dean о MapReduce. Кто такой этот Jeffrey? Это Чак Норрис в разработке софта.

Когда Джефф Дин разрабатывает программу, то сначала создаёт бинарник, а потом пишет исходный код как документацию

Мои впечатления

Cтатья представляет короткий 13 страничный документ.Описывает модель вычислений map-reduce,которая позволяет распараллелить задачи по нескольким машинам. Пример приведенный в статье, это подсчет числа вхождений слова в текст. Также например распределленный grep(утилита в unix ,которая находит строки отвечающие заданной).

Пример

Для меня сущность map-reduce заключена в следующем примере. Представим,что вы Санта Клаус,у вас большшшоооой склад с подарками.И вам срочно нужно доставить детям мноого вкусных и непросроченных шоколадок, сосчитать сколько и какие шоколадки есть,и погрузить в мешок. Вы зовете своих помощников эльфов и даете задание каждому:

  • Пойдешь на склад,у тебя по 5 рядов , будешь перебирать все товары на полке, если встретишь шоколадку,и она не просрочена напишт на листике ее название.
  • Как закончишь,тащите листик ближайшему бригадиру эльфу, и получай от него следующие 5 рядов. Работать,пока не обойдете весь склад.

Бригадиры тем временем,получает листики с названиями шоколадок,суммируют и отправляют вам отчет.

Задания которые вы даете эльфам,и они бегут выполнять это map,а когда эльфам-бригадирам приносят бумажечки с отчетом,и они суммируют ,это reduce.

В статье Джефа Дина,также описано как они обеспечивают отказоустойчивость т.е. что делать если ваш worker упал (в контексте данного примера эльф например наелся шоколадок с коньяком и прилег поспать). Что они делают ,если ваш worker медленно работает( эльф споткнулся о коробку,и захромал,еле ходит)