.NET Change Feed Processor SDK: ダウンロードおよびリリース ノート (レガシ)
適用対象: NoSQL
リンク | |
---|---|
SDK のダウンロード | NuGet |
API ドキュメント | Change Feed Processor ライブラリ API リファレンス ドキュメント |
開始するには | DocumentDB Change Feed Processor .NET SDK の概要 |
現在サポートされているフレームワーク | Microsoft .NET Framework 4.5 Microsoft .NET Core |
Note
変更フィード プロセッサを使用している場合は、変更フィードが SDK に組み込まれている .NET SDK の最新バージョン 3.x を参照してください。
リリース ノート
v2 のビルド
2.5.0
System.Diagnostics.TraceSource
のインスタンスを引数として受け取るMicrosoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider
クラスの新しいコンストラクターを追加しました。 これにより、.net トレースに使用されるTraceLogProvider
は、ソース コードで初期化されたカスタムTraceSource
インスタンスからプログラムで作成できます。 この変更前は、App.config ファイルを使用して .net トレースを構成することしかできませんでした。
2.4.0
- /partitionKey として定義されたパーティション キーを使用してパーティション分割できるリース コレクションのサポートが追加されました。 この変更前には、リース コレクションのパーティション キーを/id として定義する必要がありました。
- このリリースでは、Gremlin 用 API でリース コレクションを使用することができます。Gremlin コレクションでは、パーティション キーを /id として定義ないためです。
2.3.2
- V3 SDK とのリース ストアの互換性が追加されました。これにより、ホット移行パスが有効になります。 アプリケーションを V3 SDK に移行し、状態を失うことなく Change Feed Processor ライブラリに再び移行することができます。
2.3.1
- パーティションが見つからない場合、またはターゲット レプリカが読み取りセッションで最新の状態になっていない場合、
FeedProcessing.ChangeFeedObserverCloseReason.Unknown
の閉じる理由がFeedProcessing.IChangeFeedObserver.CloseAsync
に送信される問題を修正しました。 このような場合、FeedProcessing.ChangeFeedObserverCloseReason.ResourceGone
とFeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
の閉じる理由が使用されるようになりました。 - ターゲット レプリカが読み取りセッションで最新の状態になっていない場合に、変更フィード オブザーバーを閉じるために送信される新しい閉じる理由
FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
を追加しました。
2.3.0
- 新しいメソッド
ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
と対応するパブリック インターフェイスICheckpointPartitionProcessorFactory
が追加されました。 これにより、IPartitionProcessor
インターフェイスの実装に組み込みのチェックポイント メカニズムを使用できるようになります。 新しいファクトリは既存のIPartitionProcessorFactory
に似ていますが、Create
メソッドはILeaseCheckpointer
パラメーターも受け取る点が異なります。 - 同じ
ChangeFeedProcessorBuilder
インスタンスに使用できるのは、ChangeFeedProcessorBuilder.WithPartitionProcessorFactory
またはChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
という 2 つのメソッドのいずれかのみです。
2.2.8
- 安定性と診断性の向上:
- 長時間かかっている変更フィード読み取りを検出する機能のサポートを追加しました。
ChangeFeedProcessorOptions.ChangeFeedTimeout
プロパティで指定された値よりも長い時間がかかる場合は、次の手順を実行します。- 問題のあるパーティションの変更フィードを読み取る操作は中止されます。
- 変更フィード プロセッサ インスタンスが問題のあるリースの所有権を破棄します。 破棄されたリースは、同じまたは異なる変更フィード プロセッサ インスタンスによって行われる次のリース取得手順中に取得されます。 このようにして、変更フィードの読み取りがやり直されます。
- 問題は、ヘルス モニターにレポートされます。 既定のヘルス モニターは、レポートされたすべての問題をトレース ログに送信します。
- 新しいパブリック プロパティ
ChangeFeedProcessorOptions.ChangeFeedTimeout
を追加しました。 このプロパティの既定値は 10 分です。 - 新しいパブリック列挙値
Monitoring.MonitoredOperation.ReadChangeFeed
を追加しました。HealthMonitoringRecord.Operation
の値がMonitoring.MonitoredOperation.ReadChangeFeed
に設定される場合は、正常性の問題が変更フィードの読み取りに関連していることを示しています。
- 長時間かかっている変更フィード読み取りを検出する機能のサポートを追加しました。
2.2.7
- たとえば、ネットワークの問題により、すべてのリースを取得する場合にリースの有効期限よりも長い時間がかかるシナリオの負荷分散戦略が改善されました。
- このシナリオでは、負荷分散アルゴリズムによって、リースが誤って期限切れと見なされ、アクティブな所有者からリースが奪われていました。 その結果、不必要に多くのリースの再調整がトリガーされる可能性があります。
- この問題は、このリリースにおいて、所有者が変わっていない期限切れのリースを取得するときに競合を再試行することを避け、期限切れのリースの取得を次回の負荷分散のイテレーションまで延期することで修正されました。
2.2.6
- オブザーバーの例外の処理が改善されました。
- オブザーバー エラーに関するより豊富な情報:
- オブザーバーの ProcessChangesAsync によってスローされた例外によりオブザーバーが閉じられると、CloseAsync が ChangeFeedObserverCloseReason.ObserverError に設定された reason パラメーターを受け取るようになりました。
- オブザーバーでユーザー コード内のエラーを識別するためにトレースが追加されました。
2.2.5
- 共有データベースのスループットを使用するコレクション内の分割を処理するためのサポートが追加されました。
- このリリースでは、共有データベースのスループットを使用するコレクション内の分割中に発生する可能性がある、分割によってパーティションのリバランスが発生して子のパーティション キー範囲が 2 つではなく 1 つだけになるという問題が修正されました。 これが発生した場合、Change Feed Processor による古いパーティション キー範囲のリースを削除することができなくなり、新しいリースが作成されない可能性があります。 この問題は今回のリリースで修正されました。
2.2.4
- 要求の継続トークンからの変更フィードの開始をサポートするための新しいプロパティ ChangeFeedProcessorOptions.StartContinuation が追加されました。 これは、リース コレクションが空であるか、リースに ContinuationToken セットがない場合にのみ使用されます。 ContinuationToken セットがあるリース コレクション内のリースの場合は、ContinuationToken が使用され、ChangeFeedProcessorOptions.StartContinuation は無視されます。
2.2.3
- カスタム ストアを使用した、パーティションごとの継続トークンの保持のサポートが追加されました。
- たとえば、カスタム リース ストアには、独自の方法でパーティション分割された Azure Cosmos DB リース コレクションを使用できます。
- カスタム リース ストアでは、新しい機能拡張ポイント ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) と ILeaseStoreManager パブリック インターフェイスを使用できます。
- ILeaseManager インターフェイスは複数のロール インターフェイスにリファクタリングされました。
- 小さな破壊的変更: 機能拡張ポイント ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager) は削除されました。代わりに ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) を使用してください。
2.2.2
- このリリースでは、監視対象コレクション内の分割の処理中とパーティション リース コレクションの使用中に発生する問題が解決されます。 分割パーティションのリースの処理時に、そのパーティションに対応するリースを削除できません。 この問題は今回のリリースで修正されました。
2.2.1
- 複数の書き込みリージョンがあるアカウントと新しいセッション トークン形式の固定見積もり計算。
2.2.0
- パーティション分割されたリース コレクションのサポートが追加されました。 パーティション キーは /id として定義する必要があります。
- マイナーな破壊的変更: IChangeFeedDocumentClient インターフェイスと ChangeFeedDocumentClient クラスのメソッドが RequestOptions パラメーターと CancellationToken パラメーターを含むように変更されました。 IChangeFeedDocumentClient は、ドキュメント クライアントのカスタム実装を提供して変更フィード プロセッサで使用できるようにする高度な拡張ポイントです。たとえば、DocumentClient を修飾し、それに対するすべての呼び出しをインターセプトして、追加のトレースやエラー処理などを行います。この更新プログラムでは、IChangeFeedDocumentClient を実装するコードを変更して、新しいパラメーターを実装に含める必要があります。
- マイナーな診断機能の向上。
2.1.0
- 新しい API、Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync() が追加されました。 これを使用して、パーティションごとの見積作業を取得できます。
- Microsoft.Azure.DocumentDB SDK 2.0 をサポートします。 Microsoft.Azure.DocumentDB 2.0 以降が必要です。
2.0.6
- v1 との互換性を保つために、ChangeFeedEventHost.HostName パブリック プロパティが追加されました。
2.0.5
- パーティション分割中に発生する競合状態を修正しました。 競合状態は、リースを取得し、パーティション分割中にすぐにそれを失うことで、競合の発生につながる可能性があります。 この競合状態に関する問題がこのリリースで修正されました。
2.0.4
- GA SDK
2.0.3-prerelease
次の問題が修正されました。
- パーティション分割が発生すると、分割前に修正されたドキュメントの処理が重複する可能性があります。
- リース コレクションにリースが存在しない場合、GetEstimatedRemainingWork API は 0 を返しました。
次の例外が公開されました。 IPartitionProcessor を実装する拡張機能では、次の例外をスローすることができます。
- Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.LeaseLostException。
- Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionException。
- Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionNotFoundException。
- Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionSplitException。
2.0.2-prerelease
- API の軽微な変更:
- 古いとマークされた ChangeFeedProcessorOptions.IsAutoCheckpointEnabled を削除しました。
2.0.1-prerelease
- 安定性の向上:
- リース ストアの初期化の処理が改善しました。 リース ストアが空の場合、プロセッサの 1 つのインスタンスだけがそれを初期化でき、他は待機します。
- リースの更新または解放の安定性と効率が向上しました。 1 つのパーティションのリースの更新と解放は、他のパーティションの更新から独立しています。 v1 では、すべてのパーティションに対して順番に行われていました。
- 新しい v2 API:
- プロセッサーの柔軟な構築に対応したビルダー パターン: ChangeFeedProcessorBuilder クラス。
- 任意の組み合わせのパラメーターを取得できます。
- 監視用の DocumentClient インスタンスとリース コレクションの両方またはいずれかを取得できます (v1 では利用できません)。
- IChangeFeedObserver.ProcessChangesAsync で CancellationToken を取得できるようになりました。
- IRemainingWorkEstimator - 残存する作業見積もりツールは、プロセッサとは個別に使用できます。
- 新しい機能拡張ポイント:
- IParitionLoadBalancingStrategy - プロセッサのインスタンス間でパーティションのカスタム負荷分散に使用します。
- ILease、ILeaseManager - カスタムのリース管理に使用します。
- IPartitionProcessor - パーティション上にあるカスタム処理の変更に使用します。
- プロセッサーの柔軟な構築に対応したビルダー パターン: ChangeFeedProcessorBuilder クラス。
- ログの記録 - LibLog ライブラリを使用します。
- v1 API との 100% の下位互換性
- 新しいコード ベース。
- SQL .NET SDK バージョン 1.21.1 以降と互換性があります。
v1 のビルド
1.3.3
- ログが追加されました。
- 保留中の作業見積もりを複数回呼び出すときの DocumentClient のリークを修正しました。
1.3.2
- 保留中の作業見積もりを修正しました。
1.3.1
- 安定性が向上しました。
- 一部のパーティションでオブザーバーの停止につながる可能性がある取り消されたタスクの問題を処理するために修正しました。
- 手動チェックポイント処理をサポートします。
- SQL .NET SDK バージョン 1.21 以降と互換性があります。
1.2.0
- .NET Standard 2.0 のサポートを追加します。 このパッケージで
netstandard2.0
とnet451
フレームワーク モニカーがサポートされるようになりました。 - SQL .NET SDK バージョン 1.17.0 以降と互換性があります。
- SQL .NET Core SDK バージョン 1.5.1 以降と互換性があります。
1.1.1
- 変更フィードが空であるか保留中の作業がない場合の、残っている作業の推定量の計算に関する問題を修正しました。
- SQL .NET SDK バージョン 1.13.2 以降と互換性があります。
1.1.0
- Change Feed に処理が残っている作業の推定量を取得するメソッドが追加されました。
- SQL .NET SDK バージョン 1.13.2 以降と互換性があります。
1.0.0
- GA SDK
- SQL .NET SDK バージョン 1.14.1 以降と互換性があります。
リリース日と提供終了日
Microsoft は、新しい/サポートされるバージョンに速やかに移行する目的で、SDK の提供終了を少なくともその 12 か月 前に通知します。 新しい機能と最適化は現在の SDK にのみ追加されます。そのため、常に可能な限り最新の SDK バージョンにアップグレードすることが推奨されます。
警告
2022 年 8 月 31 日以降、Azure Cosmos DB .NET または NoSQL 用 API の .NET Core SDK のバージョン 1.x に対するバグ修正、新機能の追加、サポートの提供は行われません。 アップグレードしない場合でも、SDK バージョン 1.x から送信される要求は、引き続き Azure Cosmos DB サービスによって処理されます。
Version | リリース日 | 提供終了日 |
---|---|---|
2.5.0 | 2023 年 5 月 15 日 | --- |
2.4.0 | 2021 年 5 月 6 日 | --- |
2.3.2 | 2020 年 8 月 11 日 | --- |
2.3.1 | 2020 年 7 月 30 日 | --- |
2.3.0 | 2020 年 4 月 2 日 | --- |
2.2.8 | 2019 年 10 月 28 日 | --- |
2.2.7 | 2019 年 5 月 14 日 | --- |
2.2.6 | 2019 年 1 月 29 日 | --- |
2.2.5 | 2018 年 12 月 13 日 | --- |
2.2.4 | 2018 年 11 月 29 日 | --- |
2.2.3 | 2018 年 11 月 19 日 | --- |
2.2.2 | 2018 年 10 月 31 日 | --- |
2.2.1 | 2018 年 10 月 24 日 | --- |
1.3.3 | 2018 年 5 月 8 日 | --- |
1.3.2 | 2018 年 4 月 18 日 | --- |
1.3.1 | 2018 年 3 月 13 日 | --- |
1.2.0 | 2017 年 10 月 31 日 | --- |
1.1.1 | 2017 年 8 月 29 日 | --- |
1.1.0 | 2017 年 8 月 13 日 | --- |
1.0.0 | 2017 年 7 月 7 日 | --- |
よく寄せられる質問
SDK の提供終了はどのような方法で通知されますか?
サポートされる SDK に速やかに移行できるように、提供終了となる SDK のサポート終了は 12 か月前に通知されます。 さらに、Azure portal、Azure の更新情報、担当サービス管理者への直接連絡など、さまざまな連絡手段で通知します。
その 12 か月間、提供終了予定の Azure Cosmos DB SDK でアプリケーションを作成できますか?
はい。12 か月の通知期間中も、提供終了予定の Azure Cosmos DB SDK でアプリケーションを作成、デプロイ、変更することができます。 この 12 か月の通知期間中、適宜、新しくサポートされるバージョンの Azure Cosmos DB SDK に移行することが推奨されます。
提供終了日以降、サポートされていない Azure Cosmos DB SDK を使用するアプリケーションはどうなりますか?
提供終了日以降、Azure Cosmos DB により、提供終了になった SDK のバージョンに対してバグ修正、新機能の追加、サポートの提供は行われません。 アップグレードしない場合でも、提供終了になった SDK のバージョンから送信される要求は、引き続き Azure Cosmos DB サービスによって処理されます。
最新の機能と更新プログラムがあるのは、どの SDK バージョンですか?
新機能と更新プログラムは、サポートされている最新の SDK のメジャー バージョンの最新のマイナー バージョンにのみ追加されます。 新機能、パフォーマンスの向上、バグ修正を利用するには、常に最新バージョンを使用することをお勧めします。 提供終了していない古いバージョンの SDK を利用している場合、Azure Cosmos DB への要求は引き続き機能しますが、新しい機能にはアクセスできません。
期限前にアプリケーションを更新できない場合、どうすればよいですか?
可能な限り早く最新の SDK にアップグレードすることが推奨されます。 SDK が提供終了予定になると、アプリケーションを更新するために 12 か月が与えられます。 提供終了日までに更新できない場合、提供終了になったバージョンの SDK から送信された要求は引き続き Azure Cosmos DB によって処理されるため、実行中のアプリケーションは引き続き機能します。 ただし、Azure Cosmos DB では、提供終了になった SDK のバージョンに対してバグ修正、新機能の追加、サポートの提供は行われません。
サポート プランをお持ちでテクニカル サポートが必要な場合は、サポート チケットを提出して、お問い合わせください。
SDK またはコネクタへの機能の追加リクエストはどのようにして行えばよいですか?
すべての SDK またはコネクタに新機能がすぐ追加されるとは限りません。 サポートされていない機能の追加を希望する場合は、コミュニティ フォーラムにフィードバックをお寄せください。
関連項目
Azure Cosmos DB の詳細については、Microsoft Azure Cosmos DB のサービス ページを参照してください。