Partager via


IMembershipTableSystemTarget Interface

Définition

Interface de table d’appartenance pour l’implémentation basée sur la cible système.

[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
Attributs
Implémente

Méthodes

CleanupDefunctSiloEntries(DateTimeOffset)

Supprimer toutes les entrées de silo mortes antérieures à beforeDate

(Hérité de IMembershipTable)
DeleteMembershipTableEntries(String)

Supprime toutes les entrées de table du clusterId donné

(Hérité de IMembershipTable)
InitializeMembershipTable(Boolean)

Initialise la table d’appartenance, sera appelé avant toutes les autres méthodes

(Hérité de IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

Initialise la table d’appartenance, sera appelé avant toutes les autres méthodes

(Hérité de IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

Atomically essaie d’insérer (ajouter) un nouveau MembershipEntry pour un silo et de mettre à jour la TableVersion. Si l’opération réussit, les modifications suivantes sont apportées à la table :

  1. La nouvelle propriété MembershipEntry sera ajoutée à la table.
  2. Le nouvel élément MembershipEntry sera également ajouté avec le nouvel eTag unique généré automatiquement.
  3. TableVersion.Version dans la table sera mis à jour vers la nouvelle TableVersion.Version.
  4. L’etag TableVersion dans la table sera mis à jour vers le nouvel eTag unique généré automatiquement. Toutes ces modifications apportées à la table, l’insertion d’une nouvelle ligne et la mise à jour de la version de la table et des etags associés, doivent se produire de manière atomique ou échouer de manière atomique sans effets secondaires. L’opération doit échouer dans chacune des conditions suivantes :
  5. Un MembershipEntry pour un silo donné existe déjà dans la table
  6. La mise à jour de tableVersion a échoué, car l’etag TableVersion donné (comme spécifié par la propriété TableVersion.VersionEtag) ne correspondait pas à l’etag TableVersion dans la table.
(Hérité de IMembershipTable)
ReadAll()

Lit atomiquement le contenu complet de la table d’appartenance. L’élément MembershipTableData retourné inclut toutes les entrées MembershipEntry pour tous les silos de la table et la TableVersion pour cette table. Les éléments MembershipEntries et TableVersion doivent être lus de manière atomique.

(Hérité de IMembershipTable)
ReadRow(SiloAddress)

Lit atomiquement les informations de la table d’appartenance sur un silo donné. L’élément MembershipTableData retourné inclut une entrée MembershipEntry pour un silo donné et la TableVersion pour cette table. MembershipEntry et TableVersion doivent être lus de manière atomique.

(Hérité de IMembershipTable)
UpdateIAmAlive(MembershipEntry)

Mises à jour la partie IAmAlive (colonne) de l’élément MembershipEntry pour ce silo. Cette opération doit uniquement mettre à jour la colonne IAmAlive et ne pas modifier les autres colonnes. Cette opération est une « écriture incorrecte » ou une « mise à jour en place » et est effectuée sans validation etag. En ce qui concerne la mise à jour des eTags : cette opération peut mettre à jour automatiquement l’eTag associé à la ligne de silo donnée, mais elle n’est pas nécessaire. Il peut également laisser l’etag non modifié (« écriture sale »). En ce qui concerne TableVersion : cette opération ne doit pas modifier la TableVersion de la table. Il devrait le laisser intact. Il n’existe aucun scénario où cette opération pourrait échouer pour des raisons sémantiques de table. Il ne peut échouer qu’en raison de problèmes réseau ou d’indisponibilité de table.

(Hérité de IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

Atomically essaie de mettre à jour MembershipEntry pour un silo et de mettre également à jour TableVersion. Si l’opération réussit, les modifications suivantes sont apportées à la table :

  1. L’élément MembershipEntry de ce silo sera mis à jour vers la nouvelle MembershipEntry (l’ancienne entrée sera entièrement remplacée par la nouvelle entrée)
  2. L’eTag pour l’élément MembershipEntry mis à jour sera également eTag avec le nouvel eTag unique généré automatiquement.
  3. TableVersion.Version dans la table sera mis à jour vers la nouvelle TableVersion.Version.
  4. L’etag TableVersion dans la table sera mis à jour vers le nouvel eTag unique généré automatiquement. Toutes ces modifications apportées à la table, à savoir la mise à jour d’une nouvelle ligne et la mise à jour de la version de la table et des etags associés, doivent se produire de manière atomique ou échouer de manière atomique sans effets secondaires. L’opération doit échouer dans chacune des conditions suivantes :
  5. Un MembershipEntry pour un silo donné n’existe pas dans la table
  6. Un MembershipEntry pour un silo donné existe dans la table, mais son etag dans la table ne correspond pas à l’etag fourni.
  7. La mise à jour de tableVersion a échoué, car l’etag TableVersion donné (comme spécifié par la propriété TableVersion.VersionEtag) ne correspondait pas à l’etag TableVersion dans la table.
(Hérité de IMembershipTable)

Méthodes d’extension

AsReference(IAddressable, Type)

Retourne une référence typée au grain fourni.

AsReference<TGrainInterface>(IAddressable)

Retourne une référence typée au grain fourni.

BindGrainReference(IAddressable, IGrainFactory)

Lie la référence de grain au fourni IGrainFactory.

Cast(IAddressable, Type)

Retourne une référence typée au grain fourni.

Cast<TGrainInterface>(IAddressable)

Retourne une référence typée au grain fourni.

GetGrainId(IAddressable)

Retourne l’ID de grain correspondant au grain fourni.

GetPrimaryKey(IAddressable)

Retourne la Guid représentation d’une clé primaire de grain.

GetPrimaryKey(IAddressable, String)

Retourne la Guid représentation d’une clé primaire de grain.

GetPrimaryKeyLong(IAddressable)

Retourne la long représentation d’une clé primaire de grain.

GetPrimaryKeyLong(IAddressable, String)

Retourne la long représentation d’une clé primaire de grain.

GetPrimaryKeyString(IAddressable)

Retourne la string clé primaire du grain.

IsPrimaryKeyBasedOnLong(IAddressable)

Retourne si une partie de la clé primaire est de type long.

S’applique à