Technology

テクノロジー

Google の巨大テーブル

佐藤剛宣
2008年6月20日 / 15:20
 
 
“どうして商用のデータベースを使わないのですか?”

「商用のデータベースが想定している規模より大きすぎるからですね」
「仮に何とかしてその規模を実現できたとしても、コストが高くなりすぎます」
「データベースよりもっと下の層のチューニングができれば大幅に性能というのは改善できるのですが、商用のデータベースが上にいたら簡単にはできません」

「もちろん、そんなものを作るのが楽しいというのもありますよ」

“それで、それはどれ位大きいのでしょうか?”

「一番大きいものだと、6,000TB で、数千台のマシンにまたがっています」
楽しそうにプレゼンを進めるのは、5月28日と29日、サンフランシスコの Moscone West で行われた「GoogleI/O」(Google の技術者カンファレンス)のセッションに登場した、Google のフェローである Jeff Dean 氏だ。

これは、Google が独自に開発した、「BigTable」と呼ばれる、システムに関する Q&A 部分なのだが、1つのテーブルで 6,000TB、6百万ギガバイトにもなるというのだ。

もう少し馴染みのあるようなテーブル、例えばカラムが20個あるテーブルなら何行になるだろうか?

1つのカラムに平均10文字入っているとすると、1文字2バイトで換算すると1行あたり平均200バイトになる。

6,000,000,000,000,000 / 200 = 30,000,000,000,000行

見るだけでも恐ろしいが、300億行だ。

このような途方もない巨大システムの舞台裏を、Jeff 氏は楽しそうに紹介したのだった。

この舞台裏にはあるのは、巨大で高価なサーバーではない。ラックというサーバーの棚に、安価なサーバーがこれ以上ないというほど目一杯詰め込まれ、フロアに並ぶ、見渡す限りのラックだ。

サーバーの数は、なんと数十万台規模だと推定されている。

「サーバーは、通常3年間使用可能」
「もし1万台のサーバーを持っていたら、一日に10台が寿命による入れ替えとなる」

ということは、数十万台サーバーを運用していたら、毎日数百台を入れ替える計算になる。

ますます途方もない話だ。

これらを人手に頼って管理していたら、大変なことになるのは想像に難くない。そこでこれらのインフラは、自律的に稼動するように高度な管理ソフトウェア(分散ファイルシステム)で制御されている。

そしてその上に、BigTable などの革新的なソフトウェアが乗っているのだ。

BigTable は、名前を聞くとテーブルのようだが、むしろスプレッドシート(もしくはハッシュテーブル)に近いものだ。

例えばカラムの数は可変で、カラムにグループをつけられるし、行にキーがついていたりする。

いわゆるデータベースというと事前に構造を定義しなければならない。つまり、定義してあるから取り出せるというわけだ。

一方 Google が提供するような検索エンジンは全く性質が異なる。事前にとってくる Web ページなどの情報はどんなものか定義できないので、とにかくシンプルに格納しておいて、柔軟に探して取り出せるようにするものだ。

そしてこの BigTable もそういうコンセプトに基づいている。

さて、この BigTable のコンセプトを忠実に実装しているようなプロジェクト(HyperTable)が存在するので、よく知っているデータベースの MySQL と性能などを比較してみたい。

次回はその詳細と結果を報告するので、お楽しみに。

 
記事提供:db4objects
【関連記事】
タイムマシン
全記録時代への挑戦
嘘をつくコンピュータ――2
嘘をつくコンピュータ
考えるデータベース

New Topics

Special Ad

ゆりかごからロケットまで、すべての乗り物をエンジョイ
ゆりかごからロケットまで、すべての乗り物をエンジョイ えん乗り」は、ゆりかごからロケットまで、すべての乗り物をエンジョイする、ニュース、コラム、動画などをお届けします! てんこ盛りをエンジョイするのは こちらから

Hot Topics

IT Job

Interviews / Specials

Popular

Access Ranking

Partner Sites