次の方法で共有


ZooKeeperBasedMembershipTable.UpdateRow メソッド

定義

アトミックに、1 つのサイロの MembershipEntry を更新し、TableVersion も更新しようとします。 操作が成功すると、テーブルに次の変更が加えられます。

  1. このサイロの MembershipEntry は、新しい MembershipEntry に更新されます (古いエントリは、新しいエントリによって完全に構成されます)
  2. 更新された MembershipEntry の eTag も、新しい一意に自動生成された eTag を含む eTag になります。
  3. テーブル内の TableVersion.Version は、新しい TableVersion.Version に更新されます。
  4. テーブル内の TableVersion etag は、自動的に生成された新しい一意の eTag に更新されます。 テーブルに対するすべての変更、新しい行の更新、テーブル バージョンと関連する etag の更新は、アトミックに行われるか、副作用なしでアトミックに失敗する必要があります。 操作は、次の各条件で失敗する必要があります。
  5. 特定のサイロの MembershipEntry がテーブルに存在しない
  6. 特定のサイロの MembershipEntry がテーブルに存在しますが、テーブル内の etag が指定された etag と一致しません。
  7. TableVersion etag (TableVersion.VersionEtag プロパティで指定) がテーブル内の TableVersion etag と一致しないため、TableVersion の更新に失敗しました。
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

指定された MembershipEntry の etag。

tableVersion
TableVersion

このテーブルの新しい TableVersion とその etag。

戻り値

更新操作が成功した場合は True、それ以外の場合は false。

実装

適用対象