T1#market#ethics#research#open-source
MongoDB 公開 ── NoSQL ムーブメントを象徴するドキュメント指向 DB
メタデータ
- 日付
- 年代
- 2000s
- Tier
- T1
- 参照年表
- データベースの歴史
- 出典数
- 08
- 関連項目
- 01
- Tags
- #market#ethics#research#open-source
2009年2月11日、 ニューヨークのスタートアップ 10gen が MongoDB を初めて公開した。 行と列の表ではなく、 JSON 風のドキュメントを格納する ドキュメント指向データベース ── 当時はまだ無名だったこの設計が、 数年のうちに「NoSQL ムーブメント」全体の象徴となる。 バージョン 1.0 の出荷は同年 8 月で、 この日に出たのは 1.0 到達前の最初の公開版である。
10gen の起源 ── DoubleClick からの脱出
10gen の創業者は Dwight Merriman、 Kevin P. Ryan、 Eliot Horowitz の 3 人。 いずれもネット広告配信企業 DoubleClick の出身で、 Merriman は共同創業者兼 CTO、 Ryan は CEO、 Horowitz はエンジニア(後に ShopWiki を創業) だった。 DoubleClick では Web スケールでのリアルタイム データ処理 ── 広告入札・配信ログの集約 ── に苦しみ、 既存の RDBMS のスケール限界を痛感したと同社自身が語っている。
2007 年に 3 人は 10gen を設立。 当初の目標は PaaS(Platform-as-a-Service) ── Google App Engine に似た「Babble」という開発基盤を、 全面的にオープンソース部品で作ることだった。 ところが基盤そのものより、 その下で開発していたデータベース層のほうが評価される。 2009 年、 PaaS 構想を捨ててデータベース専業に転向し、 MongoDB を公開した。
社名 10gen は「Tenth Generation(第 10 世代)」、 製品名 MongoDB は「humongous(巨大な)」から ── 「巨大データを扱う第 10 世代の DB」というメッセージである。
ドキュメントモデル ── 表ではなく入れ子の文書
MongoDB の最大の特徴は、 データ単位が 行ではなく BSON ドキュメント であることだ。 BSON は JSON のバイナリ表現で、 一つのドキュメントの中に入れ子のオブジェクト・配列・型付きの値(日付、 ObjectID など) を持てる。
{
_id: ObjectId("..."),
name: "Alice",
orders: [
{ item: "Book", price: 1500, date: ISODate("2024-01-15") },
{ item: "Pen", price: 200, date: ISODate("2024-02-03") }
],
address: { city: "Tokyo", zip: "100-0001" }
}
RDBMS なら user、 order、 order_item、 address の 4 テーブルに JOIN する構造が、 ドキュメント 1 個に収まる。 これは「アプリケーション側のオブジェクト構造と、 DB 側の格納構造を一致させる」設計思想で、 オブジェクト・関係インピーダンス ミスマッチ(OR マッピングの面倒さ) を直接攻撃するものだった。
加えて MongoDB は スキーマレス ── テーブル定義を事前に作らなくていい。 同じコレクションの中に、 構造の違うドキュメントが共存できる。 アジャイル開発のように仕様が変わり続ける現場には強力な特性だった。
NoSQL ムーブメント ── 2009 年の同時多発
2009 年は「NoSQL」という言葉が産業界に定着した年でもある。 同年 6 月、 Last.fm のエンジニア Johan Oskarsson が「オープンソースの分散・非リレーショナル データベース」を議論する会合をサンフランシスコで開き、 その名前として NoSQL を持ち出した。 MongoDB、 Cassandra(Facebook 由来、 2008 年 OSS 化)、 CouchDB(2005 年-)、 Redis(2009 年-) などの新興 DB が一堂に会した場である。 なお NoSQL という語自体は 1998 年に Carlo Strozzi が別の意味 ── SQL インタフェースを持たないリレーショナル DB ── で使っており、 2009 年のものは再利用である。
背景にあったのは、 大規模 Web サービスにおける RDBMS の限界感だった。 Google の Bigtable 論文(2006 年) は関係モデルによらない分散ストレージが実運用に耐えることを示し、 Amazon の Dynamo 論文(2007 年) は「分散環境では強い一貫性の代わりに 結果整合性 を選ぶ」という設計を公にした。 ここから「ACID と関係モデルは絶対ではない」という発想が広まり、 NoSQL の理論的支柱になる。
MongoDB はその中で ドキュメント指向 の代表格として位置づけられた。 Cassandra(カラム指向)、 Redis(キーバリュー)、 Neo4j(グラフ) などと並ぶ「RDBMS じゃない選択肢」の代表選手の一つとなる。
急成長と批判 ── ACID 論争
2010 年代前半、 MongoDB は爆発的に普及した。 Foursquare、 Craigslist、 The New York Times、 eBay、 Shutterstock ── スタートアップから大企業まで幅広い採用例が並んだ。
しかし同時に、 厳しい批判も浴びる。 初期の MongoDB は 書き込み確認なし(fire-and-forget) がデフォルトで、 「db.users.insert() が成功を返したのにデータが消える」事案が頻発。 2013 年 11 月、 Sarah Mei は「Why You Should Never Use MongoDB」で、 分散 SNS Diaspora のデータを扱った経験からこう論じた ── ソーシャル データではユーザ・コメント者・いいね した人が同じ実体を指すため、 アクティビティ ストリームを 1 ドキュメントに非正規化すると破綻する。 そして「暗黙のスキーマ」がある限り MongoDB は誤った選択だ、 と。 この記事は広く読まれた。
10gen(2013 年 8 月に MongoDB Inc. へ社名変更) は批判に応えて改善を続けた。 2015 年の MongoDB 3.0 で WiredTiger ストレージエンジン(B-Tree + 圧縮、 楽観的並行制御によるドキュメント単位のロック) がデフォルトに、 2018 年 6 月の 4.0 で レプリカセット内の マルチドキュメント ACID トランザクション をサポート、 2019 年の 4.2 でシャード クラスタをまたぐ分散トランザクションへと拡大。 ACID 嫌いだった NoSQL の旗手が、 結局 ACID を取り入れた ── これは NoSQL ムーブメント全体の縮図でもあった。
ライセンス変更 ── AGPL から SSPL へ
もう一つの転回はライセンスだった。 MongoDB Community Server は長く GNU AGPLv3 で配布されていたが、 2018 年 10 月 16 日、 MongoDB Inc. は自ら起草した SSPL(Server Side Public License) への移行を発表する。 同日以降にリリースされる版 ── 旧バージョンのパッチ リリースを含む ── がすべて SSPL の対象となった。 狙いは、 ソフトウェアを開発していないクラウド事業者がそれをサービスとして提供して価値を回収する構図を封じることにある。 CTO の Eliot Horowitz は press release でこう述べている。
"Unfortunately, once an open source project becomes interesting, it is too easy for cloud vendors who have not developed the software to capture all of the value while contributing little back to the community."
SSPL は OSI(Open Source Initiative) の承認を受けておらず、 Debian・Red Hat Enterprise Linux・Fedora は MongoDB をディストリビューションから外した。 「オープンソース企業がクラウド事業者に対抗してライセンスを閉じる」という 2018 年以降の潮流 ── Redis、 Elastic、 HashiCorp が続く ── の口火を切った一件である。
2017 年 IPO と現在
2017 年 10 月 19 日、 MongoDB Inc. は NASDAQ で取引を開始した(ティッカー MDB)。 公開価格 24 ドル、 初日始値 33 ドル、 終値 32.07 ドルで、 公開価格ベースの時価総額は約 12 億ドル、 初日終値ベースで約 16 億ドル。 調達額は 1 億 9,200 万ドルだった。 2026 年 1 月期(FY2026) の売上は 24.6 億ドル、 前年比 23% 増、 顧客数は 65,200 社を超える。
クラウド DB サービス MongoDB Atlas(2016 年-、 AWS・Azure・GCP マルチクラウド対応) は FY2026 で 18.1 億ドル ── 全社売上の 7 割強を占めるまでに成長した。 オープンソース版に加えて、 マネージドサービスで継続的な収益を立てる ── これは後の Snowflake、 Confluent、 Databricks に通じるオープンソース企業の収益モデルの一つとなった。
2009 年 2 月 11 日が意味するもの
MongoDB の公開は、 単なる新製品リリースではなかった。 それは 「アプリケーションのデータ形と、 DB のスキーマを一致させていい」 という発想を、 学術論文や Google 内部システムではなく、 誰でもダウンロードできる OSS として世界に配ったタイミングだった。
リレーショナル モデルが 40 年間支配してきた「データは表である」という公理に、 「データは文書である」というもう一つの公理が並ぶ ── そのきっかけの一つを作った日が、 2009 年 2 月 11 日である。 その後の Firestore、 DynamoDB Document Mode、 Cosmos DB の MongoDB API、 PostgreSQL の JSONB ── 「ドキュメント指向」は DB の世界の共通選択肢として定着した。
よくある質問
- MongoDB が最初に公開されたのはいつか
- 2009年2月11日、 ニューヨークのスタートアップ 10gen が初めて公開した。 この日に出たのは 1.0 到達前の最初の公開版で、 バージョン 1.0 の出荷は同年8月である。
- MongoDB はいつからトランザクションに対応したのか
- 2018年6月の 4.0 で、 レプリカセット内のマルチドキュメント ACID トランザクションに対応した。 2019年の 4.2 では、 シャードクラスタをまたぐ分散トランザクションへ拡張されている。
- MongoDB のライセンスはなぜ変わったのか
- 2018年10月16日、 MongoDB Inc. は Community Server のライセンスを GNU AGPLv3 から自ら起草した SSPL へ移した。 狙いは、 ソフトウェアを開発していないクラウド事業者がそれをサービスとして提供して価値を回収する構図を封じることにある。 SSPL は OSI の承認を受けておらず、 Debian・Red Hat Enterprise Linux・Fedora は MongoDB をディストリビューションから外した。
出典
最終更新: