Skip to content

IMembershipTable

interface

Namespace: Orleans

Interface for Membership Table.
public interface IMembershipTable

Remarks

Providers can implement the cancellation-aware Async methods to cancel their underlying operations. The default implementations cancel the caller's wait while the tokenless operation completes, and observe any exception from that operation. Cancellation-aware RPC methods retain the existing operation aliases and serialized application arguments. Cancellation is propagated separately from those arguments.

Methods

  • CleanupDefunctSiloEntries(DateTimeOffset) Removes dead silo entries whose last known update precedes beforeDate.
  • CleanupDefunctSiloEntriesAsync(DateTimeOffset, CancellationToken) Removes dead silo entries whose last known update precedes beforeDate.
  • DeleteMembershipTableEntries(string) Deletes all table entries of the given clusterId
  • DeleteMembershipTableEntriesAsync(string, CancellationToken) Deletes all table entries of the given clusterId
  • InitializeMembershipTable(bool) Initializes the membership table, will be called before all other methods
  • InitializeMembershipTableAsync(bool, CancellationToken) Initializes the membership table, will be called before all other methods
  • InsertRow(MembershipEntry, TableVersion) Atomically tries to insert (add) a new MembershipEntry for one silo and also update the TableVersion. If operation succeeds, the following changes would be made to the table: 1) New MembershipEntry will be added to the table. 2) The newly added MembershipEntry will have a provider-defined row eTag. 3) TableVersion.Version in the table will be updated to the new TableVersion.Version. 4) TableVersion etag in the table will be updated to the new unique automatically generated eTag. All those changes to the table, insert of a new row and update of the table version and the associated etags, should happen atomically, or fail atomically with no side effects. The operation should fail in each of the following conditions: 1) A MembershipEntry for a given silo already exist in the table 2) Update of the TableVersion failed since the given TableVersion etag (as specified by the TableVersion.VersionEtag property) did not match the TableVersion etag in the table.
  • InsertRowAsync(MembershipEntry, TableVersion, CancellationToken) Atomically tries to insert (add) a new MembershipEntry for one silo and also update the TableVersion. If operation succeeds, the following changes would be made to the table: 1) New MembershipEntry will be added to the table. 2) The newly added MembershipEntry will have a provider-defined row eTag. 3) TableVersion.Version in the table will be updated to the new TableVersion.Version. 4) TableVersion etag in the table will be updated to the new unique automatically generated eTag. All those changes to the table, insert of a new row and update of the table version and the associated etags, should happen atomically, or fail atomically with no side effects. The operation should fail in each of the following conditions: 1) A MembershipEntry for a given silo already exist in the table 2) Update of the TableVersion failed since the given TableVersion etag (as specified by the TableVersion.VersionEtag property) did not match the TableVersion etag in the table.
  • ReadAll Atomically reads the full content of the Membership Table. The returned MembershipTableData includes all MembershipEntry entry for all silos in the table and the TableVersion for this table. The MembershipEntries and the TableVersion have to be read atomically.
  • ReadAllAsync(CancellationToken) Atomically reads the full content of the Membership Table. The returned MembershipTableData includes all MembershipEntry entry for all silos in the table and the TableVersion for this table. The MembershipEntries and the TableVersion have to be read atomically.
  • ReadRow(SiloAddress) Atomically reads the Membership Table information about a given silo. The returned MembershipTableData includes one MembershipEntry entry for a given silo and the TableVersion for this table. The MembershipEntry and the TableVersion have to be read atomically.
  • ReadRowAsync(SiloAddress, CancellationToken) Atomically reads the Membership Table information about a given silo. The returned MembershipTableData includes one MembershipEntry entry for a given silo and the TableVersion for this table. The MembershipEntry and the TableVersion have to be read atomically.
  • UpdateIAmAlive(MembershipEntry) Updates the IAmAliveTime column of the MembershipEntry for this silo.
  • UpdateIAmAliveAsync(MembershipEntry, CancellationToken) Updates the IAmAliveTime column of the MembershipEntry for this silo.
  • UpdateRow(MembershipEntry, string, TableVersion) Atomically tries to update the MembershipEntry for one silo and also update the TableVersion. If operation succeeds, the following changes would be made to the table: 1) The MembershipEntry for this silo will be updated using the supplied entry. 2) The row eTag for the updated MembershipEntry will reflect the provider's metadata or concurrency-token policy. 3) TableVersion.Version in the table will be updated to the new TableVersion.Version. 4) TableVersion etag in the table will be updated to the new unique automatically generated eTag. All those changes to the table, update of a new row and update of the table version and the associated etags, should happen atomically, or fail atomically with no side effects. The operation should fail in each of the following conditions: 1) A MembershipEntry for a given silo does not exist in the table 2) Update of the TableVersion failed since the given TableVersion etag (as specified by the TableVersion.VersionEtag property) did not match the TableVersion etag in the table. 3) The provider validates a separate canonical row concurrency token and the supplied etag does not match it.
  • UpdateRowAsync(MembershipEntry, string, TableVersion, CancellationToken) Atomically tries to update the MembershipEntry for one silo and also update the TableVersion. If operation succeeds, the following changes would be made to the table: 1) The MembershipEntry for this silo will be updated using the supplied entry. 2) The row eTag for the updated MembershipEntry will reflect the provider's metadata or concurrency-token policy. 3) TableVersion.Version in the table will be updated to the new TableVersion.Version. 4) TableVersion etag in the table will be updated to the new unique automatically generated eTag. All those changes to the table, update of a new row and update of the table version and the associated etags, should happen atomically, or fail atomically with no side effects. The operation should fail in each of the following conditions: 1) A MembershipEntry for a given silo does not exist in the table 2) Update of the TableVersion failed since the given TableVersion etag (as specified by the TableVersion.VersionEtag property) did not match the TableVersion etag in the table. 3) The provider validates a separate canonical row concurrency token and the supplied etag does not match it.