注目される分散処理技術

いまIT業界では、データや、データのための処理能力をインターネットの向こう側に一箇所に集めて、そのサービスを提供しようというクラウド・コンピューティングなどが注目されています。

世界中のデータをどこか別の場所で高速に処理をするには、ものすごくたくさんのストレージを使って冗長化させながら大容量のファイルを保持したり、たくさんのPCを使って分散処理をしたりする必要があります。

このような分散処理技術の中でも、特に注目される技術を調べていきたいと思います。

Google File System(GFS)

Google File System(GFS)とは、Googleが利用している大規模な分散ファイルシステムのことです。
その規模たるや、想像を絶する大きさのストレージで、これはGoogleの提供する様々なサービス(検索履歴、アクセス解析Gmailなどなど)で利用されています。
このGoogle File Systemは、安価なPCにLinuxをインストールし、例えPCが壊れても、容易に復旧できることに主眼をおいて設計されているそうです。
安い機材を大量に集め、それを最大限にオプティマイズすることで、Googleの分散ファイルストレージは成り立っているのです。
また、ファイルは「読み」と「追記」が多いということ、つまり書き換えが少ないことを前提にして、このファイルシステムは動いているようです。

これらの内容について説明している論文が、Googleから発表されているので、興味のある方はこちらのサイトからダウンロードできます。

MapReduce

Google分散ファイルシステムであるGoogle File Systemを用いながら、その大容量のデータを処理するために使われる分散処理技術がMapReduceです。

Wikipediaによれば、100テラバイト以上のデータセットを並列処理するためのフレームワークで、関数型言語でよく利用されるmap関数とreduce関数から由来されているようです。

この技術はJeffrey Dean氏らによって開発されたもので、C++で実装されているといいます。

このMapReduceを簡単に利用できるスクリプト言語「Sawzall」も頻繁に利用されているそうです。

MapReduceについて説明されている論文は、こちらのサイトからダウンロードできます。