IMembershipTableSystemTarget Interfaccia

Definizione

Interfaccia della tabella di appartenenza per l'implementazione basata sulla destinazione di 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
Attributi
Implementazioni

Metodi

CleanupDefunctSiloEntries(DateTimeOffset)

Eliminare tutte le voci di silo non recapitabili più vecchie di 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)

Tenta in modo atomico di inserire (aggiungere) un nuovo MembershipEntry per un silo e di aggiornare anche TableVersion. Se l'operazione ha esito positivo, verranno apportate le modifiche seguenti alla tabella:

  1. La nuova membershipEntry verrà aggiunta alla tabella.
  2. L'elemento MembershipEntry appena aggiunto verrà aggiunto anche con il nuovo eTag generato automaticamente univoco.
  3. TableVersion.Version nella tabella verrà aggiornato alla nuova table TableVersion.Version.
  4. L'etag TableVersion 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 avere esito negativo in modo atomico senza effetti collaterali. L'operazione deve avere esito negativo in ognuna delle condizioni seguenti:
  5. Una membershipEntry per un determinato silo esiste già nella tabella
  6. L'aggiornamento di TableVersion non è riuscito perché l'etag TableVersion specificato (come specificato dalla proprietà TableVersion.VersionEtag) non corrisponde all'etag TableVersion nella tabella.
(Ereditato da IMembershipTable)
ReadAll()

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

(Ereditato da IMembershipTable)
ReadRow(SiloAddress)

Legge in modo atomico le informazioni sulla tabella di appartenenza su un determinato silo. MembershipTableData restituito include una voce MembershipEntry per un determinato silo e TableVersion per questa tabella. Le proprietà MembershipEntry e TableVersion devono essere lette in modo atomico.

(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 dirty" o "aggiornamento sul posto" e viene eseguita senza convalida etag. Per quanto riguarda l'aggiornamento di eTag: questa operazione può aggiornare automaticamente l'eTag associato alla riga silo specificata, ma non è necessario. Può anche lasciare l'etag non modificato ("scrittura dirty"). Per quanto riguarda TableVersion: questa operazione non deve modificare tableVersion della tabella. Dovrebbe lasciarlo invariato. Non esiste uno scenario in cui questa operazione potrebbe non riuscire a causa di motivi semantici di tabella. Può avere esito negativo solo a causa di problemi di rete o di indisponibilità della tabella.

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

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

  1. MembershipEntry per questo silo verrà aggiornato al nuovo MembershipEntry (la voce precedente verrà sostituita completamente dalla nuova voce)
  2. Anche l'eTag per l'membershipEntry aggiornato sarà eTag con il nuovo eTag generato automaticamente.
  3. TableVersion.Version nella tabella verrà aggiornato alla nuova table TableVersion.Version.
  4. L'etag TableVersion 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 avere esito negativo in modo atomico senza effetti collaterali. L'operazione deve avere esito negativo in ognuna delle condizioni seguenti:
  5. Una membershipEntry per un determinato silo non esiste nella tabella
  6. Esiste un elemento MembershipEntry per un determinato silo nella tabella, ma il relativo etag nella tabella non corrisponde all'etag specificato.
  7. L'aggiornamento di TableVersion non è riuscito perché l'etag TableVersion specificato (come specificato dalla proprietà TableVersion.VersionEtag) non corrisponde all'etag TableVersion nella tabella.
(Ereditato da IMembershipTable)

Metodi di estensione

AsReference(IAddressable, Type)

Restituisce un riferimento tipizzato alla granularità specificata.

AsReference<TGrainInterface>(IAddressable)

Restituisce un riferimento tipizzato alla granularità specificata.

BindGrainReference(IAddressable, IGrainFactory)

Associa il riferimento granulare all'oggetto specificato IGrainFactory.

Cast(IAddressable, Type)

Restituisce un riferimento tipizzato alla granularità specificata.

Cast<TGrainInterface>(IAddressable)

Restituisce un riferimento tipizzato alla granularità specificata.

GetGrainId(IAddressable)

Restituisce l'ID di granularità corrispondente alla granularità specificata.

GetPrimaryKey(IAddressable, String)

Restituisce la Guid rappresentazione di una chiave primaria granulare.

GetPrimaryKey(IAddressable)

Restituisce la Guid rappresentazione di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable, String)

Restituisce la long rappresentazione di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable)

Restituisce la long rappresentazione di una chiave primaria granulare.

GetPrimaryKeyString(IAddressable)

Restituisce la string chiave primaria della granularità.

IsPrimaryKeyBasedOnLong(IAddressable)

Restituisce un valore che indica se la parte della chiave primaria è di tipo long.

Si applica a