다음을 통해 공유


IMembershipTable 인터페이스

정의

멤버 자격 테이블에 대한 인터페이스입니다.

public interface IMembershipTable
type IMembershipTable = interface
Public Interface IMembershipTable
파생

메서드

CleanupDefunctSiloEntries(DateTimeOffset)

보다 오래된 모든 데드 사일로 항목을 삭제합니다. beforeDate

DeleteMembershipTableEntries(String)

지정된 clusterId의 모든 테이블 항목을 삭제합니다.

InitializeMembershipTable(Boolean)

멤버 자격 테이블을 초기화합니다. 다른 모든 메서드 앞에 호출됩니다.

InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

멤버 자격 테이블을 초기화합니다. 다른 모든 메서드 앞에 호출됩니다.

InsertRow(MembershipEntry, TableVersion)

원자적으로 하나의 사일로에 대해 새 MembershipEntry를 삽입(추가)하고 TableVersion도 업데이트하려고 합니다. 작업이 성공하면 테이블에 다음과 같은 변경 내용이 적용됩니다.

  1. 새 MembershipEntry가 테이블에 추가됩니다.
  2. 새로 추가된 MembershipEntry는 자동으로 생성된 새 고유 eTag와 함께 추가됩니다.
  3. 테이블의 TableVersion.Version은 새 TableVersion.Version으로 업데이트됩니다.
  4. 테이블의 TableVersion etag는 자동으로 생성된 새 고유 eTag로 업데이트됩니다. 테이블에 대한 모든 변경 내용, 새 행 삽입 및 테이블 버전 및 연결된 etag 업데이트는 원자성으로 발생하거나 부작용 없이 원자성으로 실패해야 합니다. 작업은 다음 각 조건에서 실패해야 합니다.
  5. 지정된 사일로에 대한 MembershipEntry가 테이블에 이미 있습니다.
  6. TableVersion.VersionEtag 속성에 지정된 지정된 TableVersion etag가 테이블의 TableVersion etag와 일치하지 않아 TableVersion을 업데이트하지 못했습니다.
ReadAll()

멤버 자격 테이블의 전체 콘텐츠를 원자성으로 읽습니다. 반환된 MembershipTableData에는 테이블의 모든 사일로에 대한 모든 MembershipEntry 항목과 이 테이블의 TableVersion이 포함됩니다. MembershipEntries 및 TableVersion은 원자성으로 읽어야 합니다.

ReadRow(SiloAddress)

지정된 사일로에 대한 멤버 자격 테이블 정보를 원자성으로 읽습니다. 반환된 MembershipTableData에는 지정된 사일로에 대한 MembershipEntry 항목 하나와 이 테이블에 대한 TableVersion이 포함됩니다. MembershipEntry 및 TableVersion은 원자성으로 읽어야 합니다.

UpdateIAmAlive(MembershipEntry)

이 사일로에 대한 MembershipEntry의 IAmAlive 부분(열)을 업데이트. 이 작업은 IAmAlive 열만 업데이트하고 다른 열은 변경하지 않아야 합니다. 이 작업은 "더티 쓰기" 또는 "현재 위치 업데이트"이며 etag 유효성 검사 없이 수행됩니다. eTags 업데이트와 관련하여: 이 작업은 지정된 사일로 행과 연결된 eTag를 자동으로 업데이트할 수 있지만 그렇게 할 필요는 없습니다. etag가 변경되지 않도록 할 수도 있습니다("더티 쓰기"). TableVersion과 관련하여 이 작업은 테이블의 TableVersion을 변경하지 않아야 합니다. 그것은 그대로 두어야합니다. 테이블 의미상 이유로 인해 이 작업이 실패할 수 있는 시나리오는 없습니다. 네트워크 문제 또는 테이블 사용 불가로 인해 실패할 수 있습니다.

UpdateRow(MembershipEntry, String, TableVersion)

원자적으로 하나의 사일로에 대한 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.VersionEtag 속성에 지정된 지정된 TableVersion etag가 테이블의 TableVersion etag와 일치하지 않아 TableVersion을 업데이트하지 못했습니다.

적용 대상