共用方式為


IMembershipTableSystemTarget 介面

定義

系統目標型實作的成員資格資料表介面。

[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
屬性
實作

方法

CleanupDefunctSiloEntries(DateTimeOffset)

刪除早于的所有無效定址接收器專案 beforeDate

(繼承來源 IMembershipTable)
DeleteMembershipTableEntries(String)

刪除指定 clusterId 的所有資料表專案

(繼承來源 IMembershipTable)
InitializeMembershipTable(Boolean)

初始化成員資格資料表,將會在所有其他方法之前呼叫

(繼承來源 IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

初始化成員資格資料表,將會在所有其他方法之前呼叫

(繼承來源 IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

不可部分完成地嘗試插入 (新增) 一個定址接收器的新 MembershipEntry,也會更新 TableVersion。 如果作業成功,則會對資料表進行下列變更:

  1. 新的 MembershipEntry 將會新增至資料表。
  2. 新新增的 MembershipEntry 也會隨著新的唯一自動產生的 eTag 一起新增。
  3. 資料表中的 TableVersion.Version 將會更新為新的 TableVersion.Version。
  4. 資料表中的 TableVersion etag 將會更新為新的唯一自動產生的 eTag。 資料表的所有變更、插入新的資料列,以及資料表版本和相關 Etag 的更新、應該以不可部分完成的方式發生,或以不可部分完成的方式失敗,而沒有任何副作用。 作業應該會在下列每一個狀況中失敗:
  5. 指定定址接收器的 MembershipEntry 已存在於資料表中
  6. TableVersion 的更新失敗,因為 TableVersion.VersionEtag 屬性所指定的指定 TableVersion etag () 不符合資料表中的 TableVersion etag。
(繼承來源 IMembershipTable)
ReadAll()

以不可部分完成的方式讀取成員資格資料表的完整內容。 傳回的 MembershipTableData 包含資料表中所有定址接收器的所有 MembershipEntry 專案,以及此資料表的 TableVersion。 MembershipEntries 和 TableVersion 必須以不可部分完成的方式讀取。

(繼承來源 IMembershipTable)
ReadRow(SiloAddress)

以不可部分完成的方式讀取指定定址接收器的成員資格資料表資訊。 傳回的 MembershipTableData 包含指定定址接收器的一個 MembershipEntry 專案,以及此資料表的 TableVersion。 MembershipEntry 和 TableVersion 必須以不可部分完成的方式讀取。

(繼承來源 IMembershipTable)
UpdateIAmAlive(MembershipEntry)

更新這個定址接收器之 MembershipEntry 的 IAmAlive 部分 (資料行) 。 這項作業應該只會更新 IAmAlive 資料行,而不會變更其他資料行。 這項作業是「已變更的寫入」或「就地更新」,且執行時不會進行 etag 驗證。 關於 eTags 更新:這項作業可能會自動更新與指定定址接收器資料列相關聯的 eTag,但不需要。 它也可以讓 etag 不會變更, (「中途寫入」) 。 關於 TableVersion:此作業不應該變更資料表的 TableVersion。 它應該維持不變。 沒有任何案例會因為資料表語意原因而失敗。 它只能因為網路問題或資料表無法使用而失敗。

(繼承來源 IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

不可部分完成地嘗試更新一個定址接收器的 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 的更新失敗,因為 TableVersion.VersionEtag 屬性所指定的指定 TableVersion etag () 不符合資料表中的 TableVersion etag。
(繼承來源 IMembershipTable)

擴充方法

AsReference(IAddressable, Type)

傳回所提供之粒紋的具型別參考。

AsReference<TGrainInterface>(IAddressable)

傳回所提供之粒紋的具型別參考。

BindGrainReference(IAddressable, IGrainFactory)

將粒紋參考系結至提供的 IGrainFactory

Cast(IAddressable, Type)

傳回所提供之粒紋的具型別參考。

Cast<TGrainInterface>(IAddressable)

傳回所提供之粒紋的具型別參考。

GetGrainId(IAddressable)

傳回對應至所提供粒紋的粒紋識別碼。

GetPrimaryKey(IAddressable)

Guid 回粒紋主鍵的表示。

GetPrimaryKey(IAddressable, String)

Guid 回粒紋主鍵的表示。

GetPrimaryKeyLong(IAddressable)

long 回粒紋主鍵的表示。

GetPrimaryKeyLong(IAddressable, String)

long 回粒紋主鍵的表示。

GetPrimaryKeyString(IAddressable)

string 回粒紋的主鍵。

IsPrimaryKeyBasedOnLong(IAddressable)

傳回主鍵的一部分是否為 類型 long

適用於