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に繋げると色々問題。