Partilhar via


IMembershipTableGrain Interface

Definição

Interface da tabela de associação para implementação baseada em granularidade.

[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
Implementações

Métodos

CleanupDefunctSiloEntries(DateTimeOffset)

Excluir todas as entradas de silo mortas mais antigas do que beforeDate

(Herdado de IMembershipTable)
DeleteMembershipTableEntries(String)

Exclui todas as entradas de tabela da clusterId fornecida

(Herdado de IMembershipTable)
InitializeMembershipTable(Boolean)

Inicializa a tabela de associação, será chamada antes de todos os outros métodos

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

Inicializa a tabela de associação, será chamada antes de todos os outros métodos

(Herdado de IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

Atomicamente tenta inserir (adicionar) um novo MembershipEntry para um silo e também atualizar o TableVersion. Se a operação for bem-sucedida, as seguintes alterações serão feitas na tabela:

  1. New MembershipEntry será adicionado à tabela.
  2. O MembershipEntry recém-adicionado também será adicionado com a nova eTag gerada automaticamente.
  3. TableVersion.Version na tabela será atualizado para o novo TableVersion.Version.
  4. A etag TableVersion na tabela será atualizada para a nova eTag gerada automaticamente. Todas essas alterações na tabela, a inserção de uma nova linha e a atualização da versão da tabela e das etags associadas devem ocorrer atomicamente ou falhar atomicamente sem efeitos colaterais. A operação deve falhar em cada uma das seguintes condições:
  5. Um MembershipEntry para um determinado silo já existe na tabela
  6. Falha na atualização do TableVersion desde que a etag TableVersion fornecida (conforme especificado pela propriedade TableVersion.VersionEtag) não correspondeu à etag TableVersion na tabela.
(Herdado de IMembershipTable)
ReadAll()

Lê atomicamente o conteúdo completo da Tabela de Associação. O MembershipTableData retornado inclui todas as entradas MembershipEntry para todos os silos na tabela e o TableVersion para esta tabela. O MembershipEntries e o TableVersion precisam ser lidos atomicamente.

(Herdado de IMembershipTable)
ReadRow(SiloAddress)

Lê atomicamente as informações da Tabela de Associação sobre um determinado silo. O MembershipTableData retornado inclui uma entrada MembershipEntry para um determinado silo e a TableVersion para esta tabela. O MembershipEntry e o TableVersion precisam ser lidos atomicamente.

(Herdado de IMembershipTable)
UpdateIAmAlive(MembershipEntry)

Atualizações a parte IAmAlive (coluna) do MembershipEntry para esse silo. Essa operação só deve atualizar a coluna IAmAlive e não alterar outras colunas. Essa operação é uma "sujo gravação" ou "atualização in loco" e é executada sem validação de etag. Em relação à atualização de eTags: essa operação pode atualizar automaticamente a eTag associada à linha de silo fornecida, mas não precisa. Ele também pode deixar a etag não alterada ("sujo gravação"). Em relação a TableVersion: essa operação não deve alterar o TableVersion da tabela. Ele deve deixá-lo intocado. Não há nenhum cenário em que essa operação possa falhar devido a motivos semânticos de tabela. Ele só pode falhar devido a problemas de rede ou indisponibilidade de tabela.

(Herdado de IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

Atomicamente tenta atualizar o MembershipEntry para um silo e também atualizar o TableVersion. Se a operação for bem-sucedida, as seguintes alterações serão feitas na tabela:

  1. O MembershipEntry para esse silo será atualizado para o novo MembershipEntry (a entrada antiga será totalmente substituída pela nova entrada)
  2. A eTag para a MembershipEntry atualizada também será eTag com a nova eTag gerada automaticamente.
  3. TableVersion.Version na tabela será atualizado para o novo TableVersion.Version.
  4. A etag TableVersion na tabela será atualizada para a nova eTag gerada automaticamente. Todas essas alterações na tabela, atualização de uma nova linha e atualização da versão da tabela e das etags associadas devem ocorrer atomicamente ou falhar atomicamente sem efeitos colaterais. A operação deve falhar em cada uma das seguintes condições:
  5. Um MembershipEntry para um determinado silo não existe na tabela
  6. Um MembershipEntry para um determinado silo existe na tabela, mas sua etag na tabela não corresponde à etag fornecida.
  7. Falha na atualização do TableVersion desde que a etag TableVersion fornecida (conforme especificado pela propriedade TableVersion.VersionEtag) não correspondeu à etag TableVersion na tabela.
(Herdado de IMembershipTable)

Métodos de Extensão

AsReference<TGrainInterface>(IAddressable)

Retorna uma referência tipada à granularidade fornecida.

BindGrainReference(IAddressable, IGrainFactory)

Associa a referência de granularidade ao fornecido IGrainFactory.

Cast<TGrainInterface>(IAddressable)

Retorna uma referência tipada à granularidade fornecida.

GetGrainIdentity(IGrain)

Interface da tabela de associação para implementação baseada em granularidade.

GetPrimaryKey(IGrain, String)

Interface da tabela de associação para implementação baseada em granularidade.

GetPrimaryKey(IGrain)

Interface da tabela de associação para implementação baseada em granularidade.

GetPrimaryKey(IAddressable, String)

Retorna a Guid representação de uma chave primária de granularidade.

GetPrimaryKey(IAddressable)

Retorna a Guid representação de uma chave primária de granularidade.

GetPrimaryKeyLong(IGrain, String)

Interface da tabela de associação para implementação baseada em granularidade.

GetPrimaryKeyLong(IGrain)

Interface da tabela de associação para implementação baseada em granularidade.

GetPrimaryKeyLong(IAddressable, String)

Retorna a long representação de uma chave primária de granularidade.

GetPrimaryKeyLong(IAddressable)

Retorna a long representação de uma chave primária de granularidade.

GetPrimaryKeyString(IAddressable)

Retorna a string chave primária da granularidade.

IsPrimaryKeyBasedOnLong(IAddressable)

Retorna se parte da chave primária é do tipo long.

Aplica-se a