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


ZooKeeperBasedMembershipTable.UpdateRow Метод

Определение

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

  1. MembershipEntry для этого silo будет обновлен до нового MembershipEntry (старая запись будет полностью заменена новой записью).
  2. ETag для обновленного MembershipEntry также будет eTag с новым уникальным автоматически созданным eTag.
  3. TableVersion.Version в таблице будет обновлена до новой версии TableVersion.Version.
  4. Тег etag TableVersion в таблице будет обновлен до нового уникального автоматически созданного eTag. Все эти изменения в таблице, обновление новой строки и обновление версии таблицы и связанных etags должны происходить атомарным образом или завершаться атомарным сбоем без побочных эффектов. Операция должна завершиться ошибкой в каждом из следующих условий:
  5. MembershipEntry для заданного сило не существует в таблице
  6. MembershipEntry для заданного силона существует в таблице, но его etag в таблице не соответствует предоставленному etag.
  7. Обновление объекта TableVersion завершилось сбоем, так как заданный etag TableVersion (как указано в свойстве TableVersion.VersionEtag) не совпадал с тегом TableVersion etag в таблице.
public System.Threading.Tasks.Task<bool> UpdateRow (Orleans.MembershipEntry entry, string etag, Orleans.TableVersion tableVersion);
abstract member UpdateRow : Orleans.MembershipEntry * string * Orleans.TableVersion -> System.Threading.Tasks.Task<bool>
override this.UpdateRow : Orleans.MembershipEntry * string * Orleans.TableVersion -> System.Threading.Tasks.Task<bool>
Public Function UpdateRow (entry As MembershipEntry, etag As String, tableVersion As TableVersion) As Task(Of Boolean)

Параметры

entry
MembershipEntry

MembershipEntry для обновления.

etag
String

Etag для заданного MembershipEntry.

tableVersion
TableVersion

Новая таблица TableVersion, а также ее тег etag.

Возвращаемое значение

Значение true, если операция обновления прошла успешно и в противном случае — значение false.

Реализации

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