Поделиться через


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 экземпляру, и каждая запись журнала получает уникальный номер последовательности. Порядковые номера строго монотонно увеличиваются в заданной последовательности записей. Запись журнала состоит из непрозрачных данных, предоставленных IRecordSequence экземпляру в IList массивЕSegments байтов.

Интерфейс IRecordSequence также предоставляет несколько основных свойств, которые предоставляют сведения о границах журнала.

  • Свойство BaseSequenceNumber содержит порядковый номер первой допустимой записи в последовательности записей.

  • Свойство LastSequenceNumber содержит порядковый номер, который гарантированно превышает порядковый номер последней добавленной записи.

  • Свойство RestartSequenceNumber содержит порядковый номер последней области перезапуска записи.

  • Свойство MaximumRecordLength содержит размер самой большой записи, к ней можно добавить или прочитать из последовательности.

  • Свойство ReservedBytes содержит общий размер всех резервирований, сделанных в этой последовательности записей.

  • RetryAppend Если для свойства задано trueзначение , и Append операция завершается ошибкой, так как в последовательности нет места, последовательность записей попытается освободить место и повторите операцию "Добавить".

Свойства

Имя Описание
BaseSequenceNumber

При переопределении в производном классе получает порядковый номер первой допустимой записи в текущем IRecordSequence.

LastSequenceNumber

При переопределении в производном классе получает порядковый номер, который больше последней записи, добавленной.

MaximumRecordLength

При переопределении в производном классе получает размер самой большой записи, которую можно добавить или считывать из этой последовательности в байтах.

ReservedBytes

При переопределении в производном классе получает общее количество зарезервированных байтов.

RestartSequenceNumber

При переопределении в производном классе получает порядковый номер последней записанной области перезапуска.

RetryAppend

Возвращает или задает значение, указывающее, будут ли добавления автоматически извлекаться, если журнал заполнен.

Методы

Имя Описание
AdvanceBaseSequenceNumber(SequenceNumber)

Перемещает базовый порядковый номер журнала вперед.

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

При переопределении в производном классе добавляет запись журнала в IRecordSequenceзапись журнала, используя пространство, ранее зарезервированное в последовательности.

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

При переопределении в производном классе записывает запись журнала в него IRecordSequence.

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

При переопределении в производном классе добавляет запись журнала в IRecordSequenceзапись журнала, используя пространство, ранее зарезервированное в последовательности.

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

При переопределении в производном классе добавляет запись журнала в класс 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>, SequenceNumber, ReservationCollection)

При переопределении в производном классе записывает область IRecordSequence перезапуска в резервацию и обновляет базовый порядковый номер.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

При переопределении в производном классе записывает область IRecordSequence перезапуска в базу и обновляет базовый порядковый номер.

WriteRestartArea(ArraySegment<Byte>)

При переопределении в производном классе записывает область перезапуска в него IRecordSequence.

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

При переопределении в производном классе записывает область IRecordSequence перезапуска в резервацию и обновляет базовый порядковый номер.

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

При переопределении в производном классе записывает область IRecordSequence перезапуска в базу и обновляет базовый порядковый номер.

WriteRestartArea(IList<ArraySegment<Byte>>)

При переопределении в производном классе записывает область перезапуска в него IRecordSequence.

События

Имя Описание
TailPinned

Происходит, когда последовательность записей определяет, что хвост должен быть перемещен вперед.

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