MongoDBがついに、マルチドキュメントのACID(日本語)トランザクションをサポートすることになった。MongoDBのコミュニティは長年これを求めていたが、このプロジェクトを支えている企業(製品と同名のMongoDB, Inc.)がやっとその実装に取り組んだのだ。
発表は今日(米国時間2/15)の午後になるようだが、ACIDのサポートはこのNoSQLデータベースが夏にリリースするバージョン4.0でローンチする。しかしデベロッパーはそれまでベータを利用できるから、その使い方などを勉強できる。
基本的にMongoDBはドキュメントデータベースであり、デフォルトでは、この種のデータベースはACIDではない。マルチドキュメントのトランザクションなら、なおさらだ(ドキュメントのレベルではMongoDBはすでにACIDトランザクションをサポートしている)。しかし、マルチドキュメントに同時にライトするようなMongoDBの使い方をする企業はそう多くないから、それはこれまで、重要な案件ではなかった。
しかしそのために、MongoDBのユーザーの多くは今だに、リレーショナル・データベースをドキュメントデータベースと併用している。
むしろ、MongoDBの協同ファウンダーでCTOのEliot Horowitzによると、それこそがこのプロジェクトのメインの動機のひとつだった。“われわれがこれを必要としなかったのは、ドキュメントモデルはACIDトランザクションの必要性をなくすからだ。すべてではないが、ほとんどのね”、と彼は語る。しかしそれと同時に、ミッションクリティカルなユースケースのためのトランザクションが必要な場合も、明らかにある。またHorowitzによれば、MongoDBのユーザーの中にも、“いずれそれが必要になるのではないか”という不安をずっと抱えているデベロッパーがいる。今日のローンチは言うまでもなく、そんな不安を取り去る。
RedMonkの主席アナリストStephen O’Gradyはこう言う: “トランザクションのACIDが保証されることは何十年にもわたってリレーショナル・データベースの重要な特長だった。しかしそのためにユーザーは、トランザクションの確実性か、ノンリレーショナル・データベースが提供する柔軟性と多機能性か、という選択を強いられてきた。今回、マルチドキュメントのACIDトランザクションがサポートされたことにより、MongoDBは、ケーキを作るだけでなくそれを食べたいという顧客にも、奉仕できるようになった”。
Horowitzが強調するのは、単純にこの機能をデフォルトにするデベロッパーはいないだろう、ということ。むしろ多くのデベロッパーは、非常に特殊なユースケースの場合のみ、それを有効にするだろう。“これがMongoDBにライトするときのふつうの方法になるとは、思わないね”、と彼は言う。
この新しい機能の構築は複数年にわたる努力であり、三年前に、データベースのストレージエンジンの技術を持つWiredTigerを買収したことから始まった。しかしそれを有効にするためには、データベースシステムのほとんどあらゆる部位に手を加える必要があった。
試してみたい人は、ここでベータに参加しよう。