次の方法で共有


IMembershipTable インターフェイス

定義

メンバーシップ テーブルのインターフェイス。

public interface IMembershipTable
type IMembershipTable = interface
Public Interface IMembershipTable
派生

メソッド

CleanupDefunctSiloEntries(DateTimeOffset)

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

DeleteMembershipTableEntries(String)

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

InitializeMembershipTable(Boolean)

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

InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

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

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 の更新に失敗しました。
ReadAll()

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

ReadRow(SiloAddress)

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

UpdateIAmAlive(MembershipEntry)

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

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 の更新に失敗しました。

適用対象