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.

Применяется к