IRecordSequence IRecordSequence IRecordSequence IRecordSequence Interface

定義

レコード シーケンスのジェネリック インターフェイスを提供します。Provides a generic interface to a sequence of records.

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

注釈

IRecordSequence インターフェイスにより、レコード指向ストリームの抽象インターフェイスを使用できるようになります。The IRecordSequence interface provides an abstract interface to a record-oriented stream. IRecordSequence インスタンスはログ レコードの読み書きにも使用できます。A IRecordSequence instance can be used to read and write log records.

IRecordSequence インターフェイスには、次の機能があります。The IRecordSequence interface provides the following capabilities,

  • Append メソッドを使用してログ レコードを追加します。Append log records using the Append methods.

  • ReadLogRecords メソッドを使用して、追加したレコードを読み取ります。Read the appended records using the ReadLogRecords method.

  • WriteRestartArea メソッドを使用して、特殊な再開レコードを書き込みます。Write a special restart record using the WriteRestartArea method.

  • ReadRestartAreas メソッドを使用して、直前に書き込まれた再開レコードから再開レコードを読み取ります。Read restart records from the most recently written restart record using the ReadRestartAreas method.

  • Flush メソッドを使用して、レコードを永続ストアにフラッシュします。Flush the records to durable store using the Flush method.

  • レコードを追加する領域を予約します。Reserve space for appending records.

  • ログのベースを進めることでログ領域を解放します。Free log space by advancing the base of the log.

  • TailPinned イベント通知を受信して、ログのベースを移動し、領域を解放します。Receive TailPinned event notifications to move the base of the log to free space.

ログ レコードが IRecordSequence インスタンスに追加され、各ログ レコードに一意のシーケンス番号が付与されます。Log records are appended to a IRecordSequence instance, and each log record is given a unique sequence number. シーケンス番号は、指定されたレコード シーケンス内で常に決まった値で増加します。Sequence numbers are strictly monotonically increasing within a given record sequence. ログ レコードは不透明データで構成され、バイトの ArraySegments の IRecordSequence 内の IList インスタンスに指定されます。A log record consists of opaque data, supplied to the IRecordSequence instance in an IList of ArraySegments of bytes.

IRecordSequence インターフェイスは、ログ境界に関する情報を表すいくつかの基本プロパティも公開します。The IRecordSequence interface also exposes a few basic properties which provides information about log boundaries.

  • BaseSequenceNumber プロパティには、レコード シーケンス内の最初の有効なレコードのシーケンス番号が格納されています。The BaseSequenceNumber property contains the sequence number of the first valid record in the record sequence.

  • LastSequenceNumber プロパティには、最後に追加されたレコードのシーケンス番号を超えることが保証されたシーケンス番号が格納されています。The LastSequenceNumber property contains a sequence number that is guaranteed to be larger than the sequence number of the last appended record.

  • RestartSequenceNumber プロパティには、直前に書き込まれた再開領域のシーケンス番号が格納されています。The RestartSequenceNumber property contains the sequence number of the last written restart area.

  • MaximumRecordLength プロパティには、このシーケンスに対して追加または読み取りが可能な最大レコード サイズが格納されています。The MaximumRecordLength property contains the size of the largest record that can be appended to, or read from the sequence.

  • ReservedBytes プロパティには、このレコード シーケンス内で行われたすべての予約の合計サイズが格納されています。The ReservedBytes property contains the total size of all reservations made in this record sequence.

  • RetryAppend プロパティが true に設定され、シーケンス内に領域がないために Append の処理が失敗したときは、レコード シーケンスが領域の解放を試みた後、追加操作を再試行します。If the RetryAppend property is set to true, and an Append operation fails because there is no space in the sequence, the record sequence will attempt to free space, and retry the Append operation.

プロパティ

BaseSequenceNumber BaseSequenceNumber BaseSequenceNumber BaseSequenceNumber

派生クラスでオーバーライドされると、現在の IRecordSequence の最初の有効なレコードのシーケンス番号を取得します。When overridden in a derived class, gets the sequence number of the first valid record in the current IRecordSequence.

