[Moscow.pm] Идеальный Map-ер и Reduce-ер
Монашёв Михаил
postmaster на softsearch.ru
Ср Янв 21 05:43:39 PST 2009
Здравствуйте, Руслан.
Мапер и редьюсер должны иметь 3 фазы: инициализация, обработка данных,
финал. Причём в каждой фазе можно выплёвывать наружу данные. Так
например при инициализации можно выставить в ноль какие-то счётчики, в
обработке их накрутить, а в финале - выплюнуть.
Прочитал твои мысли и пришёл к выводу, что фаза обработки пропускает
через себя и выдаёт наружу много данных. Не разумно накапливать эти
данные в переменных. Оперативной памяти не хватит в общем случае.
Должна быть мини-функция, которая получит ОДНУ пару ключ->значение,
обработает её и СРАЗУ выплюнет результат, если он имеется.
Я никогда не использовал memcachdb и не знаю про его стабильность, но
мне видится полезным его функционал в том плане, что это надёжное
хранилище (если один memcachdb умирает и он реплицировался, то тут же
избирается другой мастер среди слейвов и вроде данные не теряются). У
него есть команда append(), что позволяет результаты работы разных
маперов средствами memcachdb сразу аппендить. У него есть возможность
получить все ключи, что позволяет редьюсерам, запущенным на одной
машине с memcachdb получать все предназначенные для него данные
локально.
--
С уважением,
Монашёв Михаил, SoftSearch.ru
mailto:postmaster на softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
Подробная информация о списке рассылки Moscow-pm