다음을 통해 공유


IRecordSequence 인터페이스

정의

레코드 시퀀스에 대한 제네릭 인터페이스를 제공합니다.

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
파생
구현

설명

인터페이스는 IRecordSequence 레코드 지향 스트림에 추상 인터페이스를 제공합니다. IRecordSequence instance 사용하여 로그 레코드를 읽고 쓸 수 있습니다.

인터페이스는 IRecordSequence 다음과 같은 기능을 제공합니다.

  • 메서드를 사용하여 로그 레코드를 추가합니다 Append .

  • 메서드를 사용하여 추가된 레코드를 읽습니다 ReadLogRecords .

  • 메서드를 사용하여 특수 다시 시작 레코드를 작성합니다 WriteRestartArea .

  • 메서드를 사용하여 가장 최근에 작성된 다시 시작 레코드에서 다시 시작 레코드를 읽습니다 ReadRestartAreas .

  • 메서드를 사용하여 레코드를 지속성 저장소로 플러시합니다 Flush .

  • 레코드를 추가할 공간을 예약합니다.

  • 로그의 기본을 진행하여 로그 공간을 확보합니다.

  • 이벤트 알림을 수신 TailPinned 하여 로그의 기본을 여유 공간으로 이동합니다.

로그 레코드는 instance 추가 IRecordSequence 되고 각 로그 레코드에는 고유한 시퀀스 번호가 지정됩니다. 시퀀스 번호는 지정된 레코드 시퀀스 내에서 단조롭게 증가합니다. 로그 레코드는 arraySegments 바이트의 instance IList 제공되는 IRecordSequence 불투명 데이터로 구성됩니다.

또한 인터페이스는 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

레코드 시퀀스에서 테일이 앞으로 이동해야 한다고 결정하면 발생합니다.

적용 대상