Compartilhar via


IMembershipTableSystemTarget Interface

Definição

Interface da tabela de associação para implementação baseada em destino do sistema.

[Orleans.Concurrency.Unordered]
public interface IMembershipTableSystemTarget : Orleans.IMembershipTable, Orleans.ISystemTarget
[<Orleans.Concurrency.Unordered>]
type IMembershipTableSystemTarget = interface
    interface IMembershipTable
    interface ISystemTarget
    interface IAddressable
Public Interface IMembershipTableSystemTarget
Implements IMembershipTable, ISystemTarget
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á chamado antes de todos os outros métodos

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

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

(Herdado de IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

Tenta atomicamente 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. Novo 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á atualizada para a nova 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 TableVersion para esta tabela. MembershipEntries e 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 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 "gravação suja" ou "atualização in-loco" e é executada sem validação de etag. Com 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 ("gravação suja"). 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)

Tenta atomicamente 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 desse silo será atualizado para o novo MembershipEntry (a entrada antiga será totalmente substituída pela nova entrada)
  2. A eTag da MembershipEntry atualizada também será eTag com a nova eTag gerada automaticamente.
  3. TableVersion.Version na tabela será atualizada para a nova TableVersion.Version.
  4. A etag TableVersion na tabela será atualizada para a nova eTag gerada automaticamente. Todas essas alterações na tabela, a atualizaçã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 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(IAddressable, Type)

Retorna uma referência tipada à granularidade fornecida.

AsReference<TGrainInterface>(IAddressable)

Retorna uma referência tipada à granularidade fornecida.

BindGrainReference(IAddressable, IGrainFactory)

Associa a referência de granularidade ao fornecido IGrainFactory.

Cast(IAddressable, Type)

Retorna uma referência tipada à granularidade fornecida.

Cast<TGrainInterface>(IAddressable)

Retorna uma referência tipada à granularidade fornecida.

GetGrainId(IAddressable)

Retorna a ID de granularidade correspondente à granularidade fornecida.

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(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