米Microsoftは2017年5月10日(米国時間)、新しいデータベース(DB)のクラウドサービス「Azure Cosmos DB」を発表した。「Microsoft Azure」の世界30カ所以上ある「リージョン」(データセンター群)にデータを分散保存しながら、一貫性を保ってデータを利用できるという高い拡張性を持つのが特徴。10日に米シアトルで開幕した「Microsoft Build 2017」で発表した。

 10日の基調講演に登壇した同社クラウド&エンタープライズグループ担当エグゼクティブ・バイス・プレジデントのScott Guthrie氏は「Cosmos DBは、スループットやトランザクション性能を無制限に拡張可能であると同時に、様々なデータタイプに対応できるという、新しいタイプのアプリケーションに求められるあらゆるシナリオに適したデータベースだ」と強調した(写真1)。

写真1●米Microsoftのクラウド&エンタープライズグループ担当エグゼクティブ・バイス・プレジデントであるScott Guthrie氏
写真1●米Microsoftのクラウド&エンタープライズグループ担当エグゼクティブ・バイス・プレジデントであるScott Guthrie氏
[画像のクリックで拡大表示]

 Cosmos DBは現在の企業情報システムにおいて主流である「リレーショナルDB(RDB)」と比較して、あらゆる点が異なっている。まずCosmos DBでは、Microsoft Azureが世界38カ所(計画中4カ所を含む)に展開するリージョンにまたがってデータを分散配置できる。データを分散配置することで、リージョンが障害でダウンしたような場合でもDBの運用を止めないディザスターリカバリー(災害復旧)対策が可能となるほか、世界中のユーザーが短いレイテンシー(遅延時間)でデータを利用できるようになる。Microsoftでは「惑星規模でスケール(拡張)する」「世界中でミリセカンド秒単位のレイテンシーを実現する」などと主張している(写真2)。

写真2●Guthrie氏が示したCosmo DBの特徴
写真2●Guthrie氏が示したCosmo DBの特徴
[画像のクリックで拡大表示]

 データベースの基本的な機能もRDBとは対照的である。Cosmos DBはデータモデルとして「キーバリュー型」「ドキュメント型」「カラム型」「グラフ型」といった様々な種類に対応できる「マルチ・データ・モデル」である。またDBに対するクエリー処理に関しては、「SQL」や「グラフクエリー」「Azure Table API(アプリケーション・プログラミング・インタフェース)」「MongoDB互換API」「Spark互換API」などが利用できる「マルチAPI」となっている。RDBの場合、データモデルはリレーショナル型、クエリーはSQLに限定される。

 スケーラビリティ(拡張性)もRDBに比べて圧倒的に高い。Cosmos DBではDB容量はペタバイト(PB)クラスにまで拡張可能で、トランザクション性能も秒間数百万件にまで拡張できる。しかもDB容量、トランザクション性能とも、DBの運用を止めることなく拡張可能である。

5種類の一貫性レベル

 Cosmos DBではRDBと同様に、DBの一貫性(Consistency)レベルとして「強い整合性(Strong Consistency)」を保ったトランザクション処理が可能である。またCosmos DBでは他のNoSQL DBと同様に「結果整合性(Eventualy Consistency)」も利用できる。さらにCosmos DBの場合はそれだけでなく、一貫性レベルとして「Bounded Staleness」「Session」「Consistent Prefix」という、StrongとEventualyの中間に位置する三つのレベルが用意されている。Cosmos DBのユーザーは、アプリケーションの特性に応じて、これらの一貫性レベルを選択する(写真3)。

写真3●Cosmos DBの一貫性レベル
写真3●Cosmos DBの一貫性レベル
[画像のクリックで拡大表示]