IRecordSequence Interfaccia

Definizione

Fornisce un'interfaccia generica per una sequenza di record.

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
Derivato
Implementazioni

Commenti

L'interfaccia IRecordSequence fornisce un'interfaccia astratta a un flusso orientato ai record. Un'istanza IRecordSequence può essere utilizzata per leggere e scrivere record del registro.

L'interfaccia IRecordSequence fornisce le funzionalità seguenti:

  • Accodare record del registro utilizzando i metodi Append.

  • Leggere i record accodati utilizzando il metodo ReadLogRecords.

  • Scrivere un record di riavvio speciale utilizzando il metodo WriteRestartArea.

  • Leggere record di riavvio dal record di riavvio scritto più recentemente utilizzando il metodo ReadRestartAreas.

  • Scaricare i record in un archivio durevole usando il Flush metodo .

  • Riservare spazio per l'accodamento di record.

  • Liberare spazio anticipando la base del log.

  • Ricevere notifiche di evento TailPinned per spostare la base del log e liberare spazio.

I record del registro vengono accodati a un'istanza IRecordSequence e a ogni record viene assegnato un numero di sequenza univoco. I numeri di sequenza sono a incremento progressivo costante all'interno di una determinata sequenza di record. Un record del registro è costituito da dati opachi, forniti all'istanza IRecordSequence in un'interfaccia IList di ArraySegments di byte.

L'interfaccia IRecordSequence espone anche alcune proprietà di base che forniscono informazioni sui limiti del log.

  • La proprietà BaseSequenceNumber contiene il numero di sequenza del primo record valido della sequenza.

  • La proprietà LastSequenceNumber contiene un numero di sequenza più grande del numero di sequenza dell'ultimo record accodato.

  • La proprietà RestartSequenceNumber contiene il numero di sequenza dell'ultima area di riavvio scritta.

  • La proprietà MaximumRecordLength contiene la dimensione del record più grande che può essere accodato alla sequenza o letto da quest'ultima.

  • La proprietà ReservedBytes contiene la dimensione totale di tutte le prenotazioni effettuate in questa sequenza di record.

  • Se la proprietà RetryAppend è impostata su true e un'operazione Append non riesce per mancanza di spazio disponibile nella sequenza, la sequenza di record tenterà di liberare spazio ed eseguirà nuovamente l'operazione di accodamento.

Proprietà

BaseSequenceNumber

Quando sottoposto a override in una classe derivata, ottiene il numero di sequenza del primo record valido nell'interfaccia IRecordSequence corrente.

LastSequenceNumber

Quando sottoposto a override in una classe derivata, ottiene il numero di sequenza maggiore dell'ultimo record accodato.

MaximumRecordLength

Quando sottoposto a override in una classe derivata, ottiene la dimensione, in byte, del record più grande che può essere accodato in questa sequenza o letto dalla stessa.

ReservedBytes

Quando viene sottoposto a override in una classe derivata, ottiene il numero totale di byte che sono stati prenotati.

RestartSequenceNumber

Quando sottoposto a override in una classe derivata, ottiene il numero di sequenza dell'area di riavvio scritta più recentemente.

RetryAppend

Ottiene o imposta un valore che indica se le operazioni di accodamento vengono ripetute automaticamente nel caso in cui il log sia pieno.

Metodi

AdvanceBaseSequenceNumber(SequenceNumber)

Sposta in avanti il numero di sequenza di base del log.

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

Quando sottoposto a override in una classe derivata, scrive un record del registro nell'interfaccia IRecordSequence.

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

Quando viene sottoposto a override in una classe derivata, accoda un record del registro all'interfaccia IRecordSequence utilizzando spazio precedentemente riservato nella sequenza.

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

Quando sottoposto a override in una classe derivata, accoda un record del registro all'interfaccia IRecordSequence.

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

Quando viene sottoposto a override in una classe derivata, accoda un record del registro all'interfaccia IRecordSequence utilizzando spazio precedentemente riservato nella sequenza.

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

