MongoDB 2.6のリリースノート翻訳シリーズ、第4弾です。前回までは、大きな追加/変更があったAggregation PipelineとWrite Commandを紹介しました。今回は、その他の機能追加/変更です。細かいですが、便利な機能やメソッドが追加されています。
注1: MongoDB 2.6は年内リリース予定です。
注2: MongoDBでは2.5.xは開発バージョンで、2.6.xがリリースバージョンとなります。
元のリリースノートはこちら
http://docs.mongodb.org/master/release-notes/2.6/
他の翻訳
- まとめ!MongoDB 2.6のリリースノート翻訳と所感
- リリース間近!MongoDB 2.6のリリースノート翻訳: 既存機能の変更点
- リリース間近!MongoDB 2.6のリリースノート翻訳: Aggregation Pipelineの変更点
- リリース間近!MongoDB 2.6のリリースノート翻訳: 新登場のWrite Commandたち
- リリース間近!MongoDB 2.6のリリースノート翻訳: エンタープライズ向け機能
目次
- シャーディングの改善点
- シャーディングから孤立したデータの削除をサポート
- 同一シャード上の連続したチャンクのマージ機能
- コレクションレベルでのアクセスコントロール
- ユーザー定義ロール
- SSL機能の改善点
- 必要に応じてサーバ起動時にSSL証明書のパスフレーズ入力を求める機能
- ユーティリティツールがSSLをサポート
- 強いSSL暗号のみを許可
- 同じポート上でSSL接続と非SSL接続のサポート
- x.509認証
- インデックス構築の改善点
- レプリカセット時にセカンダリーのバックグラウンドでのインデックス構築
- 再起動時にインデックス構築を自動で継続
- ユーティリティツールの改善点
- グローバルに使える
mongorc.js
ファイル - すべてのユーティリティツールが
--quiet
オプションをサポート -
mongoimport
がコレクション名を指定しなかった場合、ファイル名を使用するようになりました -
mongostat
が--discover
オプション使用時に--rowcount
オプションをサポートしました -
maxConns
オプションのデフォルト値制限 - 制限時間を指定して強制終了するオペレーションの追加
- 地理空間インデックスのエンハンス点
- C++ドライバのエンハンス点
- WindowsでMongoDBのMSIパッケージが利用可能に
- レプリカセットのステータス取得メソッドの追加
シャーディングの改善点
シャーディングから孤立したデータの削除をサポート
新しいcleanupOrphanedコマンドはシャードから孤立したデータを削除するメカニズムを提供し、シャードクラスターのメンテナンスを助けます。孤立データとは、クラスタ内の別シャードに所属するシャードサーバー上のコレクションにも存在しているデータです。孤立データは、マイグレーションの失敗や異常終了によるマイグレーションクリーンナップの結果、残った物です。
訳注: 孤立データ(Orphaned data)とは、マイグレーションの失敗で削除できなかった不要なデータです。シャードの管理から孤立しているデータという意味でOrphanedと呼ばれているようです。
同一シャード上の連続したチャンクのマージ機能
mergeChunksは1つのシャード上にある連続したチャンクを結合するための機能を提供します。これにより、ドキュメント削除時にシャードのコレクションに残った、余分な空チャンクを結合することができます。
詳細についてはmergeChunksを参照してください。また、Merge Chunks in a Sharded Clusterはこの操作のドキュメントとなっています。
コレクションレベルでのアクセスコントロール
MongoDB 2.5.3 からコレクションごとにユーザー権限を指定する機能を提供します。詳細についてはcollection-level-access-controlを参照してください。
訳注: 参照してくださいとありますが、執筆時(2013/12/24)には元のリリースノートにcollection-level-access-controlへのリンクが張られていません。
ユーザー定義ロール
MongoDBが提供するデフォルトのロールに加えて、カスタムユーザーロールを作成する機能が追加されました。加えて、adminデータベースに全てのユーザーとユーザー定義のロールデータを格納し、ユーザーとロールを管理するための新しいコマンドセットが提供されたことで、グローバルなユーザー管理を提供します。
新しい認証モデルとユーザー定義のロールの詳細ついては、Authorizationを参照してください。
訳注: MongoDBはv2.4からロール機能が追加されました。デフォルトで提供するロールはこちらの記事にまとめられています。
第8回 リリース間近! MongoDB 2.4の新機能
SSL機能の改善点
必要に応じてサーバ起動時にSSL証明書のパスフレーズ入力を求める機能
MongoDB 2.5.4でmongodまたはmongosは、暗号化されたSSLプライベートキーへのパスフレーズ入力用に、起動時にユーザーへプロンプトを表示することができます。これは、コマンドライン上や設定ファイルでのテキストによるパスフレーズ提供の代替手段を提供します。
SSL Certificate Passphraseを参照してください。
ユーティリティツールがSSLをサポート
MongoDBのユーティリティーツールに含まれるプログラムは、mongodおよびmongosへのSSL接続をサポートしました。より詳細な情報はMongoDB Toolsを参照してください。
訳注: 今回新しくSSL接続がサポートされたユーティリティーツールは、以下のプログラムです。
- mongodump
- mongoexport
- mongofiles
- mongoimport
- mongooplog
- mongorestore
- mongostat
- mongotop
強いSSL暗号のみを許可
MongoDBのSSL暗号化は、全ての接続に対して128ビット以上の鍵長が必要となり、強いSSLのみ許可されます。
強い暗号要件は、弱い暗号の使用を強制している古い、または悪意あるクライアントからの防ぐことができます。
同じポート番号でSSL接続と非SSL接続のサポート
SSLコネクションを使用するMongoDBクラスターのアップグレードを可能にするため、MongoDBサーバーは同一TCPポートでSSL暗号化されたコネクションと暗号化されてないコネクションの両方の接続をサポートします。Upgrade a Cluster to Use SSLを参照してください。
x.509認証
MongoDBはシャードやレプリカセットのメンバーの内部認証のため、安全なSSL接続で使用するためのX.509証明書による認証を導入しました。
Use x.509 for Client Authentication と Use x.509 for Replica Set/Sharded Cluster Member Authenticationを参照してください。
インデックス構築の改善点
レプリカセット時にセカンダリーのバックグラウンドでのインデックス構築
MongoDB 2.5.0以降で、バックグラウンドでのインデックス構築がプライマリーノード上で開始した場合、セカンダリーノードでもバックグラウンドでのインデックス構築を複製します。以前のバージョンではプライマリーノードがバックグラウンドでインデックス構築を行っても、セカンダリーノードではフォアグラウンドで全てのインデックスを構築していました。
全てのインデックス構築において、プライマリーノードが正常にインデックス構築を完了するまで、セカンダリーノードはインデックス構築を開始しません。
再起動時にインデックス構築を自動で継続
シャットダウンや停止時にmongodがインデックス構築をしていた場合、再起動時にインデックス構築を継続するようになりました。以前のバージョンでは、インデックス構築はmongodのシャットダウン前に完了している必要がありました。
この機能を停止するための起動時オプション、noIndexBuildRetry
がMongoDB 2.5以降で追加されました。noIndexBuildRetry
はmongodの直前のシャットダウン時にインデックス構築が完了していなくても、インデックス構築を継続させないようにすることができます。
ユーティリティツールの改善点
グローバルに使えるmongorc.js
ファイル
mongorc.js
ファイルが/etc
ディレクトリ(Windowsの場合は%ProgramData%\MongoDB
フォルダ)に存在していた場合、mongoシェルは起動時にこのファイルの内容を評価します。その後に、ユーザーのホームディレクトリに.mongorc.js
ファイルが存在する場合、mongoシェルはそのファイルを読み込み、評価します。
--norc
オプションは、ユーザーの.mongorc.js
ファイルの読み込みを抑制します。
/etc
ディレクトリのmongorc.js
ファイルには、シェルを起動するユーザーの読み取り権限が必要です。
すべてのユーティリティツールが--quiet
オプションをサポート
MongoDBの全ての実行可能なファイルが--quiet
オプションをサポートしました。このオプションは、エラーメッセージを除く全てのログ出力を抑制します。
mongoimport
がコレクション名を指定しなかった場合、ファイル名を使用するようになりました
-c
オプション、または--collection
オプション無しで実行された場合、mongoimport
はコレクション名として入力されたファイル名を使用するようになりました。入力されたファイルに拡張子がある場合、拡張子は省略されます。
mongostat
が--discover
オプション使用時に--rowcount
オプションをサポートしました
mongostat
が、--discover
オプションと--rowcount
(-n)
オプションを使用して、指定した行数分の出力を行います。以前のバージョンでは、--discover
は--rowcount
オプションを上書きし、ユーザーが処理を終了させるまで出力を行っていました。
訳注: 例えば、
mongostat --discover --rowcount 3
と実行すると、結果を3行出力してmongostat
は終了します。以前のバージョンでは--discover
を使用すると、--rowcount
で指定しても、Ctrl-C
で終了するまで出力されてました。
maxConns
オプションのデフォルト値制限
MongoDB 2.5.0以降、mongodやmongosでの--maxConns
オプションで、デフォルト値を超える数値の設定が制限されるようになりました。以前のバージョンでは、最大20,000までmaxConns
を設定できました。
訳注: maxConns
のデフォルト値はシステムによって変わります。OSのulimitやファイルディスクリプタの値を見て変更されます。デフォルト値を超える値を--maxConns
オプションで設定しても、変更されなくなりました。
maxConnsを参照してください。
制限時間を指定して強制終了するオペレーションの追加
カーソルメソッドにmaxTimeMS()
と、コマンドに対応したオプションが追加されました。maxTimeMS
は操作に対する制限時間を指定することができます。操作が指定された制限時間を超えると、db.killOp()
と同様のメカニズムを用いて操作を終了させます。MongoDBは操作のみを指定された割り込みポイントで終了させます。
訳注: 例えば、
db.collection.find({description: /August [0-9]+, 1969/}).maxTimeMS(50)
と実行したクエリーは、50ミリ秒で強制終了されます。
地理空間インデックスのエンハンス点
以下のタイプのGeoJSONオブジェクトが、2dsphereインデックスで使用できるようになりました。
訳注: 今回のバージョンアップで、複数のGeoJSONオブジェクトを一つのドキュメントとして扱えるようになりました。例えば、$geoIntersects
クエリーを使う際に、複数オブジェクトをグルーピングするような使い方ができます。
C++ドライバのエンハンス点
C++ドライバでは、replSetGetStatus
の代わりにisMaster
コマンドを用いて、レプリカセットの監視を行うようになりました。C++ドライバでは、アクセス制御が有効になっているシステムをサポートすることができます。
WindowsでMongoDBのMSIパッケージが利用可能に
Microsoft Windows用のMSIパッケージの配布を開始しました。WindowsでMongoDBをインストールする際には、MSIパッケージを使用することが推奨されています。
レプリカセットのステータス取得メソッドの追加
レプリカセットのステータスに関する情報を提供するため、2つの新しいメソッドが追加されました。
rs.printReplicationInfo()
メソッドは、プライマリーノードから見えるレプリカセットの状態をレポートフォーマットで提供します。出力フォーマットはdb.printReplicationInfo()
と同一です。
rs.printSlaveReplicationInfo()
メソッドは、セカンダリーノードから見えるレプリカセットの状態をレポートフォーマットで提供します。出力フォーマットはdb.printSlaveReplicationInfo()
と同一です。
今回は以上となります。