[Moscow.pm] Идеальный Map-ер и Reduce-ер

Ruslan Zakirov ruslan.zakirov на gmail.com
Ср Янв 21 13:45:43 PST 2009


2009/1/21 Монашёв Михаил <postmaster на softsearch.ru>:
> Здравствуйте, Руслан.
>
> Мапер и редьюсер должны иметь 3 фазы: инициализация, обработка данных,
> финал.  Причём  в  каждой  фазе  можно  выплёвывать наружу данные. Так
> например при инициализации можно выставить в ноль какие-то счётчики, в
> обработке их накрутить, а в финале - выплюнуть.
>
> Прочитал  твои  мысли и пришёл к выводу, что фаза обработки пропускает
> через  себя  и  выдаёт наружу много данных. Не разумно накапливать эти
> данные  в  переменных.  Оперативной  памяти  не хватит в общем случае.
> Должна  быть  мини-функция,  которая получит ОДНУ пару ключ->значение,
> обработает её и СРАЗУ выплюнет результат, если он имеется.

В другом письме я начал тему про отлов ошибок и лучше почитать его сначала.

---- потом читать дальше ----

Мне кажется, что маппер может выплевывать по одному значению, и можно
передавать локальному комбинатору (если он есть), далее эти данные
необходимо кешировать, пока не закончиться работа мапера с полученным
блоком, тогда только можно сказать диспечеру, что блок X обработан. И
если у нас нет редюсера в операции, то можно сразу передавать
публикатору данные, а иначе запихиваем результат в хранилище.

То есть над конкретными функциями(модулем исполнения операции) стоит
контроллер, который общается с деспечером и БД. Этот контроллер
получает задания, информацию об операции, модули при необходимости (с
проверкой версий :), запускает и котроллирует  процесс обработки,
посылает отчеты диспечеру.

>
> Я  никогда не использовал memcachdb и не знаю про его стабильность, но
> мне  видится  полезным  его  функционал  в том плане, что это надёжное
> хранилище  (если один memcachdb умирает и он реплицировался, то тут же
> избирается  другой мастер среди слейвов и вроде данные не теряются). У
> него  есть  команда  append(),  что позволяет результаты работы разных
> маперов  средствами memcachdb сразу аппендить. У него есть возможность
> получить  все  ключи,  что  позволяет  редьюсерам, запущенным на одной
> машине  с  memcachdb  получать  все  предназначенные  для  него данные
> локально.

Про заковыку с аппендом я писал в другом письме. Записи могут стать
очень большими. И про частичное решение тоже написал, которое ведет к
потере одно-нодового размещения одинаковых ключей.

>
> --
> С уважением,
> Монашёв Михаил, SoftSearch.ru
> mailto:postmaster на softsearch.ru
> ICQ# 166233339
> http://michael.mindmix.ru/
> Без бэкапа по жизни.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Best regards, Ruslan.


Подробная информация о списке рассылки Moscow-pm