次の方法で共有


IMembershipTableGrain インターフェイス

定義

グレイン ベースの実装用のメンバーシップ テーブル インターフェイス。

[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
属性
実装

メソッド

CleanupDefunctSiloEntries(DateTimeOffset)

以前のすべての配信不能サイロ エントリを削除する beforeDate

(継承元 IMembershipTable)
DeleteMembershipTableEntries(String)

指定された clusterId のすべてのテーブル エントリを削除します

(継承元 IMembershipTable)
InitializeMembershipTable(Boolean)

メンバーシップ テーブルを初期化します。他のすべてのメソッドの前に呼び出されます

(継承元 IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

メンバーシップ テーブルを初期化します。他のすべてのメソッドの前に呼び出されます

(継承元 IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

アトミックに、1 つのサイロに対して新しい MembershipEntry を挿入 (追加) し、TableVersion も更新しようとします。 操作が成功すると、テーブルに次の変更が加えられます。

  1. 新しい MembershipEntry がテーブルに追加されます。
  2. 新しく追加された MembershipEntry も、自動的に生成された新しい一意の eTag と共に追加されます。
  3. テーブル内の TableVersion.Version は、新しい TableVersion.Version に更新されます。
  4. テーブル内の TableVersion etag は、自動的に生成された新しい一意の eTag に更新されます。 テーブルに対するすべての変更、新しい行の挿入、テーブル バージョンと関連する etag の更新は、アトミックに行われるか、副作用なしでアトミックに失敗する必要があります。 操作は、次の各条件で失敗する必要があります。
  5. 特定のサイロの MembershipEntry がテーブルに既に存在する
  6. TableVersion etag (TableVersion.VersionEtag プロパティで指定) がテーブル内の TableVersion etag と一致しないため、TableVersion の更新に失敗しました。
(継承元 IMembershipTable)
ReadAll()

メンバーシップ テーブルの完全なコンテンツをアトミックに読み取ります。 返された MembershipTableData には、テーブル内のすべてのサイロのすべての MembershipEntry エントリと、このテーブルの TableVersion が含まれます。 MembershipEntries と TableVersion はアトミックに読み取る必要があります。

(継承元 IMembershipTable)
ReadRow(SiloAddress)

特定のサイロに関するメンバーシップ テーブル情報をアトミックに読み取ります。 返された MembershipTableData には、特定のサイロに対して 1 つの MembershipEntry エントリと、このテーブルの TableVersion が含まれます。 MembershipEntry と TableVersion はアトミックに読み取る必要があります。

(継承元 IMembershipTable)
UpdateIAmAlive(MembershipEntry)

このサイロの MembershipEntry の IAmAlive パーツ (列) を更新します。 この操作では、IAmAlive 列のみが更新され、他の列は変更されません。 この操作は "ダーティ書き込み" または "インプレース更新" であり、etag 検証なしで実行されます。 eTag の更新に関して: この操作では、特定のサイロ行に関連付けられている eTag が自動的に更新される可能性がありますが、更新する必要はありません。 また、etag を変更しないようにすることもできます ("ダーティ書き込み")。 TableVersion に関しては、この操作でテーブルの TableVersion を変更しないでください。 それは手つかずのままにする必要があります。 テーブルの意味上の理由により、この操作が失敗する可能性があるシナリオはありません。 ネットワークの問題またはテーブルが利用できないためにのみ失敗する可能性があります。

(継承元 IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

アトミックに、1 つのサイロの MembershipEntry を更新し、TableVersion も更新しようとします。 操作が成功すると、テーブルに次の変更が加えられます。

  1. このサイロの MembershipEntry は、新しい MembershipEntry に更新されます (古いエントリは新しいエントリによって完全に置き換えられます)
  2. 更新された MembershipEntry の eTag も、新しい一意に自動生成された eTag を含む eTag になります。
  3. テーブル内の TableVersion.Version は、新しい TableVersion.Version に更新されます。
  4. テーブル内の TableVersion etag は、自動的に生成された新しい一意の eTag に更新されます。 テーブルに対するすべての変更、新しい行の更新、テーブル バージョンと関連する etag の更新は、アトミックに行われるか、副作用なしでアトミックに失敗する必要があります。 操作は、次の各条件で失敗する必要があります。
  5. 特定のサイロの MembershipEntry がテーブルに存在しない
  6. 特定のサイロの MembershipEntry がテーブルに存在しますが、テーブル内の etag が指定された etag と一致しません。
  7. TableVersion etag (TableVersion.VersionEtag プロパティで指定) がテーブル内の TableVersion etag と一致しないため、TableVersion の更新に失敗しました。
(継承元 IMembershipTable)

拡張メソッド

AsReference<TGrainInterface>(IAddressable)

指定されたグレインへの型指定された参照を返します。

BindGrainReference(IAddressable, IGrainFactory)

グレイン参照を指定された IGrainFactoryにバインドします。

Cast<TGrainInterface>(IAddressable)

指定されたグレインへの型指定された参照を返します。

GetGrainIdentity(IGrain)

グレイン ベースの実装用のメンバーシップ テーブル インターフェイス。

GetPrimaryKey(IGrain, String)

グレイン ベースの実装用のメンバーシップ テーブル インターフェイス。

GetPrimaryKey(IGrain)

グレイン ベースの実装用のメンバーシップ テーブル インターフェイス。

GetPrimaryKey(IAddressable, String)

Guidグレイン主キーの表現を返します。

GetPrimaryKey(IAddressable)

Guidグレイン主キーの表現を返します。

GetPrimaryKeyLong(IGrain, String)

グレイン ベースの実装用のメンバーシップ テーブル インターフェイス。

GetPrimaryKeyLong(IGrain)

グレイン ベースの実装用のメンバーシップ テーブル インターフェイス。

GetPrimaryKeyLong(IAddressable, String)

longグレイン主キーの表現を返します。

GetPrimaryKeyLong(IAddressable)

longグレイン主キーの表現を返します。

GetPrimaryKeyString(IAddressable)

グレインの string 主キーを返します。

IsPrimaryKeyBasedOnLong(IAddressable)

主キーの一部が 型であるかどうかを返します long

適用対象