ハードドライブの数の多いものと少ないものがあるが、Googleのサーバ構成は数が少ないとDean氏は言う。そして、より大きい規模でも同様にいくつかの違いがある。「Googleはデータセンターごとに違いがあるが、データセンター内では統一されている」(Dean氏)
サーバ自体に関して言えば、Googleの好みは、1枚のシリコンに多くの処理エンジンを搭載したマルチコアチップだ。チップのクロック速度が上がれば性能が向上すると考えてきた多くのソフトウェア会社は、マルチコアへの対応に苦慮しているが、Googleには非常に合っている。自社のテクノロジを何千台ものコンピュータで構成されるアーキテクチャに適合させなければならなかったGoogleは、すぐに並列処理に飛びついた。
「Googleは本当に心からマルチコアマシンを気に入っている。われわれにとって、マルチコアマシンは、相互接続に優れたたくさんの小型マシンのようなもので、比較的使いやすい」(Dean氏)
Googleは検索などのサービスにすばやく応答する必要があるが、スレッドと呼ばれる一連の命令の速度が遅くても、並列処理ならすばやい応答が可能である。マルチコア、マルチスレッドモデルのプロセッサの設計者にとってはうれしい話だ。
「シングルスレッドのパフォーマンスはGoogleにはまったく重要ではない。Googleには並列化可能な問題がたくさんある」とDean氏は語る。
では、Googleは一体どのようにしてこれらのハードウェア問題を克服しているのかというと、それはソフトウェアだ。それなら、昔とったコンピュータサイエンスの学位を引っ張り出してこようと思う読者もいることだろう。
Dean氏は、Googleのソフトウェアの3つの中核となる要素、すなわち「GFS(Google File System)」「BigTable」「MapReduce」アルゴリズムについて説明した。Googleは、Googleの立ち上げを支援した多くのオープンソースのソフトウェアプロジェクトを支援しているが、これらのパッケージは、一般的な用語として使われる以外はGoogleに所有権がある。
GFSは、3つの要素の中で最下層にあり、多くのサーバにデータを格納し、ほぼすべてのマシンで動作しているとDean氏は述べている。GFSは「サイズが何ペタバイトもある」ファイルシステムで(1ペタバイトは100万Gバイト)、GFSを実行しているクラスタは200以上あり、これらのクラスタの多くは数千台のマシンから構成されている。
GFSは、3台以上のマシン(チャンクサーバ)に通常64Mバイトのデータチャンクを格納し、チャンクサーバで異常が発生した場合、マスターサーバがデータを新しい領域にバックアップする。「マシン故障はすべてGFSシステム、少なくともストレージレベルで処理される」とDean氏は述べた。
すべてのデータに構造を提供するためにGoogleはBigTableを使用している。Oracle、IBMといったメーカーの市販のデータベースは、Googleには適さない。1つには、Googleが要求する規模での運営ができないからだが、たとえ可能だとしても、費用がかかりすぎるとDean氏は言う。
BigTableは、Googleが2004年に設計を開始したもので、「Googleマップ」「Google Earth」「Blogger」「Google Print」「Orkut」および中心となる検索インデックスを始め、70以上のGoogleプロジェクトで使われている。BigTableの最大のインスタンスは、数千台のマシンに分散されている約6ペタバイトのデータを管理するとDean氏は語る。
MapReduceは、Googleの持つデータを実質的に活用できるようにするもので、最初のバージョンは2003年に作成された。たとえば、MapReduceでは、特定の単語がGoogleの検索インデックスに登場した回数、ある単語が表示されているウェブページのリスト、特定のウェブサイトにリンクしているすべてのウェブサイトのリストを確認できる。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
トラディショナルからモダンへ進化するBI
未来への挑戦の成功はデータとともにある
パナソニックのV2H蓄電システムで創る
エコなのに快適な未来の住宅環境
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス