IRecordSequence Interface

Definição

Fornece uma interface genérica para uma sequência de registros.

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
Derivado
Implementações

Comentários

A IRecordSequence interface fornece uma interface abstrata para um fluxo orientado a registro. Uma IRecordSequence instância pode ser usada para ler e gravar registros de log.

A IRecordSequence interface fornece os seguintes recursos,

  • Acrescente registros de log usando os Append métodos .

  • Leia os registros acrescentados usando o ReadLogRecords método .

  • Escreva um registro de reinicialização especial usando o WriteRestartArea método .

  • Leia os registros de reinicialização do registro de reinicialização gravado mais recentemente usando o ReadRestartAreas método .

  • Libere os registros para o repositório durável usando o Flush método .

  • Reserve espaço para acrescentar registros.

  • Liberar espaço de log avançando na base do log.

  • Receba TailPinned notificações de eventos para mover a base do log para o espaço livre.

Os registros de log são acrescentados a uma IRecordSequence instância e cada registro de log recebe um número de sequência exclusivo. Os números de sequência estão aumentando estritamente monotonicamente dentro de uma determinada sequência de registros. Um registro de log consiste em dados opacos, fornecidos para a IRecordSequence instância em um IList de ArraySegments de bytes.

A IRecordSequence interface também expõe algumas propriedades básicas que fornecem informações sobre limites de log.

  • A BaseSequenceNumber propriedade contém o número de sequência do primeiro registro válido na sequência de registros.

  • A LastSequenceNumber propriedade contém um número de sequência que tem a garantia de ser maior que o número de sequência do último registro acrescentado.

  • A RestartSequenceNumber propriedade contém o número de sequência da última área de reinicialização gravada.

  • A MaximumRecordLength propriedade contém o tamanho do maior registro que pode ser acrescentado ou lido da sequência.

  • A ReservedBytes propriedade contém o tamanho total de todas as reservas feitas nesta sequência de registros.

  • Se a RetryAppend propriedade estiver definida truecomo e uma Append operação falhar porque não há espaço na sequência, a sequência de registros tentará liberar espaço e tentará novamente a operação Append.

Propriedades

BaseSequenceNumber

Quando substituída em uma classe derivada, obtém o número de sequência do primeiro registro válido no IRecordSequence atual.

LastSequenceNumber

Quando substituída em uma classe derivada, obtém o número de sequência que é maior que o último registro acrescentado.

MaximumRecordLength

Quando substituída em uma classe derivada, obtém o tamanho do registro maior que pode ser lido desta sequência ou acrescentado a ela, em bytes.

ReservedBytes

Quando substituída em uma classe derivada, obtém o número total de bytes que foram reservados.

RestartSequenceNumber

Quando substituída em uma classe derivada, obtém o número de sequência da área de reinicialização mais recentemente gravada.

RetryAppend

Obtém ou define um valor que indica se há novas tentativas automáticas de acréscimo se o log está cheio.

Métodos

AdvanceBaseSequenceNumber(SequenceNumber)

Move o número de sequência de base para a parte inicial do log.

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

Quando substituída em uma classe derivada, grava um registro de log para o IRecordSequence.

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

Quando substituída em uma classe derivada, acrescenta um registro de log no IRecordSequence, usando espaço reservado anteriormente na sequência.

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

Quando substituída em uma classe derivada, acrescenta um registro de log para o IRecordSequence.

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

Quando substituída em uma classe derivada, acrescenta um registro de log no IRecordSequence, usando espaço reservado anteriormente na sequência.

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de acréscimo assíncrona.

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de acréscimo assíncrona, usando o espaço reservado anteriormente na sequência.

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de acréscimo assíncrona, usando o espaço reservado anteriormente na sequência.

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de acréscimo assíncrona, usando o espaço reservado anteriormente na sequência.

BeginFlush(SequenceNumber, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de liberação assíncrona, usando o espaço reservado anteriormente na sequência.

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona.

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação gravação de área de reinicialização assíncrona, usando o espaço reservado anteriormente na sequência.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Quando substituída em uma classe derivada, inicia uma operação gravação de área de reinicialização assíncrona, usando o espaço reservado anteriormente na sequência.

CreateReservationCollection()

Quando substituído em uma classe derivada, cria um novo ReservationCollection.

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

(Herdado de IDisposable)
EndAppend(IAsyncResult)

Quando substituída em uma classe derivada, termina uma operação de acréscimo assíncrona.

EndFlush(IAsyncResult)

Quando substituída em uma classe derivada, termina uma operação de liberação assíncrona.

EndReserveAndAppend(IAsyncResult)

Quando substituída em uma classe derivada, termina uma operação de reserva e acréscimo assíncrona.

EndWriteRestartArea(IAsyncResult)

Quando substituída em uma classe derivada, termina uma operação de gravação de área de reinicialização assíncrona.

Flush()

Quando substituída em uma classe derivada, garante que todos os registros acrescentados foram gravados.

Flush(SequenceNumber)

Quando substituída em uma classe derivada, garante que todos os registros acrescentados até e incluindo o registro com o número de sequência especificado foram gravados de modo durável.

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

Quando substituída em uma classe derivada, retorna uma coleção enumerável de registros na sequência.

ReadRestartAreas()

Quando substituída em uma classe derivada, retorna uma coleção enumerável de áreas de reinicialização na sequência.

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Quando substituída em uma classe derivada, faz automaticamente uma única reserva e acrescenta um registro à sequência.

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Quando substituída em uma classe derivada, faz automaticamente uma única reserva e acrescenta um registro à sequência.

WriteRestartArea(ArraySegment<Byte>)

Quando substituída em uma classe derivada, grava uma área de reinicialização no IRecordSequence.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

Quando substituída em uma classe derivada, grava uma área de reinicialização no IRecordSequence e atualiza o número de sequência de base.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection)

Quando substituída em uma classe derivada, grava uma área de reinicialização no IRecordSequence usando uma reserva e atualiza o número de sequência de base.

WriteRestartArea(IList<ArraySegment<Byte>>)

Quando substituída em uma classe derivada, grava uma área de reinicialização no IRecordSequence.

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

Quando substituída em uma classe derivada, grava uma área de reinicialização no IRecordSequence e atualiza o número de sequência de base.

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

Quando substituída em uma classe derivada, grava uma área de reinicialização no IRecordSequence usando uma reserva e atualiza o número de sequência de base.

Eventos

TailPinned

Ocorre quando a sequência de registro determina que a parte final deve ser movida para a frente.

Aplica-se a