你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

VolatileActorStateProvider.IStateProvider.UpdateEpochAsync 方法

定义

向副本 (replica) 指示由于更改或尝试更改主副本 (replica) 而更改了副本 (replica) 集的配置。 由于以前的主副本 (replica) 失败或负载均衡,发生此更改。 Epoch 更改通过将操作划分为特定主副本 (replica) 发送操作的确切配置周期来充当屏障。

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

参数

epoch
Epoch

新的 Epoch

previousEpochLastSequenceNumber
Int64

最大序列号 (上一个时期应观察到的 LSN) 。

cancellationToken
CancellationToken

CancellationToken操作正在观察的对象。 它可用于发送应取消操作的通知。 请注意,取消是通知性的,即使操作被取消,操作仍可能完成。

返回

返回 Task

实现

注解

之所以调用此方法,是因为副本 (replica) 集的主副本 (replica) 已更改,或者已尝试更改。 辅助副本在即将成为新的主副本 (replica) 时接收此方法,或者,如果它们不是新的主副本 (replica) ,则当它们尝试从新的主副本 (replica) 从复制流获取第一个操作时会收到此方法。 如果尝试交换主副本 (replica) 失败,主副本可能会偶尔收到此方法。

方法中UpdateEpochAsync(Epoch, Int64, CancellationToken)的信息使服务能够维护进度向量,该向量是副本 (replica) 已接收的每个纪元的列表,以及它们包含的最大 LSN。 进度矢量数据以及当前应用的最大 LSN 对于辅助副本 (replica) 在复制操作期间发送以描述操作进度非常有用。 比较复制操作期间从辅助副本接收的进度向量,主要副本可以确定辅助副本 (replica) 是否是最新的、必须发送到辅助副本 (replica) 的状态,以及辅助副本 (replica) 是否取得了错误的进度。 错误进度意味着上一个时期的 LSN 大于主要副本 (replica) 接收的 LSN。

适用于