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 |
このグレイン インスタンスの現在のマルチクラスター構成。 |
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) |
バッチ処理のために、2 つの通知メッセージをマージします。 通知サブタイプを処理するには、 をオーバーライドします。 |
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() |
最新のプライマリ状態を読み取ります。 成功するまでブロック/再試行する必要があります。 例外をスローするのではなく、 に記録する必要があります LastPrimaryIssue |
RemoveStaleConditionalUpdates() |
更新を実行し、既に失敗したすべての条件付き更新プログラムを削除する |
RetrieveLogSegment(Int32, Int32) |
順次読み取りと書き込みのプライマリに基づくログ ビュー アダプターを構築するための一般的なテンプレート。 これを使用して、さまざまな異なるログ整合性プロバイダーを構築し、すべて同じ基本パターンに従います (読み取りと書き込みの最新のビューをプライマリに送信し、書き込み後に通知を送信します)。 ログ自体は一時的なものであることに注意してください。つまり、実際にはストレージに保存されません。最新のビューと一部のメタデータ (ログ位置、書き込みフラグ) のみがプライマリに格納されます。 このアダプターへの呼び出しはインターリーブしても安全です (もちろん、グレイン スケジューラのみを使用します)。 サブクラスは、ReadAsync と WriteAsync をオーバーライドして、プライマリから読み取り/書き込みを行います。 プライマリへの呼び出しはシリアル化されます。つまり、インターリーブすることはありません。 |
Submit(TLogEntry) |
グローバル ログに追加する 1 つのログ エントリを、現在の位置または後の任意の位置に送信します。 |
SubmitRange(IEnumerable<TLogEntry>) |
グローバル ログにアトミックに追加するログ エントリの範囲を、現在の位置または後の任意の位置に送信します。 |
Synchronize() |
最新のログ ビューを取得し、送信されたすべてのエントリを確認します。 以前に送信されたすべてのエントリがログの確認済みプレフィックスに表示されるまで待機し、確認されたプレフィックスの更新を強制します。 |
TryAppend(TLogEntry) |
ログの現在の位置に 1 つのログ エントリを追加してみてください。 |
TryAppendRange(IEnumerable<TLogEntry>) |
ログの現在位置にログ エントリの範囲をアトミックに追加してみてください。 |
WriteAsync() |
保留中のエントリをプライマリに適用します。 成功するまでブロック/再試行する必要があります。 例外をスローするのではなく、 に記録する必要があります LastPrimaryIssue |