Compartir a través de


VolatileActorStateProvider.IStateProvider.UpdateEpochAsync Método

Definición

Indica a una réplica que ha cambiado la configuración de un conjunto de réplicas debido a un cambio o intento de cambio a la réplica principal. El cambio se produce debido a errores o equilibrio de carga de la réplica principal anterior. Los cambios de época actúan como barrera mediante la segmentación de operaciones en los períodos de configuración exactos en los que se enviaron mediante una réplica principal específica.

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

Parámetros

epoch
Epoch

Nuevo objeto Epoch.

previousEpochLastSequenceNumber
Int64

Número máximo de secuencia (LSN) que se debe haber observado en la época anterior.

cancellationToken
CancellationToken

Objeto CancellationToken que observa la operación. Se puede usar para enviar una notificación de que se debe cancelar la operación. Tenga en cuenta que la cancelación es un aviso y que es posible que la operación todavía se complete aunque se cancele.

Devoluciones

Devuelve Task.

Implementaciones

Comentarios

Se llama a este método porque la réplica principal del conjunto de réplicas ha cambiado o se intentó realizar un cambio. Las réplicas secundarias reciben este método cuando están a punto de convertirse en la nueva réplica principal o, si no son la nueva réplica principal, la reciben cuando intentan obtener la primera operación de la nueva réplica principal de la secuencia de replicación. Las réplicas principales pueden recibir ocasionalmente este método si se intenta intercambiar la réplica principal, lo que produce un error.

La información del UpdateEpochAsync(Epoch, Int64, CancellationToken) método permite al servicio mantener un vector de progreso, que es una lista de cada época que ha recibido la réplica y el LSN máximo que contenían. Los datos vectoriales de progreso junto con el LSN máximo aplicado actual son útiles para que una réplica secundaria se envíe durante la operación de copia para describir cuánto ha progresado la operación. La comparación de vectores de progreso recibidos de réplicas secundarias durante la operación de copia permite a las réplicas principales determinar si la réplica secundaria está actualizada, qué estado se debe enviar a la réplica secundaria y si la réplica secundaria ha realizado un progreso falso. El progreso falso significa que un LSN en una época anterior era mayor que el LSN que recibe la réplica principal.

Se aplica a