LastSequenceNumber LastSequenceNumber LastSequenceNumber LastSequenceNumber

派生クラスでオーバーライドされると、追加された最後のレコードより大きいシーケンス番号を取得します。When overridden in a derived class, gets the sequence number which is greater than the last record appended.

MaximumRecordLength MaximumRecordLength MaximumRecordLength MaximumRecordLength

派生クラスでオーバーライドされると、このシーケンスに対して追加または読み取りが可能な最大レコード サイズのバイト数を取得します。When overridden in a derived class, gets the size of the largest record that can be appended to or read from this sequence, in bytes.

ReservedBytes ReservedBytes ReservedBytes ReservedBytes

派生クラスでオーバーライドされると、予約されている合計バイト数を取得します。When overridden in a derived class, gets the total number of bytes that have been reserved.

RestartSequenceNumber RestartSequenceNumber RestartSequenceNumber RestartSequenceNumber

派生クラスでオーバーライドされると、直前に書き込まれた再開領域のシーケンス番号を取得します。When overridden in a derived class, gets the sequence number of the most recently written restart area.

RetryAppend RetryAppend RetryAppend RetryAppend

ログがいっぱいの場合に、追加を自動的に再試行するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether appends are automatically retried if the log is full.

メソッド

AdvanceBaseSequenceNumber(SequenceNumber) AdvanceBaseSequenceNumber(SequenceNumber) AdvanceBaseSequenceNumber(SequenceNumber) AdvanceBaseSequenceNumber(SequenceNumber)

ログの基本シーケンス番号を前方移動します。Moves the base sequence number of the log forward.

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

派生クラスでオーバーライドされると、IRecordSequence にログ レコードを書き込みます。When overridden in a derived class, writes a log record to the IRecordSequence.

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

派生クラスでオーバーライドされると、以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。When overridden in a derived class, appends a log record to the IRecordSequence, using space previously reserved in the sequence.

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

派生クラスでオーバーライドされると、IRecordSequence にログ レコードを追加します。When overridden in a derived class, appends a log record to the IRecordSequence.

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

派生クラスでオーバーライドされると、以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。When overridden in a derived class, appends a log record to the IRecordSequence, using space previously reserved in the sequence.

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

派生クラスでオーバーライドされると、非同期の追加操作を開始します。When overridden in a derived class, begins an asynchronous append operation.

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

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の追加操作を開始します。When overridden in a derived class, begins an asynchronous append operation using space previously reserved in the sequence.

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

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の追加操作を開始します。When overridden in a derived class, begins an asynchronous append operation, using space previously reserved in the sequence.

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

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の追加操作を開始します。When overridden in a derived class, begins an asynchronous append operation, using space previously reserved in the sequence.

BeginFlush(SequenceNumber, AsyncCallback, Object) BeginFlush(SequenceNumber, AsyncCallback, Object) BeginFlush(SequenceNumber, AsyncCallback, Object) BeginFlush(SequenceNumber, AsyncCallback, Object)

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期のフラッシュ操作を開始します。When overridden in a derived class, begins an asynchronous flush operation, using space previously reserved in the sequence.

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

派生クラスでオーバーライドされると、非同期の予約および追加操作を開始します。When overridden in a derived class, begins an asynchronous reserve and append operation.

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

派生クラスでオーバーライドされると、非同期の予約および追加操作を開始します。When overridden in a derived class, begins an asynchronous reserve and append operation.

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

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。When overridden in a derived class, begins an asynchronous restart area write operation, using space previously reserved in the sequence.

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

派生クラスでオーバーライドされると、以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。When overridden in a derived class, begins an asynchronous restart area write operation, using space previously reserved in the sequence.

CreateReservationCollection() CreateReservationCollection() CreateReservationCollection() CreateReservationCollection()

派生クラスでオーバーライドされると、新しい ReservationCollection を作成します。When overridden in a derived class, creates a new ReservationCollection.

Dispose() Dispose() Dispose() Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Inherited from IDisposable)
EndAppend(IAsyncResult) EndAppend(IAsyncResult) EndAppend(IAsyncResult) EndAppend(IAsyncResult)

派生クラスでオーバーライドされると、非同期の追加操作を終了します。When overridden in a derived class, ends an asynchronous append operation.

EndFlush(IAsyncResult) EndFlush(IAsyncResult) EndFlush(IAsyncResult) EndFlush(IAsyncResult)

派生クラスでオーバーライドされると、非同期のフラッシュ操作を終了します。When overridden in a derived class, ends an asynchronous flush operation.

EndReserveAndAppend(IAsyncResult) EndReserveAndAppend(IAsyncResult) EndReserveAndAppend(IAsyncResult) EndReserveAndAppend(IAsyncResult)

派生クラスでオーバーライドされると、非同期の予約および追加操作を終了します。When overridden in a derived class, ends an asynchronous reserve and append operation.

EndWriteRestartArea(IAsyncResult) EndWriteRestartArea(IAsyncResult) EndWriteRestartArea(IAsyncResult) EndWriteRestartArea(IAsyncResult)

派生クラスでオーバーライドされると、非同期の再開領域の書き込み操作を終了します。When overridden in a derived class, ends an asynchronous restart area write operation.

Flush() Flush() Flush() Flush()

派生クラスでオーバーライドされると、追加したすべてのレコードが書き込まれていることを確認します。When overridden in a derived class, ensures that all appended records have been written.

Flush(SequenceNumber) Flush(SequenceNumber) Flush(SequenceNumber) Flush(SequenceNumber)

派生クラスでオーバーライドされると、指定のシーケンス番号以下のシーケンス番号を持つすべての追加されたレコードが永続的に書き込まれたことを確認します。When overridden in a derived class, ensures that all appended records up to and including the record with the specified sequence number have been durably written.

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType) ReadLogRecords(SequenceNumber, LogRecordEnumeratorType) ReadLogRecords(SequenceNumber, LogRecordEnumeratorType) ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

派生クラスでオーバーライドされると、シーケンス内のレコードの列挙可能なコレクションを返します。When overridden in a derived class, returns an enumerable collection of records in the sequence.

ReadRestartAreas() ReadRestartAreas() ReadRestartAreas() ReadRestartAreas()

派生クラスでオーバーライドされると、シーケンスの再開領域の列挙可能なコレクションを返します。When overridden in a derived class, returns an enumerable collection of the restart areas in the sequence.

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

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。When overridden in a derived class, automatically makes a single reservation and appends a record to the sequence.

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

派生クラスでオーバーライドされると、単一の予約を自動的に行って、シーケンスにレコードを追加します。When overridden in a derived class, automatically makes a single reservation and appends a record to the sequence.

WriteRestartArea(ArraySegment<Byte>) WriteRestartArea(ArraySegment<Byte>) WriteRestartArea(ArraySegment<Byte>) WriteRestartArea(ArraySegment<Byte>)

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込みます。When overridden in a derived class, writes a restart area to the IRecordSequence.

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

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。When overridden in a derived class, writes a restart area to the IRecordSequence and updates the base sequence number

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

派生クラスでオーバーライドされると、予約を使用して IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。When overridden in a derived class, writes a restart area to the IRecordSequence using a reservation, and updates the base sequence number

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

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込みます。When overridden in a derived class, writes a restart area to the IRecordSequence.

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

派生クラスでオーバーライドされると、IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。When overridden in a derived class, writes a restart area to the IRecordSequence and updates the base sequence number.

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

派生クラスでオーバーライドされると、予約を使用して IRecordSequence に再開領域を書き込み、基本シーケンス番号を更新します。When overridden in a derived class, writes a restart area to the IRecordSequence using a reservation, and updates the base sequence number.

イベント

TailPinned TailPinned TailPinned TailPinned

レコード シーケンスで末尾を前方に移動する必要があると判断された場合に発生します。Occurs when the record sequence determines that the tail must be moved forward.

適用対象