MapReduce: Výpočetní model Googlu

Google uvolnil popis výpočetního modelu MapReduce (PDF), který je ve firmě používán k distribuovaným výpočtům nad řádově terabajty dat. Model je implementován jako knihovna v C++ a je překvapivě jednoduchý – vše se převádí na práci se seznamy a operace map a reduce nad nimi. Čtenář zběhlý v některých exotičtějších programovacích jazycích je možná zná – autoři ostatně přiznávají, že inspirací byl v tomto případě jazyk Lisp.

Na implementaci je hezké zejména to, že klientský programátor (myšleno ten, kdo používá knihovnu) vůbec nepozná, že výpočet probíhá distribuovaně na tisících počítačů – prostě zavolá nějakou funkci a ta vrátí, až je operace hotová. O low-level věci související s distribuovaným výpočtem (rozložení zátěže, "odstřelování" zaseknutých počítačů...) se stará knihovna samotná a zvenku nejsou vůbec vidět. Google tvrdí, že to značně zjednodušuje implementaci samotných alogritmů, což je zřejmě pravda.

Celá koncepce je opravdu zajímavá, svým způsobem elegantní a její popis doporučuji přečíst každému, koho obdobné problémy aspoň trochu zajímají.