Freigeben über


IMembershipTableSystemTarget Schnittstelle

Definition

Mitgliedschaftstabellenschnittstelle für die systemzielbasierte Implementierung.

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

Methoden

CleanupDefunctSiloEntries(DateTimeOffset)

Löschen aller toten Siloeinträge, die älter als 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)

Atomically 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. New MembershipEntry wird der Tabelle hinzugefügt.
  2. Der 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, das Einfügen einer neuen Zeile und das 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. Das Update von 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 atomar die Informationen zur Mitgliedschaftstabelle zu einem bestimmten Silo. 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)

Aktualisierungen den IAmAlive-Teil (Spalte) der MembershipEntry für dieses Silo. Dieser Vorgang sollte nur die IAmAlive-Spalte aktualisieren und keine anderen Spalten ändern. Dieser Vorgang ist ein "dirty write" oder "in place 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 ("Dirty Write"). In Bezug auf TableVersion: Dieser Vorgang sollte die TableVersion der Tabelle nicht ändern. Es sollte es 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)

Atomically versucht, den MembershipEntry für ein Silo zu aktualisieren 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, das Aktualisieren einer neuen Zeile und das 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 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. Das Update von 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(IAddressable, Type)

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

AsReference<TGrainInterface>(IAddressable)

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

BindGrainReference(IAddressable, IGrainFactory)

Bindet den Kornverweis an den angegebenen IGrainFactory.

Cast(IAddressable, Type)

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

Cast<TGrainInterface>(IAddressable)

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

GetGrainId(IAddressable)

Gibt die Korn-ID zurück, die dem angegebenen Grain entspricht.

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