MongoDB Java Reactive Streams ドライバーの次のバージョンに導入されている新機能、改善点、修正について説明します。
5.6 の新機能
5.6 ドライバー リリースには、次の変更、修正、機能が含まれています。
Queryable Encryption のプレフィックス、サフィックス、サブストリング クエリの実験的なサポートを追加します。QE の詳細については、使用中の暗号化 を参照してください。
注意
試験用機能
Queryable Encryption のプレフィックス、サフィックス、サブストリングのクエリは不安定であり、一般提供(GA)されるまでセキュリティは保証されません。実験的なワークロードでのみ使用してください。
ChangeStreamDocumentオブジェクトにnsTypeフィールドを追加します。このフィールドには、 変更イベントの名前空間タイプ(COLLECTION、TIMESERIES、またはVIEW)が含まれます。OIDC認証のクライアント側操作タイムアウト(COT)サポートを追加します。
COT に
timeoutMSが設定されている場合、ドライバーはmaxWaitTime接続設定の値を無視します。MongoClientクラスにappendMetadata()メソッドを追加します。このメソッドを使用して、既存のクライアントのメタデータにメタデータを追加できます。最大メタデータサイズは 512 MB です。RewrapManyDataKeyOptionsクラスにパブリック コンストラクターを追加します。AsyncReadOperationインターフェースとAsyncWriteOperationインターフェースをReadOperationインターフェースとWriteOperationインターフェースに統合します。Operationsクラスのビルダ メソッドを使用して、読み取り操作と書込み操作を作成できます。MongoNamespace.COMMAND_COLLECTION_NAME定数を廃止します。セッション内で OIDC の再認証を妨げるバグを修正します。
@BsonDiscriminatorで注釈が付けられた POJO を直列化する際、プロパティのreadNameが弁別子キーと一致する場合、ドライバーはそのフィールドを1 回だけ直列化します。CommandCursorResultインスタンスでnext()メソッドまたはtryNext()メソッドを呼び出すと、ドライバーはCommandCursorResult.resultsプロパティをクリアしてメモリを解放します。PojoBuilderHelperクラスは、抽象クラスとインターフェースのプロパティを含むプロパティモデルを作成します。ドライバーは、クラスターのトポロジーが変更されると、次のイベントを公開してログに記録します。
ClusterOpeningEvent:トポロジーが開いたときに公開ClusterDescriptionChangedEvent:トポロジーの説明が変更されたときに公開ClusterClosedEvent:トポロジーが閉じたときに公開
ドライバーは、次のいずれかの理由でプライマリレプリカセットメンバーが古くなった場合、
MongoStalePrimaryExceptionをスローします。新しいプライマリ ノードが選出または検出されます。
プライマリ ノードの
electionIdまたはsetVersionフィールドの値は、他のレプリカセットノードのこれらのフィールドの値と一致しません。
レプリカセットの詳細については、 MongoDB Serverマニュアルのレプリケーションを参照してください。
5.5.1の新機能
5.5.1 ドライバー パッチ リリースには次の変更が含まれています。
トランザクションで実行される操作を含む、セッションで実行される操作によってトリガーされると、OIDC 再認証が失敗する問題を修正します。
5.5 の新機能
重要
MongoDB Server 4.0 のサポートの削除
Java Reactive Streams5.5 ドライバー v はMongoDB Server4.0 のサポートを削除します。サーバーの互換性のあるバージョンの詳細については、「 互換性 」を参照してください。
5.5 ドライバー リリースには、次の変更、修正、機能が含まれています。
デフォルトのJava Reactive Streams TLS トランスレイヤーを使用する場合に、
connectTimeoutMSオプションのサポートを追加します。
ドライバー パフォーマンス ベンチマークに反映されるパフォーマンスの向上を導入します。パフォーマンス ベンチマーク テストの結果を表示するには、次のパフォーマンスの改善セクションを参照してください。
パフォーマンスの向上
このセクションの表は、同期Javaドライバーのパフォーマンス テストの結果を示しています。テストは、次の構成のMongoDB Server 8.0 配置で実行されました。
localhostで実行中のネットワークレイテンシは無視できます。高レイテンシの環境では、パフォーマンスの大きな改善は見られない可能性があります。認証が無効になっています。
TLS が無効になっています。
すべてのMongoDB Javaドライバーでも、改善された driver-core APIを共有しているため、同様のパフォーマンス向上が予想されます。
標準トランスポート設定
次の表は、標準のトランスポート設定で構成されたドライバーの v5.5 のパフォーマンス テストの結果を示しています。各行には、テストされた機能、パフォーマンスの割合の改善、およびz スコアが含まれます。
機能 | 改善率 | Z スコア |
|---|---|---|
BSON深度デコード | 19.44% | 5.4 |
ディープBSONエンコーディング | 102% | 22.8 |
多数を検索し、カーソルを空にする | 25.08% | 13.72 |
IDで 1 つを検索 | 2.7% | 3.16 |
平面BSONデコード | 31.2% | 9.38 |
平面BSONエンコーディング | 199.5% | 12.34 |
BSON の完全なデコード | 16.5% | 7.23 |
BSONでの完全なエンコーディング | 147.3% | 10.39 |
JSON- LD マルチファイルのインポート | 21.8% | 8.21 |
大規模なドキュメントを含むクライアント一括挿入 | 91.3% | 24.44 |
大規模なドキュメントを含むコレクションの一括挿入 | 96.5% | 8.79 |
大きなドキュメントの一括挿入 | 93.3% | 8.11 |
小さなドキュメントの一括挿入 | 39.3% | 5.72 |
大きなドキュメントを持つ 1 つを挿入 | 82.4% | 7.28 |
小さなドキュメントを含むクライアント一括挿入 | 49.5% | 17.99 |
小さなドキュメントを含むコレクションの一括挿入 | 47.8% | 6.44 |
Netty Transport Settings
次の表は、Netty トランスポート設定で構成されたドライバーの v5.5 に対するパフォーマンス テストの結果を示しています。各行には、テストされた機能、パフォーマンスの割合の改善、およびz スコアが含まれます。
機能 | 改善率 | Z スコア |
|---|---|---|
多数を検索し、カーソルを空にする | 40.3% | 14.81 |
IDで 1 つを検索 | 4.4% | 4.12 |
JSON- LD マルチファイルのインポート | 16.9% | 3.77 |
大規模なドキュメントを含むクライアント一括挿入 | 54.8% | 14.49 |
大規模なドキュメントを含むコレクションの一括挿入 | 104.9% | 38.72 |
大きなドキュメントの一括挿入 | 74.6% | 65.55 |
大きなドキュメントを持つ 1 つを挿入 | 66.6% | 58.65 |
小さなドキュメントを含むクライアント一括挿入 | 36.1% | 15.41 |
小さなドキュメントを含むコレクションの一括挿入 | 39.3% | 37.38 |
小さなドキュメントの一括挿入 | 35.1% | 41.51 |
Tip
ドライバー パフォーマンス ベンチマーク テストの方法の詳細については、 パフォーマンス ベンチマークの仕様 を参照してください。
5.4 の新機能
5.4 ドライバー リリースには、次の変更、修正、機能が含まれています。
CSFLE と QE の
$lookup操作をサポートします。詳細については、サーバー マニュアルの次の参照を参照してください。アプリケーションで使用する可能性のあるMongoDB JVMアーティファクトのバージョンを管理するための アイテムの請求書(BOM) を導入します。アプリケーションに BOM を追加する手順については、「 ダウンロードとインストール 」チュートリアルの「 ドキュメントのドライバー請求の追加 」ステップを参照してください。
MONGODB-AWS認証メカニズムをテストするために、 Amazon Web Services SDK の依存関係を 2.30.31 と 1.12.782 に更新します。ClientUpdateOneOptionsクラスとClientReplaceOneOptionsクラスに並べ替えオプションを追加します。この変更により、クライアントの一括書き込みで更新操作と置換操作のソート順序を設定できるようになります。詳細については、 一括書込み操作ガイドの「更新操作」および「置換操作」のセクションを参照してください。OIDC認証のKubernetesサポートを追加します。詳細については、 エンタープライズ認証メカニズムガイドの「MONGODB-OIDC: Kubernetes」セクションを参照してください。
次のMongoDB Search クエリ演算子のファーストクラスのサポートを追加します。
phraseregexqueryStringequalsmoreLikeThisinwildcard
close()を呼び出すと、操作タイムアウトに影響せずにtimeoutMS設定を更新するようにカーソルを更新します。hintオプションを指定して、distinct()メソッドを呼び出すときにインデックスを使用できるようにします。
このリリースの変更の完全なリストを表示するには、 Githubの v5.4 リリースノートを参照してください。
5.3 の新機能
5.3 ドライバー リリースには、次の変更、修正、機能が含まれています。
重要: 次のマイナー リリースでは、 MongoDB Serverバージョン4.0 のサポートが終了し、サポートされる最小バージョンが4.2 に引き上げられます。重大な変更に対応するために、アプリケーションに変更を加えることをお勧めします。 アップグレードの詳細については、サーバー マニュアルの「 リリースノート 」セクションを参照してください。
ベクトルのストレージと検索用のBSONバイナリ サブタイプ 9 を実装するために
BinaryVectorクラスを追加します。 このクラスは、Doubleインスタンスのリストと比較して、値のより効率的なストレージを提供します。 ベクトルに含まれる要素の型に基づいて、次のベクトル型を作成できます。Int8BinaryVector: 8 ビット符号付き整数のベクトルFloat32BinaryVector: 浮動小数点数のベクトルPackedBitBinaryVector: バイナリ量子化ベクトル(ベータで、一般利用可能になるまでに変更される可能性があります)
この機能の詳細については、Atlas ドキュメントのベクトル量化を参照してください。このタイプの詳細については、 BinaryVector APIドキュメントを参照してください。
接続プールの実装から明示的な均等性を削除します。 この変更により、多くのアプリケーションスレッドで
MongoClientインスタンスを使用すると、スループットが向上する可能性があります。 ただし、この変更により 追尾レイテンシが増加する可能性があります。updateOne()メソッドとreplaceOne()メソッドに並べ替えオプションを追加します。 この変更により、ReplaceOneModelインスタンスとUpdateOneModelインスタンスの作成時にオプションとして並べ替えを設定することもできます。 詳しくは、「 ドキュメントの更新 」、「 ドキュメントの置換 」、および「 一括書込み操作 」のガイドを参照してください。
クライアント一括書き込みAPI を実装し、同じ呼び出しで複数のデータベースとコレクションに対して書き込み操作を実行できます。この機能の詳細については、 一括操作ガイドの「 クライアント一括書込み 」セクションを参照してください。
5.2 の新機能
重要
MongoDB Server 3.6 のサポートの削除
Java Reactive Streams5.2 ドライバー v はMongoDB Server3.6 のサポートを削除します。サーバーの互換性のあるバージョンの詳細については、「 互換性 」を参照してください。
5.2 ドライバー リリースには、次の変更、修正、機能が含まれています。
クライアント側操作タイムアウト(COT)の設定を有効にします。この機能を使用すると、
MongoClientインスタンスに単一のタイムアウトを設定して、そのクライアントで実行されるすべての操作に適用できます。詳細については、 「サーバー実行時間の制限」 のガイドを参照してください。重要
非推奨のタイムアウト オプション
次のタイムアウト オプションは非推奨です。
waitQueueTimeoutMSsocketTimeoutMSwTimeoutMSmaxTimeMSmaxCommitTimeMS
これらのオプションの機能を置き換えるには、CSO 機能を使用します。
SearchIndexModelインスタンスの構築時に渡すことができるSearchIndexTypeクラスを追加します。この変更により、 Atlas Search またはベクトル検索インデックスの作成時にインデックスタイプを指定できるようになります。詳しくは、SearchIndexModel APIドキュメント を参照してください。SCRAM-SHA-1とSCRAM-SHA-256認証メカニズムを実装するアルゴリズムの実装を、構成された JCA プロバイダーに委任します。 この変更により、アプリケーションは構成された FIPS 準拠の JCA プロバイダーを使用して、より高いレベルのセキュリティを提供できるようになります。JVMドライバーのバージョン管理と一致するように mongodb-crypt 依存関係のバージョン管理を改訂します。
mongodb-cryptの将来のバージョンはドライバーと一緒にリリースされ、同じバージョン番号を共有します。mongodb-cryptの依存関係を v5.2.0 にアップグレードする必要がありますこのリリースのドライバーをアップグレードする際。詳細については、 「使用中の暗号化」ガイドを参照してください。サポートされているすべてのプラットフォームにネイティブ暗号化を実装ことにより、パフォーマンスが向上しました。 次のリストでは、オペレーティング システムに応じて、この改善を実装するために必要なアクションについて説明します。
Windows :
mongodb-cryptのバージョンを v 5.2.0にアップグレードします。Mac :
mongodb-cryptのバージョンを v 5.2.0にアップグレードします。Linux :
mongodb-cryptJARファイルにバンドルされているファイルを使用する代わりに、ファイルシステムにlibmongocrypt.soを直接インストールします。libmongocryptをインストールするためのLinux手順については、サーバー マニュアルを参照してください。 パッケージマネージャーを使用してlibmongocryptをインストールすると、 Java Native Access(JLA)は、追加の構成なしでそれを見つけます。 あるいは、LD_LIBRARY_PATH環境変数をlibmongocryptパッケージのファイルパスに設定することで検索パスを指定できます。OpenSSL バイナリの互換性がない可能性があるため、バンドルされている共有ライブラリは OpenSSL にリンクされていないため、直接インストールすることをお勧めします。
共有ライブラリのロードは JANA によって処理されます。ライブラリ検索パス順序のロードルールについては、Nativeライブラリクラスのドキュメント を参照してください。
状況によっては
InsertOneResult.getInsertedId()メソッドとInsertManyResult.getInsertedIds()メソッドが誤ったドキュメントID を返す問題を修正します。 この変更はJava Reactive Streams ドライバー v 5.1.4および v 4.11.4にバックポートされます。シャーディングされたクラスター操作が成功しない場合、ドライバーは他の
mongosサーバーが使用可能な場合、操作の再試行に同じmongosサーバーを選択しないようにします。アプリケーションがGraalVM Native イメージを使用するときに必要なアクセス可能性メタデータを追加します。このメタデータは、ドライバー ライブラリを使用するときに到達可能性メタデータを収集する必要があることを置き換えます。詳細については、 GraalVM ドキュメントのアクセス可能性メタデータを参照してください。
この変更では、
libjnidispatchとlibmongocryptのリソースエントリは追加されません。サポートされているすべてのプラットフォーム(ターゲット)のエントリを追加すると、 GraalVM ネイティブ イメージを使用してビルドされたネイティブ実行可能ファイルのサイズに大きく影響するためです。このサンプルresource-config.jsonファイルをドライバーGithubリポジトリで表示して、アプリケーションがorg.mongodb:mongodb-cryptライブラリに依存している場合にこれらのエントリを明示的に指定する方法を確認します。VectorSearchOptionsAPI を拡張して次の特定のオプション サブタイプを導入することで、正確なベクトル検索を有効にします。ExactVectorSearchOptions: このオプション タイプを使用して完全一致を有効にし、結果が特定のクエリ ベクトルに最も近いベクトルになるようにします。ApproximateVectorSearchOptions: このオプション タイプを使用すると、正確な最も近いベクトルが返されない可能性がある検索を有効にできます。 このタイプをインスタンス化するときにnumCandidatesパラメータを渡して、考慮する最近傍の数を指定できます。
MongoDB ベクトル検索機能の使用の詳細については、 「 MongoDB ベクトル検索クイック スタート 」を参照してください。
5.1.3の新機能
5.1.3 ドライバー パッチ リリースには次の変更が含まれています。
Cursor型の使用時にアサーション エラーが発生する可能性がある問題を修正しました。
5.1.2の新機能
5.1.2 ドライバー パッチ リリースには次の変更が含まれています。
MongoCollectionインスタンスのジェネリック型として基本クラスを指定している場合に、ジェネリック基本クラスを拡張する具象クラスをドライバーでエンコードおよびデコードできない問題を修正します。
5.1.1の新機能
5.1.1 ドライバー パッチ リリースには次の変更が含まれています。
MONGODB-OIDC認証メカニズムを使用する場合、authMechanismProperties接続string値にカンマ文字を含めることはできません。
5.1 の新機能
重要
MongoDB Server v 3.6 サポート終了
MongoDB Server v 3.6のサポートはこのリリースでは非推奨となり、ドライバーの v 5.2リリースで削除される予定です。
v 5.1で導入されたその他の変更については、 Java Sync Driver のドキュメントの 「新機能」ガイドを参照してください。