Condividi tramite


IMembershipTableGrain Interfaccia

Definizione

Interfaccia della tabella di appartenenza per l'implementazione basata su granularità.

[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
Attributi
Implementazioni

Metodi

CleanupDefunctSiloEntries(DateTimeOffset)

Eliminare tutte le voci di silo non aggiornate rispetto a beforeDate

(Ereditato da IMembershipTable)
DeleteMembershipTableEntries(String)

Elimina tutte le voci di tabella del clusterId specificato

(Ereditato da IMembershipTable)
InitializeMembershipTable(Boolean)

Inizializza la tabella di appartenenza, verrà chiamata prima di tutti gli altri metodi

(Ereditato da IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

Inizializza la tabella di appartenenza, verrà chiamata prima di tutti gli altri metodi

(Ereditato da IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

Atomicamente tenta di inserire (aggiungere) un nuovo membershipEntry per un silo e aggiornare anche TableVersion. Se l'operazione ha esito positivo, le modifiche seguenti verranno apportate alla tabella:

  1. La nuova appartenenzaEntry verrà aggiunta alla tabella.
  2. Il nuovo elemento MembershipEntry aggiunto verrà aggiunto anche con il nuovo eTag generato automaticamente.
  3. TableVersion.Version nella tabella verrà aggiornato al nuovo TableVersion.Version.
  4. TableVersion etag nella tabella verrà aggiornato al nuovo eTag generato automaticamente. Tutte le modifiche apportate alla tabella, l'inserimento di una nuova riga e l'aggiornamento della versione della tabella e degli etag associati, devono verificarsi in modo atomico o non hanno effetti collaterali. L'operazione deve avere esito negativo in ognuna delle condizioni seguenti:
  5. Un elemento MembershipEntry per un determinato silo esiste già nella tabella
  6. L'aggiornamento di TableVersion non è riuscito poiché l'etag TableVersion specificato (come specificato dalla proprietà TableVersion.VersionEtag) non corrispondeva all'etag TableVersion nella tabella.
(Ereditato da IMembershipTable)
ReadAll()

Legge in modo atomico il contenuto completo della tabella di appartenenza. L'oggetto MembershipTableData restituito include tutte le voci MembershipEntry per tutti i silo nella tabella e TableVersion per questa tabella. Le voci MembershipE e TableVersion devono essere lette atomicamente.

(Ereditato da IMembershipTable)
ReadRow(SiloAddress)

Legge atomicamente le informazioni sulla tabella di appartenenza su un determinato silo. L'oggetto MembershipTableData restituito include una voce MembershipEntry per un determinato silo e TableVersion per questa tabella. L'appartenenzaEntry e TableVersion devono essere letti atomicamente.

(Ereditato da IMembershipTable)
UpdateIAmAlive(MembershipEntry)

Aggiornamenti la parte IAmAlive (colonna) di MembershipEntry per questo silo. Questa operazione deve aggiornare solo la colonna IAmAlive e non modificare altre colonne. Questa operazione è una "scrittura sporca" o "aggiornamento sul posto" e viene eseguita senza convalida etag. Per quanto riguarda l'aggiornamento di eTags: questa operazione può aggiornare automaticamente l'eTag associato alla riga silo specificata, ma non deve essere necessario. Può anche lasciare l'etag non modificato ("scrittura sporca"). Per quanto riguarda TableVersion: questa operazione non deve modificare TableVersion della tabella. Dovrebbe lasciare che non sia toccato. Non esiste uno scenario in cui questa operazione potrebbe non riuscire a causa di motivi semantici della tabella. Può avere esito negativo solo a causa di problemi di rete o di indisponibilità della tabella.

(Ereditato da IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

Atomicamente tenta di aggiornare MembershipEntry per un silo e aggiornare anche TableVersion. Se l'operazione ha esito positivo, le modifiche seguenti verranno apportate alla tabella:

  1. L'appartenenzaEntry per questo silo verrà aggiornato al nuovo MembershipEntry (la voce precedente verrà sostituita completamente dalla nuova voce)
  2. L'eTag per l'eTag aggiornato sarà anche eTag con il nuovo eTag generato automaticamente.
  3. TableVersion.Version nella tabella verrà aggiornato al nuovo TableVersion.Version.
  4. TableVersion etag nella tabella verrà aggiornato al nuovo eTag generato automaticamente. Tutte le modifiche apportate alla tabella, l'aggiornamento di una nuova riga e l'aggiornamento della versione della tabella e degli etag associati, devono verificarsi in modo atomico o non hanno effetti collaterali. L'operazione deve avere esito negativo in ognuna delle condizioni seguenti:
  5. Una proprietà MembershipEntry per un determinato silo non esiste nella tabella
  6. Un oggetto MembershipEntry per un determinato silo esiste nella tabella, ma il relativo etag nella tabella non corrisponde all'etag fornito.
  7. L'aggiornamento di TableVersion non è riuscito poiché l'etag TableVersion specificato (come specificato dalla proprietà TableVersion.VersionEtag) non corrispondeva all'etag TableVersion nella tabella.
(Ereditato da IMembershipTable)

Metodi di estensione

AsReference<TGrainInterface>(IAddressable)

Restituisce un riferimento tipizzato al granularità specificato.

BindGrainReference(IAddressable, IGrainFactory)

Associa il riferimento granulare all'oggetto specificato IGrainFactory.

Cast<TGrainInterface>(IAddressable)

Restituisce un riferimento tipizzato al granularità specificato.

GetGrainIdentity(IGrain)

Interfaccia della tabella di appartenenza per l'implementazione basata su granularità.

GetPrimaryKey(IGrain)

Interfaccia della tabella di appartenenza per l'implementazione basata su granularità.

GetPrimaryKey(IGrain, String)

Interfaccia della tabella di appartenenza per l'implementazione basata su granularità.

GetPrimaryKey(IAddressable)

Restituisce la Guid rappresentazione di una chiave primaria granulare.

GetPrimaryKey(IAddressable, String)

Restituisce la Guid rappresentazione di una chiave primaria granulare.

GetPrimaryKeyLong(IGrain)

Interfaccia della tabella di appartenenza per l'implementazione basata su granularità.

GetPrimaryKeyLong(IGrain, String)

Interfaccia della tabella di appartenenza per l'implementazione basata su granularità.

GetPrimaryKeyLong(IAddressable)

Restituisce la long rappresentazione di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable, String)

Restituisce la long rappresentazione di una chiave primaria granulare.

GetPrimaryKeyString(IAddressable)

Restituisce la string chiave primaria del granulare.

IsPrimaryKeyBasedOnLong(IAddressable)

Restituisce se la parte della chiave primaria è di tipo long.

Si applica a