IRecordSequence 인터페이스

정의

레코드 시퀀스에 대한 제네릭 인터페이스를 제공합니다.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. 로그 레코드는 바이트 배열 세그먼트의 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

파생 클래스에서 재정의되는 경우 현재 IRecordSequence에서 유효한 첫 번째 레코드의 시퀀스 번호를 가져옵니다.When overridden in a derived class, gets the sequence number of the first valid record in the current IRecordSequence.

LastSequenceNumber

파생 클래스에서 재정의되는 경우 마지막으로 추가된 레코드보다 큰 시퀀스 번호를 가져옵니다.When overridden in a derived class, gets the sequence number which is greater than the last record appended.

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

파생 클래스에서 재정의되는 경우 예약된 총 바이트 수를 가져옵니다.When overridden in a derived class, gets the total number of bytes that have been reserved.

RestartSequenceNumber

파생 클래스에서 재정의되는 경우 가장 최근에 기록된 재시작 영역의 시퀀스 번호를 가져옵니다.When overridden in a derived class, gets the sequence number of the most recently written restart area.

RetryAppend

로그가 꽉 차는 경우 추가 작업이 자동으로 다시 시도되는지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value indicating whether appends are automatically retried if the log is full.

메서드

AdvanceBaseSequenceNumber(SequenceNumber)

로그의 기준 시퀀스 번호를 앞으로 이동합니다.Moves the base sequence number of the log forward.

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)

파생 클래스에서 재정의되는 경우 시퀀스에서 이전에 예약된 공간을 사용하여 로그 레코드를 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)

파생 클래스에서 재정의되는 경우 로그 레코드를 IRecordSequence에 추가합니다.When overridden in a derived class, appends a log record to the IRecordSequence.

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)

파생 클래스에서 재정의되는 경우 비동기 추가 작업을 시작합니다.When overridden in a derived class, begins an asynchronous append operation.

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)

파생 클래스에서 재정의되는 경우 시퀀스에서 이전에 예약된 공간을 사용하여 비동기 추가 작업을 시작합니다.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)

파생 클래스에서 재정의되는 경우 시퀀스에서 이전에 예약된 공간을 사용하여 비동기 추가 작업을 시작합니다.When overridden in a derived class, begins an asynchronous append operation, using space previously reserved in the sequence.

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)

파생 클래스에서 재정의되는 경우 비동기 예약 및 추가 작업을 시작합니다.When overridden in a derived class, begins an asynchronous reserve and append operation.

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)

파생 클래스에서 재정의되는 경우 시퀀스에서 이전에 예약된 공간을 사용하여 비동기 재시작 영역 쓰기 작업을 시작합니다.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)

파생 클래스에서 재정의되는 경우 시퀀스에서 이전에 예약된 공간을 사용하여 비동기 재시작 영역 쓰기 작업을 시작합니다.When overridden in a derived class, begins an asynchronous restart area write operation, using space previously reserved in the sequence.

CreateReservationCollection()

파생 클래스에서 재정의할 때 새 ReservationCollection를 만듭니다.When overridden in a derived class, creates a new ReservationCollection.

Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(다음에서 상속됨 IDisposable)
EndAppend(IAsyncResult)

파생 클래스에서 재정의되는 경우 비동기 추가 작업을 종료합니다.When overridden in a derived class, ends an asynchronous append operation.

EndFlush(IAsyncResult)

파생 클래스에서 재정의되는 경우 비동기 플러시 작업을 종료합니다.When overridden in a derived class, ends an asynchronous flush operation.

EndReserveAndAppend(IAsyncResult)

파생 클래스에서 재정의되는 경우 비동기 예약 및 추가 작업을 종료합니다.When overridden in a derived class, ends an asynchronous reserve and append operation.

EndWriteRestartArea(IAsyncResult)

파생 클래스에서 재정의되는 경우 비동기 재시작 영역 쓰기 작업을 종료합니다.When overridden in a derived class, ends an asynchronous restart area write operation.

Flush()

파생 클래스에서 재정의되는 경우 추가된 모든 레코드가 기록됩니다.When overridden in a derived class, ensures that all appended records have been written.

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)

파생 클래스에서 재정의되는 경우 시퀀스에 있는 레코드의 열거 가능한 컬렉션을 반환합니다.When overridden in a derived class, returns an enumerable collection of records in the sequence.

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[])

파생 클래스에서 재정의되는 경우 단일 예약을 자동으로 만들고 레코드를 시퀀스에 추가합니다.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[])

파생 클래스에서 재정의되는 경우 단일 예약을 자동으로 만들고 레코드를 시퀀스에 추가합니다.When overridden in a derived class, automatically makes a single reservation and appends a record to the sequence.

WriteRestartArea(ArraySegment<Byte>)

파생 클래스에서 재정의되는 경우 재시작 영역을 IRecordSequence에 씁니다.When overridden in a derived class, writes a restart area to the IRecordSequence.

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)

파생 클래스에서 재정의되는 경우 예약을 사용하여 재시작 영역을 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>>)

파생 클래스에서 재정의되는 경우 재시작 영역을 IRecordSequence에 씁니다.When overridden in a derived class, writes a restart area to the IRecordSequence.

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)

파생 클래스에서 재정의되는 경우 예약을 사용하여 재시작 영역을 IRecordSequence에 쓰고 기준 시퀀스 번호를 업데이트합니다.When overridden in a derived class, writes a restart area to the IRecordSequence using a reservation, and updates the base sequence number.

이벤트

TailPinned

레코드 시퀀스에서 테일이 앞으로 이동해야 한다고 결정하면 발생합니다.Occurs when the record sequence determines that the tail must be moved forward.

적용 대상