IMembershipTableGrain 接口

定义

基于 grain 的实现的成员资格表接口。

[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)

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

  1. 新的 MembershipEntry 将添加到表中。
  2. 新添加的 MembershipEntry 也将使用自动生成的新唯一 eTag 进行添加。
  3. 表中的 TableVersion.Version 将更新为新的 TableVersion.Version。
  4. 表中的 TableVersion etag 将更新为自动生成的新唯一 eTag。 对表的所有这些更改、插入新行以及更新表版本和关联的 etag,都应以原子方式发生,或者以原子方式失败,没有副作用。 在以下每种情况下,操作都应失败:
  5. 表中已存在给定 silo 的 MembershipEntry
  6. TableVersion 更新失败,因为 tableVersion.VersionEtag 属性指定的给定 TableVersion etag () 与表中的 TableVersion etag 不匹配。
(继承自 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 保留不变 (“脏 write”) 。 对于 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 更新失败,因为 tableVersion.VersionEtag 属性指定的给定 TableVersion etag () 与表中的 TableVersion etag 不匹配。
(继承自 IMembershipTable)

扩展方法

AsReference<TGrainInterface>(IAddressable)

返回对所提供的粒度的类型化引用。

BindGrainReference(IAddressable, IGrainFactory)

将 grain 引用绑定到提供的 IGrainFactory

Cast<TGrainInterface>(IAddressable)

返回对所提供的粒度的类型化引用。

GetGrainIdentity(IGrain)

基于 grain 的实现的成员资格表接口。

GetPrimaryKey(IGrain)

基于 grain 的实现的成员资格表接口。

GetPrimaryKey(IGrain, String)

基于 grain 的实现的成员资格表接口。

GetPrimaryKey(IAddressable)

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

GetPrimaryKey(IAddressable, String)

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

GetPrimaryKeyLong(IGrain)

基于 grain 的实现的成员资格表接口。

GetPrimaryKeyLong(IGrain, String)

基于 grain 的实现的成员资格表接口。

GetPrimaryKeyLong(IAddressable)

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

GetPrimaryKeyLong(IAddressable, String)

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

GetPrimaryKeyString(IAddressable)

返回 string grain 的主键。

IsPrimaryKeyBasedOnLong(IAddressable)

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

适用于