Поделиться через


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. Etag TableVersion в таблице будет обновлен до нового уникального автоматически созданного eTag. Все эти изменения в таблице, вставка новой строки и обновление версии таблицы и связанных тегов etag должны происходить атомарным образом или завершаться атомарным сбоем без побочных эффектов. Операция должна завершиться ошибкой при каждом из следующих условий:
  5. Объект MembershipEntry для данного хранилища уже существует в таблице.
  6. Обновление TableVersion завершилось сбоем, так как указанный etag TableVersion (как указано в свойстве TableVersion.VersionEtag) не соответствует etag TableVersion в таблице.
(Унаследовано от IMembershipTable)
ReadAll()

Атомарным образом считывает полное содержимое таблицы членства. Возвращаемый объект MembershipTableData включает все записи MembershipEntry для всех разрозненных объектов в таблице и TableVersion для этой таблицы. MembershipEntries и TableVersion должны считываться атомарно.

(Унаследовано от IMembershipTable)
ReadRow(SiloAddress)

Атомарным образом считывает сведения таблицы членства о заданном хранилище. Возвращаемый Объект MembershipTableData включает одну запись MembershipEntry для заданного объекта silo и TableVersion для этой таблицы. MembershipEntry и TableVersion должны считываться атомарно.

(Унаследовано от IMembershipTable)
UpdateIAmAlive(MembershipEntry)

Обновления часть (столбец) IAmAlive объекта MembershipEntry для этого силоса. Эта операция должна обновлять только столбец IAmAlive и не изменять другие столбцы. Эта операция является "грязной записью" или "обновлением на месте" и выполняется без проверки etag. Что касается обновления eTags: эта операция может автоматически обновить eTag, связанный с заданной строкой силоса, но это не обязательно. Он также может оставить etag не измененным ("грязная запись"). Что касается TableVersion: эта операция не должна изменять TableVersion таблицы. Он должен оставить его нетронутым. Не существует сценария, в котором эта операция могла бы завершиться сбоем из-за семантических причин таблицы. Он может завершиться сбоем только из-за проблем с сетью или недоступности таблицы.

(Унаследовано от IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

Атомарным образом пытается обновить MembershipEntry для одного хранилища, а также обновить TableVersion. Если операция завершится успешно, в таблицу будут внесены следующие изменения:

  1. Элемент MembershipEntry для этого silo будет обновлен до новой точки MembershipEntry (старая запись будет полностью заменена новой записью).
  2. ETag для обновленного MembershipEntry также будет eTag с новым уникальным автоматически созданным eTag.
  3. TableVersion.Version в таблице будет обновлен до новой версии TableVersion.Version.
  4. Etag TableVersion в таблице будет обновлен до нового уникального автоматически созданного eTag. Все эти изменения в таблице, обновление новой строки и обновление версии таблицы и связанных тегов etag должны происходить атомарным образом или завершаться атомарным сбоем без побочных эффектов. Операция должна завершиться ошибкой при каждом из следующих условий:
  5. Объект MembershipEntry для заданного хранилища не существует в таблице.
  6. Объект MembershipEntry для заданного объекта silo существует в таблице, но его etag в таблице не соответствует указанному etag.
  7. Обновление TableVersion завершилось сбоем, так как указанный etag TableVersion (как указано в свойстве TableVersion.VersionEtag) не соответствует 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.

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.

Применяется к