Freigeben über


IMembershipTableGrain Schnittstelle

Definition

Mitgliedschaftstabellenschnittstelle für die grainbasierte Implementierung.

[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
Attribute
Implementiert

Methoden

CleanupDefunctSiloEntries(DateTimeOffset)

Löschen aller toten Siloeinträge, die älter als sind beforeDate

(Geerbt von IMembershipTable)
DeleteMembershipTableEntries(String)

Löscht alle Tabelleneinträge der angegebenen clusterId.

(Geerbt von IMembershipTable)
InitializeMembershipTable(Boolean)

Initialisiert die Mitgliedschaftstabelle, wird vor allen anderen Methoden aufgerufen.

(Geerbt von IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

Initialisiert die Mitgliedschaftstabelle, wird vor allen anderen Methoden aufgerufen.

(Geerbt von IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

Atomar versucht, einen neuen MembershipEntry für ein Silo einzufügen (hinzuzufügen) und auch die TableVersion zu aktualisieren. Wenn der Vorgang erfolgreich ist, werden die folgenden Änderungen an der Tabelle vorgenommen:

  1. Neue MembershipEntry wird der Tabelle hinzugefügt.
  2. Das neu hinzugefügte MembershipEntry wird auch mit dem neuen eindeutigen automatisch generierten eTag hinzugefügt.
  3. TableVersion.Version in der Tabelle wird auf die neue TableVersion.Version aktualisiert.
  4. TableVersion etag in der Tabelle wird auf das neue eindeutige, automatisch generierte eTag aktualisiert. Alle diese Änderungen an der Tabelle, einfügen einer neuen Zeile und Aktualisieren der Tabellenversion und der zugehörigen etags, sollten atomar erfolgen oder atomar ohne Nebenwirkungen fehlschlagen. Der Vorgang sollte in jeder der folgenden Bedingungen fehlschlagen:
  5. Ein MembershipEntry für ein bestimmtes Silo ist bereits in der Tabelle vorhanden.
  6. Die Aktualisierung der TableVersion ist fehlgeschlagen, da das angegebene TableVersion-etag (wie durch die TableVersion.VersionEtag-Eigenschaft angegeben) nicht mit dem TableVersion-etag in der Tabelle übereinstimmte.
(Geerbt von IMembershipTable)
ReadAll()

Liest den vollständigen Inhalt der Mitgliedschaftstabelle atomar. Die zurückgegebene MembershipTableData enthält den gesamten MembershipEntry-Eintrag für alle Silos in der Tabelle und die TableVersion für diese Tabelle. Die MembershipEntries und die TableVersion müssen atomar gelesen werden.

(Geerbt von IMembershipTable)
ReadRow(SiloAddress)

Liest die Mitgliedschaftstabelleninformationen zu einem bestimmten Silo atomar. Die zurückgegebene MembershipTableData enthält einen MembershipEntry-Eintrag für ein bestimmtes Silo und die TableVersion für diese Tabelle. MembershipEntry und TableVersion müssen atomar gelesen werden.

(Geerbt von IMembershipTable)
UpdateIAmAlive(MembershipEntry)

Updates den IAmAlive-Teil (Spalte) von MembershipEntry für dieses Silo. Dieser Vorgang sollte nur die IAmAlive-Spalte aktualisieren und keine anderen Spalten ändern. Dieser Vorgang ist ein "modifiziert Schreiben" oder "direktes Update" und wird ohne Etag-Validierung ausgeführt. In Bezug auf eTags-Update: Dieser Vorgang kann das der angegebenen Silozeile zugeordnete eTag automatisch aktualisieren, muss dies jedoch nicht. Außerdem kann das etag nicht geändert werden ("modifiziert Schreibzugriff"). In Bezug auf TableVersion: Dieser Vorgang sollte die TableVersion der Tabelle nicht ändern. Sie sollte sie unberührt lassen. Es gibt kein Szenario, in dem dieser Vorgang aus tabellensemantischen Gründen fehlschlagen könnte. Es kann nur aufgrund von Netzwerkproblemen oder nicht verfügbarer Tabellen fehlschlagen.

(Geerbt von IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

Versucht atomar, den MembershipEntry für ein Silo und auch die TableVersion zu aktualisieren. Wenn der Vorgang erfolgreich ist, werden die folgenden Änderungen an der Tabelle vorgenommen:

  1. Der MembershipEntry für dieses Silo wird auf den neuen MembershipEntry aktualisiert (der alte Eintrag wird vollständig durch den neuen Eintrag ersetzt).
  2. Das eTag für den aktualisierten MembershipEntry ist auch eTag mit dem neuen eindeutigen automatisch generierten eTag.
  3. TableVersion.Version in der Tabelle wird auf die neue TableVersion.Version aktualisiert.
  4. TableVersion etag in der Tabelle wird auf das neue eindeutige, automatisch generierte eTag aktualisiert. Alle diese Änderungen an der Tabelle, aktualisierung einer neuen Zeile und Aktualisieren der Tabellenversion und der zugehörigen etags, sollten atomar erfolgen oder atomar ohne Nebenwirkungen fehlschlagen. Der Vorgang sollte in jeder der folgenden Bedingungen fehlschlagen:
  5. Ein MembershipEntry für einen bestimmten Silo ist in der Tabelle nicht vorhanden.
  6. Ein MembershipEntry für ein bestimmtes Silo ist in der Tabelle vorhanden, aber sein etag in der Tabelle stimmt nicht mit dem bereitgestellten etag überein.
  7. Die Aktualisierung der TableVersion ist fehlgeschlagen, da das angegebene TableVersion-etag (wie durch die TableVersion.VersionEtag-Eigenschaft angegeben) nicht mit dem TableVersion-etag in der Tabelle übereinstimmte.
(Geerbt von IMembershipTable)

Erweiterungsmethoden

AsReference<TGrainInterface>(IAddressable)

Gibt einen typisierten Verweis auf das bereitgestellte Grain zurück.

BindGrainReference(IAddressable, IGrainFactory)

Bindet den Körnungsverweis an die bereitgestellte IGrainFactory.

Cast<TGrainInterface>(IAddressable)

Gibt einen typisierten Verweis auf das bereitgestellte Grain zurück.

GetGrainIdentity(IGrain)

Mitgliedschaftstabellenschnittstelle für die grainbasierte Implementierung.

GetPrimaryKey(IGrain)

Mitgliedschaftstabellenschnittstelle für die grainbasierte Implementierung.

GetPrimaryKey(IGrain, String)

Mitgliedschaftstabellenschnittstelle für die grainbasierte Implementierung.

GetPrimaryKey(IAddressable)

Gibt die Guid Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKey(IAddressable, String)

Gibt die Guid Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKeyLong(IGrain)

Mitgliedschaftstabellenschnittstelle für die grainbasierte Implementierung.

GetPrimaryKeyLong(IGrain, String)

Mitgliedschaftstabellenschnittstelle für die grainbasierte Implementierung.

GetPrimaryKeyLong(IAddressable)

Gibt die long Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKeyLong(IAddressable, String)

Gibt die long Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKeyString(IAddressable)

Gibt den string Primärschlüssel des Grains zurück.

IsPrimaryKeyBasedOnLong(IAddressable)

Gibt zurück, ob ein Teil des Primärschlüssels vom Typ longist.

Gilt für: