IRecordSequence インターフェイス

定義

レコード シーケンスのジェネリック インターフェイスを提供します。

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
派生
実装

注釈

IRecordSequence インターフェイスにより、レコード指向ストリームの抽象インターフェイスを使用できるようになります。 IRecordSequence インスタンスはログ レコードの読み書きにも使用できます。

IRecordSequence インターフェイスには、次の機能があります。

  • Append メソッドを使用してログ レコードを追加します。

  • ReadLogRecords メソッドを使用して、追加したレコードを読み取ります。

  • WriteRestartArea メソッドを使用して、特殊な再開レコードを書き込みます。

  • ReadRestartAreas メソッドを使用して、直前に書き込まれた再開レコードから再開レコードを読み取ります。

  • メソッドを使用して、レコードを永続ストアに Flush フラッシュします。

  • レコードを追加する領域を予約します。

  • ログのベースを進めることでログ領域を解放します。

  • TailPinned イベント通知を受信して、ログのベースを移動し、領域を解放します。

ログ レコードが IRecordSequence インスタンスに追加され、各ログ レコードに一意のシーケンス番号が付与されます。 シーケンス番号は、指定されたレコード シーケンス内で常に決まった値で増加します。 ログ レコードは不透明データで構成され、バイトの ArraySegments の IRecordSequence 内の IList インスタンスに指定されます。

IRecordSequence インターフェイスは、ログ境界に関する情報を表すいくつかの基本プロパティも公開します。

  • BaseSequenceNumber プロパティには、レコード シーケンス内の最初の有効なレコードのシーケンス番号が格納されています。

  • LastSequenceNumber プロパティには、最後に追加されたレコードのシーケンス番号を超えることが保証されたシーケンス番号が格納されています。

  • RestartSequenceNumber プロパティには、直前に書き込まれた再開領域のシーケンス番号が格納されています。

  • MaximumRecordLength プロパティには、このシーケンスに対して追加または読み取りが可能な最大レコード サイズが格納されています。

  • ReservedBytes プロパティには、このレコード シーケンス内で行われたすべての予約の合計サイズが格納されています。

  • RetryAppend プロパティが true に設定され、シーケンス内に領域がないために Append の処理が失敗したときは、レコード シーケンスが領域の解放を試みた後、追加操作を再試行します。

プロパティ

BaseSequenceNumber

派生クラスでオーバーライドされると、現在の IRecordSequence の最初の有効なレコードのシーケンス番号を取得します。

LastSequenceNumber

派生クラスでオーバーライドされると、追加された最後のレコードより大きいシーケンス番号を取得します。

MaximumRecordLength

派生クラスでオーバーライドされると、このシーケンスに対して追加または読み取りが可能な最大レコード サイズのバイト数を取得します。

ReservedBytes

派生クラスでオーバーライドされると、予約されている合計バイト数を取得します。

RestartSequenceNumber

派生クラスでオーバーライドされると、直前に書き込まれた再開領域のシーケンス番号を取得します。

RetryAppend

ログがいっぱいの場合に、追加を自動的に再試行するかどうかを示す値を取得または設定します。

メソッド

AdvanceBaseSequenceNumber(SequenceNumber)

ログの基本シーケンス番号を前方移動します。

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)

派生クラスでオーバーライドされると、IRecordSequence にログ レコードを書き込みます。

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

派生クラスでオーバーライドされると、以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)

派生クラスでオーバーライドされると、IRecordSequence にログ レコードを追加します。

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

派生クラスでオーバーライドされると、以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

派生クラスでオーバーライドされると、非同期の追加操作を開始します。

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の追加操作を開始します。

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の追加操作を開始します。

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の追加操作を開始します。

BeginFlush(SequenceNumber, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期のフラッシュ操作を開始します。

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

派生クラスでオーバーライドされると、非同期の予約および追加操作を開始します。

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

派生クラスでオーバーライドされると、非同期の予約および追加操作を開始します。

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。

CreateReservationCollection()

派生クラスでオーバーライドされると、新しい ReservationCollection を作成します。

Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

(継承元 IDisposable)
EndAppend(IAsyncResult)

派生クラスでオーバーライドされると、非同期の追加操作を終了します。

EndFlush(IAsyncResult)

派生クラスでオーバーライドされると、非同期のフラッシュ操作を終了します。

EndReserveAndAppend(IAsyncResult)

派生クラスでオーバーライドされると、非同期の予約および追加操作を終了します。

EndWriteRestartArea(IAsyncResult)

派生クラスでオーバーライドされると、非同期の再開領域の書き込み操作を終了します。

Flush()

派生クラスでオーバーライドされると、追加したすべてのレコードが書き込まれていることを確認します。

Flush(SequenceNumber)

派生クラスでオーバーライドされると、指定のシーケンス番号以下のシーケンス番号を持つすべての追加されたレコードが永続的に書き込まれたことを確認します。

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

派生クラスでオーバーライドされると、シーケンス内のレコードの列挙可能なコレクションを返します。

ReadRestartAreas()

派生クラスでオーバーライドされると、シーケンスの再開領域の列挙可能なコレクションを返します。

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。

WriteRestartArea(ArraySegment<Byte>)

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込みます。

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。

WriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection)

派生クラスでオーバーライドされると、予約を使用して IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。

WriteRestartArea(IList<ArraySegment<Byte>>)

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込みます。

WriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber)

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。

WriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection)

派生クラスでオーバーライドされると、予約を使用して IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。

イベント

TailPinned

レコード シーケンスで末尾を前方に移動する必要があると判断された場合に発生します。

適用対象