다음을 통해 공유


PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> 클래스

정의

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.LogConsistency.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewRead<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.EventSourcing.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewRead<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
type PrimaryBasedLogViewAdaptor<'LogView, 'LogEntry, 'SubmissionEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null and 'SubmissionEntry :> SubmissionEntry<'LogEntry>)> = class
    interface ILogViewAdaptor<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
    interface ILogViewRead<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
    interface ILogViewUpdate<'LogEntry (requires 'LogEntry : null)>
    interface ILogConsistencyDiagnostics
Public MustInherit Class PrimaryBasedLogViewAdaptor(Of TLogView, TLogEntry, TSubmissionEntry)
Implements ILogViewAdaptor(Of TLogView, TLogEntry), ILogViewRead(Of TLogView, TLogEntry), ILogViewUpdate(Of TLogEntry)

형식 매개 변수

TLogView

로그의 사용자 정의 보기

TLogEntry

로그 항목의 형식입니다.

TSubmissionEntry

보류 중인 큐에 저장된 제출 항목의 유형

상속
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>
구현

생성자

PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices)

지정된 매개 변수에 대한 instance 생성합니다.

PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices)

지정된 매개 변수에 대한 instance 생성합니다.

필드

LastPrimaryIssue

주 복제본을 읽거나 업데이트하는 동안 발생한 마지막 문제를 저장합니다. 성공하면 null입니다.

stats

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

속성

Configuration

이 조직의 현재 다중 클러스터 구성은 instance.

ConfirmedVersion

로그의 확인된 접두사 길이

ConfirmedView

확인된 로그 보기(확인된 항목만 반영)

Host

이 어댑터를 사용하는 조직입니다.

Services

서로 다른 클러스터의 조직 인스턴스 간에 알림을 구현하는 데 필요한 런타임 서비스입니다.

SupportSubmissions

이 클러스터가 업데이트 제출을 지원하는지 여부

TentativeView

로그의 로컬 미정 보기(확인된 항목과 확인되지 않은 항목 모두 반영)

UnconfirmedSuffix

아직 확인된 접두사에 표시되지 않는 제출된 항목 목록입니다.

UnresolvedConnectionIssues

는 아직 복원되지 않은 모든 연결 상태 문제 목록을 반환합니다. 이러한 문제는 주 클러스터와 통신하는 동안 또는 다른 클러스터에 알리는 동안 관찰됩니다.

메서드

BroadcastNotification(INotificationMessage, String)

모든 원격 인스턴스에 알림 메시지 보내기

ConfirmSubmittedEntries()

제출된 모든 항목을 확인합니다.

이전에 제출된 모든 항목이 로그의 확인된 접두사에 나타날 때까지 기다립니다.

CopyTentativeState()

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

DisableStatsCollection()

통계 수집 사용 안 함

EnableStatsCollection()

메서드는 가상이므로 서브클래스는 자체 이벤트를 추가할 수 있습니다.

EnsureClusterJoinedAsync()

이 클러스터가 다중 클러스터에 조인될 때까지 차단합니다.

GetCaughtUpWithConfigurationAsync(DateTime)

이 클러스터가 타임스탬프만큼 새로운 구성을 받을 때까지 기다립니다.

GetConfirmedVersion()

캐시된 전역 상태의 버전을 읽습니다.

GetCurrentBatchOfUpdates()

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

GetNumberPendingUpdates()

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

GetStats()

상태 가져오기

InitializeConfirmedView(TLogView)

초기 값(빈 로그의 뷰)을 확인한 보기 설정

IsMyClusterJoined()

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

LastConfirmedView()

캐시된 전역 상태를 읽습니다.

MakeSubmissionEntry(TLogEntry)

제출된 로그 항목에 대한 제출 항목을 만듭니다. 이 클래스에 프로토콜 관련 정보를 추가할 수 있도록 형식 매개 변수를 사용합니다.

Merge(INotificationMessage, INotificationMessage)

일괄 처리를 위해 두 개의 알림 메시지를 병합합니다. 알림 하위 형식을 처리하도록 재정의합니다.

NotifyPromises(Int32, Boolean)

오류 알림 보내기

OnConfigurationChange(MultiClusterConfiguration)

다중 클러스터의 구성이 변경되면 호출됩니다.

OnMessageReceived(ILogConsistencyProtocolMessage)

프로토콜 메시지를 처리합니다.

OnMessageReceived(ILogConsistencyProtocolMessage)

프로토콜 메시지를 처리합니다.

OnMultiClusterConfigurationChange(MultiClusterConfiguration)

구성 변경이 있을 때 MultiClusterOracle에서 호출됩니다.

OnNotificationReceived(INotificationMessage)

알림 메시지를 처리합니다. 이를 재정의하여 알림 하위 형식을 처리합니다.

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

네트워크에서 호출

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

네트워크에서 호출

PostOnActivate()

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

PostOnDeactivate()

비활성화하는 동안 사용자 정의 바로 다음에 호출됩니다 OnDeactivateAsync().

PreOnActivate()

활성화하는 동안 사용자 정의 바로 앞에 호출됩니다 OnActivateAsync().

ProcessNotifications()

작업자 주기 동안 저장된 알림을 처리합니다. 알림 하위 형식을 처리하도록 재정의합니다.

ReadAsync()

최신 기본 상태를 읽습니다. 성공할 때까지 차단/다시 시도해야 합니다. 예외를 throw하지 말고 에 기록해야 합니다. LastPrimaryIssue

RemoveStaleConditionalUpdates()

업데이트를 살펴보고 이미 실패한 모든 조건부 업데이트를 제거합니다.

RetrieveLogSegment(Int32, Int32)

순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).

로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).

서브클래스는 ReadAsync 및 WriteAsync를 재정의하여 주 데이터베이스에서 읽기/쓰기를 합니다. 주 데이터베이스에 대한 호출은 직렬화됩니다. 즉, 인터리브하지 않습니다.

Submit(TLogEntry)

현재 또는 이후 위치에서 전역 로그에 추가할 단일 로그 항목을 제출합니다.

SubmitRange(IEnumerable<TLogEntry>)

현재 또는 이후 위치에서 전역 로그에 원자성으로 추가할 로그 항목의 범위를 제출합니다.

Synchronize()

최신 로그 보기를 가져오고 제출된 모든 항목을 확인합니다.

이전에 제출된 모든 항목이 로그의 확인된 접두사에 나타날 때까지 기다렸다가 확인된 접두사를 강제로 새로 고칩니다.

TryAppend(TLogEntry)

로그의 현재 위치에 단일 로그 항목을 추가해 봅니다.

TryAppendRange(IEnumerable<TLogEntry>)

로그의 현재 위치에 원자성으로 로그 항목의 범위를 추가해 보세요.

WriteAsync()

보류 중인 항목을 기본 항목에 적용합니다. 성공할 때까지 차단/다시 시도해야 합니다. 예외를 throw하지 말고 에 기록해야 합니다. LastPrimaryIssue

적용 대상