Compartir a través de


IMembershipTable Interfaz

Definición

Interfaz para la tabla de pertenencia.

public interface IMembershipTable
type IMembershipTable = interface
Public Interface IMembershipTable
Derivado

Métodos

CleanupDefunctSiloEntries(DateTimeOffset)

Eliminar todas las entradas de silo inactivas anteriores a beforeDate

DeleteMembershipTableEntries(String)

Elimina todas las entradas de tabla del clusterId especificado.

InitializeMembershipTable(Boolean)

Inicializa la tabla de pertenencia, se llamará antes de todos los demás métodos.

InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

Inicializa la tabla de pertenencia, se llamará antes de todos los demás métodos.

InsertRow(MembershipEntry, TableVersion)

Intenta insertar (agregar) de forma atómica un nuevo elemento MembershipEntry para un silo y también actualizar TableVersion. Si la operación se realiza correctamente, se realizarán los siguientes cambios en la tabla:

  1. Se agregará nuevo MembershipEntry a la tabla.
  2. El elemento MembershipEntry recién agregado también se agregará con la nueva eTag generada automáticamente.
  3. TableVersion.Version en la tabla se actualizará a la nueva tableVersion.Version.
  4. TableVersion etag de la tabla se actualizará a la nueva eTag generada automáticamente. Todos esos cambios en la tabla, la inserción de una nueva fila y actualización de la versión de la tabla y las etiquetas electrónicas asociadas, deben producirse de forma atómica o generar errores atómicos sin efectos secundarios. La operación debe producir un error en cada una de las condiciones siguientes:
  5. Ya existe un elemento MembershipEntry para un silo determinado en la tabla.
  6. Error en la actualización de TableVersion, ya que la etiqueta de etag tableVersion especificada (como se especifica en la propiedad TableVersion.VersionEtag) no coincide con la etiqueta etag tableVersion de la tabla.
ReadAll()

Lee de forma atómica el contenido completo de la tabla de pertenencia. La propiedad MembershipTableData devuelta incluye toda la entrada MembershipEntry para todos los silos de la tabla y TableVersion para esta tabla. Los elementos MembershipEntries y TableVersion deben leerse de forma atómica.

ReadRow(SiloAddress)

Lee de forma atómica la información de la tabla de pertenencia sobre un silo determinado. La propiedad MembershipTableData devuelta incluye una entrada MembershipEntry para un silo determinado y TableVersion para esta tabla. MembershipEntry y TableVersion deben leerse de forma atómica.

UpdateIAmAlive(MembershipEntry)

Novedades la parte IAmAlive (columna) de MembershipEntry para este silo. Esta operación solo debe actualizar la columna IAmAlive y no cambiar otras columnas. Esta operación es una "escritura desfasada" o "actualización local" y se realiza sin validación de etag. Con respecto a la actualización de eTags: esta operación puede actualizar automáticamente la eTag asociada a la fila de silo especificada, pero no tiene que hacerlo. También puede dejar la etag no modificada ("escritura sucia"). Con respecto a TableVersion: esta operación no debe cambiar tableVersion de la tabla. Debería dejarla intacta. No hay ningún escenario en el que esta operación podría producir un error debido a motivos semánticos de tabla. Solo se puede producir un error debido a problemas de red o a la falta de disponibilidad de la tabla.

UpdateRow(MembershipEntry, String, TableVersion)

De forma atómica, intenta actualizar MembershipEntry para un silo y también actualiza TableVersion. Si la operación se realiza correctamente, se realizarán los siguientes cambios en la tabla:

  1. MembershipEntry para este silo se actualizará al nuevo MembershipEntry (la entrada anterior será totalmente sustituida por la nueva entrada).
  2. La eTag de membershipEntry actualizada también será eTag con la nueva eTag generada automáticamente.
  3. TableVersion.Version en la tabla se actualizará a la nueva tableVersion.Version.
  4. TableVersion etag de la tabla se actualizará a la nueva eTag generada automáticamente. Todos esos cambios en la tabla, la actualización de una nueva fila y actualización de la versión de la tabla y las etiquetas electrónicas asociadas, deben producirse de forma atómica o generar errores atómicos sin efectos secundarios. La operación debe producir un error en cada una de las condiciones siguientes:
  5. Un elemento MembershipEntry para un silo determinado no existe en la tabla
  6. Un elemento MembershipEntry para un silo determinado existe en la tabla, pero su etag en la tabla no coincide con el etag proporcionado.
  7. Error en la actualización de TableVersion, ya que la etiqueta de etag tableVersion especificada (como se especifica en la propiedad TableVersion.VersionEtag) no coincide con la etiqueta etag tableVersion de la tabla.

Se aplica a