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 фрагментов массива байтов.
Интерфейс 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 |
Происходит, когда последовательность записей определяет завершающую часть, которую необходимо переместить вперед. |