Quando sottoposto a override in una classe derivata, avvia un'operazione di accodamento asincrona.

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

Quando viene sottoposto a override in una classe derivata, avvia un'operazione di accodamento asincrona utilizzando spazio precedentemente riservato nella sequenza.

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

Quando viene sottoposto a override in una classe derivata, avvia un'operazione di accodamento asincrona utilizzando spazio precedentemente riservato nella sequenza.

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

Quando viene sottoposto a override in una classe derivata, avvia un'operazione di accodamento asincrona utilizzando spazio precedentemente riservato nella sequenza.

BeginFlush(SequenceNumber, AsyncCallback, Object)

Quando viene sottoposto a override in una classe derivata, inizia un'operazione di scaricamento asincrono utilizzando spazio precedentemente riservato nella sequenza.

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

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di prenotazione e accodamento.

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

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di prenotazione e accodamento.

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

Quando viene sottoposto a override in una classe derivata, inizia un'operazione asincrona di scrittura dell'area di riavvio utilizzando spazio precedentemente riservato nella sequenza.

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

Quando viene sottoposto a override in una classe derivata, inizia un'operazione asincrona di scrittura dell'area di riavvio utilizzando spazio precedentemente riservato nella sequenza.

CreateReservationCollection()

Quando è sottoposto a override in una classe derivata, crea un nuovo elemento ReservationCollection.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da IDisposable)
EndAppend(IAsyncResult)

Quando sottoposto a override in una classe derivata, termina un'operazione asincrona di accodamento.

EndFlush(IAsyncResult)

Quando sottoposto a override in una classe derivata, termina un'operazione di scaricamento asincrono.

EndReserveAndAppend(IAsyncResult)

Quando sottoposto a override in una classe derivata, termina un'operazione asincrona di prenotazione e accodamento.

EndWriteRestartArea(IAsyncResult)

Quando sottoposto a override in una classe derivata, termina un'operazione asincrona di scrittura dell'area di riavvio.

Flush()

Quando sottoposto a override in una classe derivata, verifica che tutti i record accodati siano stati scritti.

Flush(SequenceNumber)

Quando sottoposto a override in una classe derivata, verifica che tutti i record accodati fino al record con il numero di sequenza incluso siano stati scritti in modo durevole.

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

Quando sottoposto a override in una classe derivata, restituisce una raccolta enumerabile di record inclusi nella sequenza.

ReadRestartAreas()

Quando sottoposto a override in una classe derivata, restituisce una raccolta enumerabile delle aree di riavvio incluse nella sequenza.

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

Quando sottoposto a override in una classe derivata, crea automaticamente una sola prenotazione e quindi accoda un record alla sequenza.

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

Quando sottoposto a override in una classe derivata, crea automaticamente una sola prenotazione e quindi accoda un record alla sequenza.

WriteRestartArea(ArraySegment<Byte>)

Quando sottoposto a override in una classe derivata, scrive un'area di riavvio nell'interfaccia IRecordSequence.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

Quando viene sottoposto a override in una classe derivata, scrive un'area di riavvio nell'interfaccia IRecordSequence e aggiorna il numero di sequenza di base.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection)

Quando viene sottoposto a override in una classe derivata, scrive un'area di riavvio nell'interfaccia IRecordSequence utilizzando una prenotazione e aggiorna il numero di sequenza di base.

WriteRestartArea(IList<ArraySegment<Byte>>)

Quando sottoposto a override in una classe derivata, scrive un'area di riavvio nell'interfaccia IRecordSequence.

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

Quando viene sottoposto a override in una classe derivata, scrive un'area di riavvio nell'interfaccia IRecordSequence e aggiorna il numero di sequenza di base.

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

Quando viene sottoposto a override in una classe derivata, scrive un'area di riavvio nell'interfaccia IRecordSequence utilizzando una prenotazione e aggiorna il numero di sequenza di base.

Eventi

TailPinned

Si verifica quando la sequenza di record determina che la coda deve essere spostata in avanti.

Si applica a