中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

MongoDB 3.0 リリースノート斜め読み

遂にMongoDB 3.0 が正式リリースされました!!
例によってリリースノートを斜め読みします。
http://docs.mongodb.org/master/release-notes/3.0/


が、、最初に一言で纏めると、まあ、、

目玉機能はロックレベルの話だけですよー



でわ。。

Pluggable Storage Engine AP

以下の2つからストレージエンジンを選べる。

MMAPv1
これまでのストレージエンジン。デフォルト
WiredTiger
3.0から追加されたストレージエンジン
WiredTiger

MongoDBの全ての機能をサポートしている。

MMAPv1とフォーマットが違うので既存のアップデートの場合、移行する際に色々必要。

ドライバも最新に上げないとダメ。

ドキュメントレベルロックが可能!!

touchコマンドはサポートしてない

MMAPv1 Improvements

コレクションレベルロック!!

領域確保のロジックが変更された

  • 大きなファイルの扱いが賢くなった
  • paddingFactorが廃止された。やった!

元々paddingFactorは賢い実装では無い。
稀に起きるかもしれないgrowing documentの為に
大半のそれ以外の処理に負がある方法を取るなんて馬鹿げた話だ。

ReplicaSet

ノード数が最大50になった。割とどうでも良い。

ステップダウンの挙動が変わった

  • stepdown の前にmap-reduce, index build などの長時間処理を殺す
  • (stepdown直前に入ったデータが)ロールバックされるのを避けるため次のPRIMARY候補のSECONDARYが追いつくまで待つ。

レプリカセットにJOIN時の同期が早くなった

writeConcernのmajority はvoting node のmajorityになった。細かい。。が、なるほど。

コンフィグのバリデーションが厳しくなった

セカンダリのコレクションには必ず_id インデックスが作られる。(バグフィックスに近い)

Sharded Clusters

セキュリティー周り。細々改善。

Improvements

クエリープラン改善とexplain改善

ログ周り改善

mongo_tools 周り色々改善。
うれしいけど細かい!!

この辺り使い倒してる人がどれだけいるんだろうか?
ウチあの辺この辺とか位?w

dropIndex, dropCollection, dropDatabaseしたときにバックグラウンドで動いているcreateIndexは中止されるようになった。

shard key を含むインデックスはcover query になり得る。

geo系クエリー強化

aggregateに$dateToString 追加

$eq 追加?なんの意味があるの?

MongoDB Enterprise Features

パス

その他

2.6系からしかアップグレード出来ない。

3.0からは 2.6.5 までしかダウングレード出来ない。

2.6.8未満のmongo shell から3.0に繋げると色々問題。