次の方法で共有


IStateProvider.UpdateEpochAsync(Epoch, Int64, CancellationToken) メソッド

定義

レプリカ セットの構成が、プライマリ レプリカの変更または変更の試行によって変更されたことをレプリカに示します。 この変更は、以前のプライマリ レプリカの障害または負荷分散が原因で発生します。 エポック変更は、特定のプライマリ レプリカによって送信された正確な構成期間に操作をセグメント化することで、バリアとして機能します。

public System.Threading.Tasks.Task UpdateEpochAsync (System.Fabric.Epoch epoch, long previousEpochLastSequenceNumber, System.Threading.CancellationToken cancellationToken);
abstract member UpdateEpochAsync : System.Fabric.Epoch * int64 * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function UpdateEpochAsync (epoch As Epoch, previousEpochLastSequenceNumber As Long, cancellationToken As CancellationToken) As Task

パラメーター

epoch
Epoch

新しい Epoch

previousEpochLastSequenceNumber
Int64

前のエポックの最大シーケンス番号 (LSN)。

cancellationToken
CancellationToken

CancellationToken操作が監視しているオブジェクト。 操作を取り消す必要があることを示す通知を送信するために使用できます。 取り消しはアドバイザリであり、取り消された場合でも操作が完了する可能性があることに注意してください。

戻り値

Task を返します。

注釈

メソッドの UpdateEpochAsync(Epoch, Int64, CancellationToken) 情報を使用すると、サービスは進行状況ベクトルを維持できます。これは、レプリカが受信した各エポックと、それらが含まれている最大 LSN の一覧です。

現在適用されている最大 LSN と共に進行状況ベクトル データは、セカンダリ レプリカがレプリカの状態を記述するためにコピー操作中に送信するのに役立ちます。

コピー操作中にセカンダリ レプリカから受信した進行状況ベクトルを比較すると、プライマリ レプリカは、セカンダリ レプリカが最新かどうか、セカンダリ レプリカに送信する必要がある状態、およびセカンダリ レプリカが誤った進行状況を行ったかどうかを判断できます。

False の進行状況は、セカンダリ レプリカが、前のエポックの LSN が、プライマリ レプリカの進行状況ベクトルにある LSN よりも大きかったと報告することを意味します。

適用対象