MongoDB

MongoDB 1.0からのリリースヒストリーと MongoDB 3.6 の新機能紹介

More than 1 year has passed since last update.

MongoDB Release History

MongoDB勉強会 in 2017 の発表資料です。

MongoDBのリリースヒストリーを振り返って、1.0からリリース予定の3.6までを紹介します。

バージョニングルール

  • x.x.x: メジャー.マイナー.リビジョン
  • マイナーが偶数だと安定版、奇数だと開発版

Example

  • 2.0.0 : Stable release. 安定版リリース。
  • 2.0.1 : Revision. リビジョン。
  • 2.1.0 : Development release for testing only. 開発版リリース。
  • 2.2.0 : Stable release. 安定版リリース。2.1.xで開発での開発の成果物。

Release History

Version Release Date Topics 動向
first commit 2007/10/20 2000行のコードがコミットされる 初代iPhoneが発表される
v1.0 2009/08/27 レプリケーション, Capped Collection
v1.2 2009/12/10 Indexの改善, JSON PrettyPrinter, Map/Reduce, fsync リリースノート
v1.4 2010/03/25 シャーディング alpha 3, クエリ言語追加( $elemMatch, $unset 他 ), GeoIndex登場, リリースノート NoSQLがバズワード化
v1.6 2010/08/25 シャーディング登場, レプリカセット登場, GridFS, リリースノート MongoDB JP立ち上がる
v1.8 2011/03/16 ジャーナリングのサポート, レプリカセットの強化, GeoIndexが球体対応, Indexに Sparse, Covered 追加, リリースノート
v2.0 2011/09/12 並列処理性の改善, レプリカセット・シャーディングの改善、シャーディングでの認証機能, タグレプリカ機能, Data-Center Awareness, リリースノート データセンター型へ, MMSリリース, CAのMongoDB記事
v2.2 2012/08/29 DB Level Lock, Aggregation Framework, タグシャーディング, TTL Collections, リリースノート 丸の内MongoDB勉強会始まる, gihyo.jpで「MongoDBでゆるふわDB体験」連載開始, MongoDB Casual Talks, MongoDB + fluentd
v2.4 2013/03/19 全文検索, ロール, JavaScript EngineがV8に, GeoJSON, ハッシュドシャードキー, リリースノート 2013/08/27 10genがMongoDB, Inc. に社名変更, 10月に$150Mの資金調達
v2.6 2014/04/08 Aggregation Pipelineの強化, 書き込み処理APIを根本変更, カスタムロール, セキュリティ機能, リリースノート エンタープライズユースへ, fluentd + MongoDB + Elasticsearch + Kibana でログの可視化, 2014/06/24 MongoDB World 2014 (初のMongoDB World)
v3.0 2015/03/03 Pluggable Strage Engine ( WiredTiger, MMAPv1 ), Collection Level Lock, Document Level Lock ( Only WiredTiger ), リリースノート MMS強化, 2015年1月に$80Mを調達
v3.2 2015/12/08 Document Validation, Partial Index, $lookup ( Aggregationでjoin ), ストレージエンジンの追加, JavaScript EngineがSpidermonkeyに, 全文検索にアラビア語、中国語、ペルシャ語、ウルドゥー語が追加, CRUD API追加, リリースノート BI Connector, Ops Manager (旧MMS)
v3.4 2016/11/29 Aggregation ( $graphLookup, $facet ) , View, Sort by collation, Apache Spark Connector, リリースノート Atlas, Compass, Multi-Datacenter Deployment
v3.6 upcoming 2017/xx/xx Aggregationの改善, 配列を扱いやすくする機能改善 リリースノート

https://docs.mongodb.com/manual/release-notes/

MongoDB 3.0

MongoDB 3.0 Announcement | MongoDB Blog | MongoDB

mongodb_30

Plugabble Storage Engine

  • MMAPv1とWiredTigerをリリース

Lock Level

  • MMAPv1はCollection Level Lock
  • WiredTigerはDocument Level Lock

MongoDB 3.2

MongoDB 3.2 Announcement | MongoDB Blog | MongoDB

mongodb_32.png

Document Validation

db.createCollection( "contacts",
   { validator: { $or:
      [
         { phone: { $type: "string" } },
         { email: { $regex: /@mongodb\.com$/ } },
         { status: { $in: [ "Unknown", "Incomplete" ] } }
      ]
   }
} )

Patial Indexes

partialFilterでフィルタリングしたDocumentのみをIndexing可能に。

$lookup

Aggregationでjoinっぽいことができる。

New CRUD API

xxxOne()とxxxMany()になって数が増えた。deleteMany(), deleteOne()とか。

MongoDB 3.4

mongodb_34.jpg

Graph Computing

$graphLookup: コレクションに対して再帰的に検索を行います。

Faceted Navigation

$facet: サブクエリのパイプライン向けオペレータ。入力されたドキュメントに対して複数のパイプライン処理を行い、これらのパイプラインの結果を含んだドキュメントを出力します。読み方はファセット。

Databese Views

読み取り専用のいわゆるView。

Decimal data type

