最近はクラウドコンピューティングに関心が集まっているため、キー/値データベースの使用が増えている。この件に関して最も取り上げられているテーマはスケーラビリティである。スケーラビリティは重要な要因であるが、クラウドコンピューティングには、高度にスケーラブルなアプリケーションやサービスを提供する必要のないベンダーも引きつけるその他の長所がある。
次のような使用シナリオを想像することができる。
- 新興企業はローカルサーバーへの投資に消極的で、どちらかと言えば自らが使用するコンピューティングやストレージに対して金を使いたい。
- 企業はデータレイヤを再設計することなく、既存のアプリケーションやサービスをポートすることを希望する。
- 高度な計算能力が必要なのは短期間である。
Tony Bain氏(リンク)は最近発表した記事で、データベースは消滅する運命にあるのか(リンク)を問いかけている。氏はリレーショナルデータベースとキー/値データベースの相違、どちらかを選択する理由に焦点を当てている。Bain氏によると、スケーラビリティとなると、リレーショナルデータベースは分が悪い。
Webサービスなど大きな作業負荷がかかっている環境内で起動されるアプリケーションがどんどん増えると、まずスケーラビリティの要件が次々と変わり、そして次に、非常に大きくなる可能性があります。企業内の単一サーバー上にリレーショナルデータベースがあると、最初のシナリオでは対処が難しくなることがあります。たとえば、ひと晩のうちにロードが3倍になった場合、どれほど迅速にハードウェアをアップグレードできますか。2番目のシナリオでは、一般のリレーショナルデータベースには難しすぎて対処できない可能性があります。
Bain氏は、リレーショナルデータベースではなく、キー/値データベースを選択する4つの理由を挙げている。
- データが非常にドキュメント指向である。
- 開発環境が非常にオブジェクト指向である。
- データストアが安価で、ベンダーが提供するWebサービスプラットフォームと容易に統合する。
- 最も重要な懸案事項は、オンデマンドかつハイエンドのスケーラビリティである。
David Chappell氏(リンク)がAzure Services Platform(リンク)について論文を書いているが、その中で氏はこのトピックに簡単にふれている。氏はクラウドでキー/値データベースを使う理由を多数指摘しているが、次のようにも述べている。
…MicrosoftはSQL Data Servicesをよりリレーショナルな技術に発展させる計画を発表しました。Windows Azureストレージとは異なり、SQL Data ServicesはSQLサーバー上に構築されていることを思い出してください。これにより、より自然に発展させることができます。どんなモデルが提供されるとしても、この技術の目標は変わりません。つまり、あらゆる種類のアプリケーション向けに、スケーラブルで信頼性が高く、低コストのクラウドデータベースを提供することです。
リレーショナルの機能にもよるが、これにより前述のニーズをもつ企業は、いっそう容易にこの技術に適合し、低コストを見込めるようになるかもしれない。
Brian Aker氏(リンク)が開発を始めたDrizzle(リンク)のようなデータベースは、スケールできるリレーショナル性能を目指している。DrizzleはMySQL 6.0のソースをベースにしており、クラウドならびにネットアプリケーション向けに最適化されている。さしあたり、オリジナルのソースからたくさんの機能を取り除き(リンク)、新機能を若干追加している。
- マイクロ・カーネル・アーキテクチャにより、DrizzleはMySQLよりモジュラー性が高い
- 認証やロギングなど、プラガブルなインターフェースが多い
- マルチコアの最適化(これと比較してMySQLでは潜在的にマルチコアの最適化が欠如している)
- 少ないデータ型
- 少ないエンジン
- コードが少ないため、コードベースが小規模で、維持しやすい可能性がある
DrizzleはAlpha段階で、Unixの特徴をもつOS上で開発されており、Windowsは現在サポートされていない。
原文はこちらです:http://www.infoq.com/news/2009/02/Relational-DB-Cloud