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)

以原子方式尝试插入 (添加) 一个 silo 的新 MembershipEntry,并更新 TableVersion。 如果操作成功,将对表进行以下更改:

  1. 新的 MembershipEntry 将添加到表中。
  2. 还将添加新添加的 MembershipEntry 以及自动生成的新唯一 eTag。
  3. 表中的 TableVersion.Version 将更新为新的 TableVersion.Version。
  4. 表中的 TableVersion etag 将更新为自动生成的新唯一 eTag。 对表的所有这些更改、插入新行以及更新表版本和关联的 etag 都应以原子方式发生,或者以原子方式失败,且无副作用。 在以下每种情况下,操作应失败:
  5. 表中已存在给定 silo 的 MembershipEntry
  6. 由于 TableVersion.VersionEtag 属性) 指定的给定 TableVersion etag (与表中的 TableVersion etag 不匹配,因此对 TableVersion 的更新失败。
(继承自 IMembershipTable)
ReadAll()

以原子方式读取成员资格表的完整内容。 返回的 MembershipTableData 包括表中所有 silo 的所有 MembershipEntry 条目和此表的 TableVersion。 MembershipEntries 和 TableVersion 必须以原子方式读取。

(继承自 IMembershipTable)
ReadRow(SiloAddress)

以原子方式读取有关给定 silo 的成员资格表信息。 返回的 MembershipTableData 包括给定 silo 的一个 MembershipEntry 条目和此表的 TableVersion。 MembershipEntry 和 TableVersion 必须以原子方式读取。

(继承自 IMembershipTable)
UpdateIAmAlive(MembershipEntry)

汇报 IAmAlive 部分 (此 silo 的 MembershipEntry 列) 。 此操作应仅更新 IAmAlive 列,而不应更改其他列。 此操作是“脏写入”或“就地更新”,无需 etag 验证即可执行。 关于 eTag 更新:此操作可能会自动更新与给定 silo 行关联的 eTag,但不必这样做。 它还会使 etag 不会更改 (“脏写入”) 。 关于 TableVersion:此操作不应更改表的 TableVersion。 它应该保持不变。 不存在此操作可能因表语义原因而失败的情况。 它只能由于网络问题或表不可用而失败。

(继承自 IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

以原子方式尝试更新一个 silo 的 MembershipEntry,并更新 TableVersion。 如果操作成功,将对表进行以下更改:

  1. 此 silo 的 MembershipEntry 将更新为新的 MembershipEntry (旧条目将完全替换为新条目)
  2. 更新的 MembershipEntry 的 eTag 也将是具有新唯一自动生成的 eTag 的 eTag。
  3. 表中的 TableVersion.Version 将更新为新的 TableVersion.Version。
  4. 表中的 TableVersion etag 将更新为自动生成的新唯一 eTag。 对表的所有这些更改、新行的更新以及表版本和关联的 etag 的更新都应以原子方式发生,或者以原子方式失败,不会造成任何副作用。 在以下每种情况下,操作应失败:
  5. 表中不存在给定 silo 的 MembershipEntry
  6. 表中存在给定 silo 的 MembershipEntry,但其在表中的 etag 与提供的 etag 不匹配。
  7. 由于 TableVersion.VersionEtag 属性) 指定的给定 TableVersion etag (与表中的 TableVersion etag 不匹配,因此对 TableVersion 的更新失败。
(继承自 IMembershipTable)

扩展方法

AsReference(IAddressable, Type)

返回对提供的 grain 的类型化引用。

AsReference<TGrainInterface>(IAddressable)

返回对提供的 grain 的类型化引用。

BindGrainReference(IAddressable, IGrainFactory)

将 grain 引用绑定到提供的 IGrainFactory

Cast(IAddressable, Type)

返回对提供的 grain 的类型化引用。

Cast<TGrainInterface>(IAddressable)

返回对提供的 grain 的类型化引用。

GetGrainId(IAddressable)

返回与提供的 grain 对应的 grain ID。

GetPrimaryKey(IAddressable)

返回 Guid grain 主键的表示形式。

GetPrimaryKey(IAddressable, String)

返回 Guid grain 主键的表示形式。

GetPrimaryKeyLong(IAddressable)

返回 long grain 主键的表示形式。

GetPrimaryKeyLong(IAddressable, String)

返回 long grain 主键的表示形式。

GetPrimaryKeyString(IAddressable)

返回 string grain 的主键。

IsPrimaryKeyBasedOnLong(IAddressable)

返回主键的一部分是否为 类型 long

适用于