decimal128フォーマットのサポート。34桁までの仮数および-6143から+6144までの指数の範囲をサポートします。

MongoDB Atlas

MongoDB as a Serviceなクラウドサービス。

mongodb_atlas.png

MongoDB Compass

MongoDBのGUIツール。GUIでCRUDできる。

mongodb_compass.png

MongoDB 3.6 ( upcoming )

mongodb_36.gif

Release Notes for MongoDB 3.6 (Development Series 3.5.x) — MongoDB Manual 3.6

Security Enhancements

  • MongoDB 3.6からバイナリ配布のMongoDBのmongodとmongosは、デフォルトではlocalhostをbindするようになりました。localhost以外からアクセスする場合は、 --bind_ip で指定してください。

Aggregation

  • New Aggregation Operators
  • New Aggregation Variable
    • REMOVE という条件に合うfieldを結果に含めなくする変数が使えるようになった。
  • New hint Option
    • hint() で使うindexを指定できる。
  • Support for Time Zones
    • $dateToString で %z, %Z を使ってoffsetでtimezoneを指定できるようになった。

Array Update Operator Enhancements

Genelral Enhancements

  • ShardingTaskExecutorPoolMaxConnecting が追加された。
  • opensslCipherConfig が追加された。
  • zlib が —networkMessageCompressors でサポートされた。
  • nested document を含む fields へのクエリーへのIndexがサポートされた。
  • Diagnostics Capture (also known as FTDC) が mongos でサポートされた。以前はmongodのみだった。参考: Diagnostic Parameters

MongoDB 開発マイルストーン

JIRAでリリース日を明記しなくなった?

https://jira.mongodb.org/projects/SERVER?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page

mongodb_jira.png

Indexの進化

mongodb_indexes.png

Indexes — MongoDB Manual 3.4

Indexes Version 概要
Multikey Index v1.0 複合インデックス
Geospatial Index v1.4 地理空間インデックス
Sparse Indexes v1.8 インデックス対象のfieldがない場合、インデックスしない
Covered Queries v1.8 インデックス対象fieldのみのクエリーの場合に、Collectionを探索せずにダイレクトに結果を返す
TTL Indexes v2.2 Time-To-Live. 期間を指定して作成することで、期間を過ぎると自動的にデータを削除する
Text Indexes v2.4 全文検索。v3.4の時点では日本語未対応。
Index Intersection v2.6 1つのクエリーで2つのインデックスをMongoDB側でうまく組み合わせて使ってくれる
Partial Indexes v3.2 条件を設定することで、インデックスの作成対象をコレクション内の全ドキュメントではなく、一部のドキュメントに限定する

Storage Engine

MongoDB 3.0 から選択可能に。

The storage engine is the component of the database that is responsible for managing how data is stored, both in memory and on disk. MongoDB supports multiple storage engines, as different engines perform better for specific workloads. Choosing the appropriate storage engine for your use case can significantly impact the performance of your applications.

Storage Engine 概要
WiredTiger v3.2からデフォルトに。Enterprise版ではEncryptionをサポート。
MMAPv1 v3.0までデフォルトで使われていたEngine。
In-Memory Enterprise版で使える。

Lock Level の変化

Lock Level Version Storage Engine
Global ~ v2.0 -
DB v2.2 -
Collection v3.0 MMAPv1
Document v3.0 WiredTiger

MongoDB, Inc. 資金調達の歴史

Date Amount / Round Lead Investor
Jul, 2008 $1.5M / Series A Union Square Ventures
Nov, 2009 $3.4M / Series B Flybridge Capital Partners
Dec, 2010 $6.5M / Series C Sequoia Capital
Sep, 2011 $20M / Series D Sequoia Capital
May, 2012 $42M / Series E New Enterprise Associates
Oct, 2013 $150M / Series E T. Rowe Price
Jan, 2015 $80M / Series F -
Aug, 2017 IPO? -

MongoDB | crunchbase

最新動向

日付 ニュース
2017/06/20 Recap of MongoDB World 2017
2017/06/21 MongoDBがバックエンドサービスStitchを開始、AtlasはAzureとGCPに対応、そして新しいBIツールも発表
2017/06/21 MongoDB、データベース内のデータをマウス操作で簡単にグラフ化できる「MongoDB Charts」発表。MongoDB World 2017 - Publickey
2017/08/16 NoSQLデータベースのMongoDBが非公開でIPOを申請

MongoDB World 2017

2017/06/20 に開催。

mongodb_world2017.jpg

ケリー・マクゴニガルの双子の妹であるジェイン・マクゴニガルも登壇。

mongodb_world2017_keynote.png

MongoDB Charts (coming soon)

MongoDB Chartsは、MongoDBに統合されたツール。「とてもシンプルに、ドキュメントセントリックで美しいチャートを作るためのツールだ。MongoDBに保存されているどんな統計的データも視覚化できる」(同社CTO兼共同創業者 Eliot Horowitz氏。

MongoDB 3.6 と一緒にリリースされる予定だそうです。

mongodb_chart_01.gif

mongodb_chart_02.gif

リリースノート翻訳

参考資料

MongoDB Download Links

JIRA

Manual Documents

Download