MicrosoftのDare Obasanjo氏は、GoogleのJeff Dean氏(サイト・英語)がシアトルのスケーラビリティに関する会議で行ったセッション「MapReduce、BigTable、および大規模なデータセットを取り扱うための、その他の分散システムの概念」についての彼の覚書を、ブログの投稿で共有した。Dare氏によると、話はGoogleの大規模でスケーラブルなアーキテクチャの3つの中心的な要素 - 大規模なデータセットを並列に処理することのできる基盤であるGFS(Google File System)(GFSの説明)、MapReduce(MapReduceの説明)、および構造化されたデータのためのGoogleの分散ストアであるBigTable(BigTableの説明) - に及んだ。
レポートはGoogleの基盤に関するいくつかの興味深い詳細を含んでいる。
GFSについて:
現在Googleには200以上のGFSクラスタがあり、そのいくつかは5000以上のマシンを持っている。彼らは現在、クラスタにわたる40ギガバイト/秒以上の読み書きスループットを備えた5ペタバイト規模のストレージによって実行されるGFSクラスタからデータを検索する、何万台ものマシンのプールを持っている。
MapReduceについて:
MapReduceの基盤は、異なるマシンにわたるタスクの並列化および分散化、マシン障害およびデータのエラー状態の取り扱い、I/O帯域幅の消費を減らすために計算をデータの近くに移動するなどの最適化等となっている。システムの監視および数百~数千台のマシンにわたるサービスのスケーラブルを処理するので、開発者は、データセットのために特定のmapとreduceの操作を実行できる、25~50行程度のコードを書くだけでいい。
BigTableについて:
BigTableはリレーショナルデータベースではない。それは結合をサポートしないし、リッチなSQLのような問い合わせもサポートしない。これはむしろ階層的なマップのデータ構造に近い。それはテラバイトのメモリおよび毎秒100万回の読み書きを扱えるペタバイトのストレージ空間を備えた、大規模でフォールトトレラントな自己管理システムだ。BigTableは現在、構造化されたデータの保存と検索のためのプラットフォームとして、60以上のGoogleの製品とプロジェクトで利用されている。
これらの考えを試してみたい人は、MapReduceおよびGFSのような分散ファイルシステムであるHDFS(Hadoop Distributed Filesystem)の実装を含む、Apache Lucene Hadoopサブプロジェクト(サイト・英語)を始めるのが良いかも知れない。
原文はこちらです:http://www.infoq.com/news/2007/06/google-scalability
(原文は2007年6月25日にリリースされました)