
分散Key-Valueストアの本命「Bigtable」(1)
もう1つの、DBのかたち、分散Key-Valueストアとは
有限会社スティルハウス
吉川和巳
2009/7/2
RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その本命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説
クラウド時代のデータベース「分散Key-Valueストア」
| 今回の主な内容 ・クラウド時代のデータベース 「分散Key-Valueストア」 ・分散KVSとRDBは何が違うのか? ・RDBが超えられない「CAP定理」のカベ ・分散KVSの「使いにくさ」に対応する、 2つの利点 ・クラウドによる「IT補完計画」が始まった |
グーグルがインターネットの世界をここまで席けんできた最大の理由は何でしょうか。実は、それは同社の優れた検索技術ではありません。グーグルが成し遂げた最も大きなブレークスルーの1つは、同社が生み出した巨大な分散データストア、「Bigtable」にあります。
Bigtableは、Google検索をはじめ、YouTubeやGoogle Map、Google Earth、Google Analytics、Google App Engineなど、グーグルの70以上のプロジェクトの基盤として利用されています。合計で数PB(ペタバイト)に達する天文学的規模のデータを、全世界36カ所以上のデータセンターに配置された数万〜数十万台のサーバに分散して格納し、これらグーグルの各種サービスの圧倒的なスケーラビリティと高可用性を低コストで実現しています。
■ 分散KVSは、「クラウド」という地殻変動の原因の1つ
Bigtableは、リレーショナルデータベース(以下、RDB)ではなく、いわゆる「分散Key-Value Store(以下、KVS)」の1つです。KVSは、プログラミング言語の連想配列やMapと同様に「Key(キー)」と「Value(値)」のペアからなる、ごくシンプルなデータモデルに基づくデータストアです。KVSは「キー・バリュー型データストア」「Key/Valueストア」などと呼ばれることもあります。
いま、このBigtableを代表とする分散KVSが、あたかも「ロード・オブ・ザ・リング」の“指輪”のような破壊的なパワーを発揮しつつあります。分散KVSは、グーグルの圧倒的な強さの源泉であり、インターネットの世界で起こりつつある「クラウドコンピューティング」という地殻変動の原因の1つでもあります。
■ 知ってますか? いろいろな分散KVS
例えばAmazonでは、大規模データ管理用の分散KVSとして「Amazon Dynamo」を開発して同社のサービス実装に用いているほか、その機能を外部向けサービス「Amazon SimpleDB」として一般公開しています(参考:米アマゾン、Webデータベース「SimpleDB」を開発)。
またマイクロソフトは、同社のクラウドサービス「Windows Azure」にて、分散KVS「Azure Storage Services」を提供予定です。
一方、国内でも、楽天では大規模分散データストア「ROMA」を開発し、サービスへの導入を検討している段階です(参考:大規模分散処理向けの国産“ウェブOS”をRubyで開発中)。
■ ほかにもKVS型データ管理システムが流行中
さらに、Apache Software Foundationの「Apache CouchDB」は、並列プログラミング言語「Erlang」で実装されたスケーラビリティの高いドキュメント指向データベースとして、高い注目を集めています。
CouchDBについては、下記をご参照ください。
| ゆったリラックス! CouchDBがあるところ ドキュメントを手軽にWebで公開したいとき、リレーショナルデータベースで実装することに違和感を覚えることはありませんか? CouchDBはそのようなニーズに合った、新しいデータベース管理システムです。CouchDBを知り、リラックスしながら実装をしていきましょう 「Database Expert」フォーラム |
||
mixiでは、自社開発のKVS「Tokyo Tyrant」を用いて高負荷なログイン処理の実装に使用しています。
分散KVSとRDBは何が違うのか?
ではなぜ、クラウドコンピューティングの基盤としてRDB(Relational DataBase)ではなく分散KVSへの移行がいま進みつつあるのでしょうか。この両者のデータモデルやアーキテクチャの違いを比較してみます。
![]() |
| 図1 RDBと分散KVS |
繰り返しますが、分散KVSは、「キー」と「値」のペアからなる、シンプルなデータモデルに基づくデータストアです。原則、分散KVSは「キーを指定して値を読み書きする」という単純な操作にのみ対応します。
| 表 分散KVSとRDBの比較 | ||||||||||||||||||
|
次ページからは、分散KVSとRDBの違いを具体的に見ていきます。
| Index | ||||||||
|
||||||||
分散Key-Valueストアの本命「Bigtable」 バックナンバー 連載インデックスへ»
- 第1回 もう1つの、DBのかたち、分散Key-Valueストアとは
- 第2回 素朴なBigtable、できること できないこと
- 第3回 ここが大変だよBigtableとGoogle App Engine
| Java Solution全記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- Webの表示速度を遅くする「SSLハンドシェイク」とは (2010/2/9)
安全性を担保しようとWebページにSSLを適用すると、負荷の高い処理が実行される。速度と安全性は両立できるのか? - クラウド活用「雲活」のために押さえるべき39のポイント (2010/2/2)
活用するべきサービスか否か、クラウドの利点・問題点、クラウドプラットフォーム提供企業になるための条件、開発者がするべきことに分けて紹介 - 再利用性の高いクラス作成に重要な“アクセス制御” (2010/1/28)
Javaのアクセス修飾子public、private、protectedや、Eclipseで簡単に作れるアクセサメソッドgetter、setterについて解説 - DB設計の神ツール「ERMaster」なら、ここまでできる (2010/1/21)
直感的なUIに、カスタマイズ可能な、Excel出力のテーブル定義書、辞書機能など多機能なERモデリングの無料Eclipseプラグインです
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |











