Share via


IMembershipTableGrain Interfaz

Definición

Interfaz de tabla de pertenencia para la implementación basada en granos.

[Orleans.Concurrency.Unordered]
public interface IMembershipTableGrain : Orleans.IGrainWithGuidKey, Orleans.IMembershipTable
[<Orleans.Concurrency.Unordered>]
type IMembershipTableGrain = interface
    interface IGrainWithGuidKey
    interface IGrain
    interface IAddressable
    interface IMembershipTable
Public Interface IMembershipTableGrain
Implements IGrainWithGuidKey, IMembershipTable
Atributos
Implementaciones

Métodos

CleanupDefunctSiloEntries(DateTimeOffset)

Eliminar todas las entradas de silo inactivas anteriores a beforeDate

(Heredado de IMembershipTable)
DeleteMembershipTableEntries(String)

Elimina todas las entradas de tabla del clusterId especificado.

(Heredado de IMembershipTable)
InitializeMembershipTable(Boolean)

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

(Heredado de IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

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

(Heredado de IMembershipTable)
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.
(Heredado de IMembershipTable)
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.

(Heredado de IMembershipTable)
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.

(Heredado de IMembershipTable)
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.

(Heredado de IMembershipTable)
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.
(Heredado de IMembershipTable)

Métodos de extensión

AsReference<TGrainInterface>(IAddressable)

Devuelve una referencia con tipo al grano proporcionado.

BindGrainReference(IAddressable, IGrainFactory)

Enlaza la referencia de grano a la proporcionada IGrainFactory.

Cast<TGrainInterface>(IAddressable)

Devuelve una referencia con tipo al grano proporcionado.

GetGrainIdentity(IGrain)

Interfaz de tabla de pertenencia para la implementación basada en granos.

GetPrimaryKey(IGrain)

Interfaz de tabla de pertenencia para la implementación basada en granos.

GetPrimaryKey(IGrain, String)

Interfaz de tabla de pertenencia para la implementación basada en granos.

GetPrimaryKey(IAddressable)

Devuelve la Guid representación de una clave principal de grano.

GetPrimaryKey(IAddressable, String)

Devuelve la Guid representación de una clave principal de grano.

GetPrimaryKeyLong(IGrain)

Interfaz de tabla de pertenencia para la implementación basada en granos.

GetPrimaryKeyLong(IGrain, String)

Interfaz de tabla de pertenencia para la implementación basada en granos.

GetPrimaryKeyLong(IAddressable)

Devuelve la long representación de una clave principal de grano.

GetPrimaryKeyLong(IAddressable, String)

Devuelve la long representación de una clave principal de grano.

GetPrimaryKeyString(IAddressable)

Devuelve la string clave principal del grano.

IsPrimaryKeyBasedOnLong(IAddressable)

Devuelve si parte de la clave principal es de tipo long.

Se aplica a