PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
순차적으로 읽고 쓴 기본을 기반으로 하는 로그 뷰 어댑터를 생성하기 위한 일반 템플릿입니다. 이를 사용하여 동일한 기본 패턴을 따르는 다양한 로그 일관성 공급자를 구성합니다(기본에서 최신 보기 읽기 및 쓰기, 쓰기 후 알림 보내기).
로그 자체는 일시적입니다. 즉, 실제로 스토리지에 저장되지 않습니다. 최신 보기와 일부 메타데이터(로그 위치 및 쓰기 플래그)만 기본에 저장됩니다. 이 어댑터에 대한 호출을 인터리브하는 것이 안전합니다(물론 조직 스케줄러만 사용).
서브클래스는 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>
- 구현
생성자
필드
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 |