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


IMembershipTableGrain Интерфейс

Определение

Интерфейс таблицы членства для реализации на основе интервалов.

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

Atomically пытается вставить (добавить) новый Объект 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 для заданного хранилища и TableVersion для этой таблицы. MembershipEntry и TableVersion должны считываться атомарно.

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

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

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

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

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

Методы расширения

AsReference<TGrainInterface>(IAddressable)

Возвращает типизированные ссылки на предоставленную грань.

BindGrainReference(IAddressable, IGrainFactory)

Привязывает ссылку grain к предоставленному IGrainFactoryобъекту .

Cast<TGrainInterface>(IAddressable)

Возвращает типизированные ссылки на предоставленную грань.

GetGrainIdentity(IGrain)

Интерфейс таблицы членства для реализации на основе интервалов.

GetPrimaryKey(IGrain)

Интерфейс таблицы членства для реализации на основе интервалов.

GetPrimaryKey(IGrain, String)

Интерфейс таблицы членства для реализации на основе интервалов.

GetPrimaryKey(IAddressable)

Guid Возвращает представление первичного ключа grain.

GetPrimaryKey(IAddressable, String)

Guid Возвращает представление первичного ключа grain.

GetPrimaryKeyLong(IGrain)

Интерфейс таблицы членства для реализации на основе интервалов.

GetPrimaryKeyLong(IGrain, String)

Интерфейс таблицы членства для реализации на основе интервалов.

GetPrimaryKeyLong(IAddressable)

long Возвращает представление первичного ключа grain.

GetPrimaryKeyLong(IAddressable, String)

long Возвращает представление первичного ключа grain.

GetPrimaryKeyString(IAddressable)

Возвращает первичный string ключ элемента grain.

IsPrimaryKeyBasedOnLong(IAddressable)

Возвращает значение, указывающее, относится ли часть первичного ключа к типу long.

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