LogStore LogStore LogStore LogStore Class

Definición

Representa un almacenamiento estructurado del registro.Represents a log-structured storage.

public ref class LogStore sealed : IDisposable
public sealed class LogStore : IDisposable
type LogStore = class
    interface IDisposable
Public NotInheritable Class LogStore
Implements IDisposable
Herencia
LogStoreLogStoreLogStoreLogStore
Implementaciones

Ejemplos

El ejemplo siguiente muestra cómo archivar LogStore en un documento XML.The following example shows how to archive a LogStore to an XML document.

class LogBackup
{ 
    static void ArchiveToXML(LogStore logStore, string fileName) 
    {  
        LogArchiveSnapshot snapshot = logStore.CreateLogArchiveSnapshot();
        
        XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.ASCII);
        
        writer.WriteStartElement("logArchive");
        foreach(FileRegion region in snapshot.ArchiveRegions) 
        {
            writer.WriteStartElement("fileRegion"); 
            writer.WriteElementString("path", region.Path); 
            writer.WriteElementString("length", region.FileLength.ToString()); 
            writer.WriteElementString("offset", region.Offset.ToString()); 
            using(Stream dataStream = region.GetStream()) 
            { 
                byte[] data = new byte[dataStream.Length]; 
                dataStream.Read(data, 0, data.Length); 
                writer.WriteElementString("data", Convert.ToBase64String(data)); 
            }
            writer.WriteEndElement();
        }
        writer.WriteEndElement(); 
        writer.Close(); 
        logStore.SetArchiveTail(snapshot.LastSequenceNumber); 
        
    }
    static void RestoreFromXML(string fileName) 
    { 
        using(XmlTextReader reader = new XmlTextReader(fileName)) 
        {
            reader.ReadStartElement("logArchive"); 
            while(reader.IsStartElement()) 
            { 
                string path = reader.ReadElementString("path"); 
                long length = Int64.Parse(reader.ReadElementString("length")); 
                long offset = Int64.Parse(reader.ReadElementString("offset")); 
                string dataString = reader.ReadElementString("data"); 
                byte[] data = Convert.FromBase64String(dataString); 
                FileStream fileStream;
                using(fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) 
                { 
                    fileStream.SetLength(length); 
                    fileStream.Position = offset; fileStream.Write(data, 0, data.Length); 
                }
            } 
        reader.ReadEndElement(); 
        } 
    } 
}
Friend Class LogBackup
    Private Shared Sub ArchiveToXML(ByVal logStore As LogStore, ByVal fileName As String)
        Dim snapshot As LogArchiveSnapshot = logStore.CreateLogArchiveSnapshot()

        Dim writer As New XmlTextWriter(fileName, Encoding.ASCII)

        writer.WriteStartElement("logArchive")
        For Each region As FileRegion In snapshot.ArchiveRegions
            writer.WriteStartElement("fileRegion")
            writer.WriteElementString("path", region.Path)
            writer.WriteElementString("length", region.FileLength.ToString())
            writer.WriteElementString("offset", region.Offset.ToString())
            Using dataStream As Stream = region.GetStream()
                Dim data(dataStream.Length - 1) As Byte
                dataStream.Read(data, 0, data.Length)
                writer.WriteElementString("data", Convert.ToBase64String(data))
            End Using
            writer.WriteEndElement()
        Next region
        writer.WriteEndElement()
        writer.Close()
        logStore.SetArchiveTail(snapshot.LastSequenceNumber)

    End Sub
    Private Shared Sub RestoreFromXML(ByVal fileName As String)
        Using reader As New XmlTextReader(fileName)
            reader.ReadStartElement("logArchive")
            Do While reader.IsStartElement()
                Dim path = reader.ReadElementString("path")
                Dim length = Int64.Parse(reader.ReadElementString("length"))
                Dim offset = Int64.Parse(reader.ReadElementString("offset"))
                Dim dataString = reader.ReadElementString("data")
                Dim data() = Convert.FromBase64String(dataString)
                Dim fileStream As FileStream
                fileStream = New FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)
                Using fileStream
                    fileStream.SetLength(length)
                    fileStream.Position = offset
                    fileStream.Write(data, 0, data.Length)
                End Using
            Loop
            reader.ReadEndElement()
        End Using
    End Sub
End Class

Comentarios

La clase LogRecordSequence proporciona una implementación de la interfaz de secuencia de registro encima de un registro de Sistema de Registro Archivo Común (CLFS).The LogRecordSequence class provides an implementation of the record sequence interface on top of a Common Log File System (CLFS) log. Funciona con la clase LogStore, que proporciona una interfaz para manipular directamente y administrar un archivo de registro de CLFS.It works with the LogStore class, which provides an interface for directly manipulating and managing a CLFS log file. Un almacén de registro proporciona el almacenamiento de sólo anexar por un conjunto de extensiones del disco.A log store provides append-only storage across a set of disk extents. La clase LogStore representa este almacenamiento y proporciona métodos para agregar y quitar contenedores, configurar una directiva y crear archivos.The LogStore class represents this storage, and provides methods for adding and removing containers, setting policy, and creating archives. No proporciona los métodos para leer de y escribir en el almacenamiento; la clase LogRecordSequence proporciona estos métodos.It does not provide methods for reading from and writing to the storage; these methods are provided by the LogRecordSequence class.

La relación entre la clase LogStore y la clase LogRecordSequence es similar a la relación entre un archivo de disco y un objeto FileStream.The relationship between the LogStore class and the LogRecordSequence class is similar to the relationship between a disk file and a FileStream object. El archivo de disco proporciona el almacenamiento real y tiene atributos como longitud y último tiempo de acceso, mientras que el objeto FileStream proporciona una vista en el archivo que se puede utilizar para leer de él y para escribir en él.The disk file provides the actual storage and has attributes such as length and last access time, while the FileStream object provides a view on the file that can be used to read from it and write to it. De igual forma, la clase LogStore tiene los atributos como una directiva y una colección de extensiones del disco y la clase LogRecordSequence proporciona un mecanismo orientado a registro para leer y escribir los datos.Similarly, the LogStore class has attributes like a policy and a collection of disk extents, and the LogRecordSequence class provides a record-oriented mechanism for reading and writing data.

A diferencia de la secuencia de registro de archivo representada por la clase FileRecordSequence, una instancia LogStore almacena sus datos en una colección de extensiones del disco, representada por instancias LogExtent.Unlike the file record sequence represented by the FileRecordSequence class, a LogStore instance stores its data in a collection of disk extents, represented by LogExtent instances. Las extensiones en una instancia LogStore determinada son todas de tamaño uniforme y el espacio se agrega a y se quita de una instancia LogStore en incrementos de la extensión.The extents in a given LogStore instance are all of uniform size, and space is added to and removed from a LogStore instance in extent increments. Para agregar y quitar las extensiones del registro, utilice Add y los métodos Remove del objeto LogExtentCollection, que puede ser devuelto por la propiedad Extents.To add and remove log extents, use the Add and Remove methods of the LogExtentCollection object, which can be returned by the Extents property.

Una instancia LogStore puede tener las directivas asociadas a él.A LogStore instance can have policies associated with it. Éstas están representadas por las instancias LogPolicy que pueden ser devueltas por la propiedad Policy .These are represented by LogPolicy instances that can be returned by the Policy property. Una directiva dicta reglas que el registro intentará seguir, como número máximo de extensiones y tamaño mínimo e instrucciones en crecer o reducir LogStore bajo ciertas condiciones.A policy dictates rules that the log will attempt to follow, such as maximum number of extents and minimum size, and instructions on growing or shrinking the LogStore under certain conditions. Además, puede especificar si una instancia LogStore puede estar almacenada.In addition, you can specify whether a LogStore instance can be archived. Las directivas se establecen para cada registro y son volátiles, lo que significa que una vez se cierra cada controlador del registro, la directiva deja de existir.Policies are set per log and are volatile, which means that once every handle to the log is closed, the policy no longer exists.

Constructores

LogStore(SafeFileHandle) LogStore(SafeFileHandle) LogStore(SafeFileHandle) LogStore(SafeFileHandle)

Inicializa una nueva instancia de la clase LogStore para un identificador especificado.Initializes a new instance of the LogStore class for the specified handle.

LogStore(String, FileMode) LogStore(String, FileMode) LogStore(String, FileMode) LogStore(String, FileMode)

Inicializa una nueva instancia de la clase LogStore con el trazado especificado y el modo.Initializes a new instance of the LogStore class with the specified path and mode.

LogStore(String, FileMode, FileAccess) LogStore(String, FileMode, FileAccess) LogStore(String, FileMode, FileAccess) LogStore(String, FileMode, FileAccess)

Inicializa una nueva instancia de la clase LogStore con el trazado especificado, el modo y el acceso.Initializes a new instance of the LogStore class with the specified path, mode, and access.

LogStore(String, FileMode, FileAccess, FileShare) LogStore(String, FileMode, FileAccess, FileShare) LogStore(String, FileMode, FileAccess, FileShare) LogStore(String, FileMode, FileAccess, FileShare)

Inicializa una nueva instancia de la clase LogStore.Initializes a new instance of the LogStore class.

LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) LogStore(String, FileMode, FileAccess, FileShare, FileSecurity)

Inicializa una nueva instancia de la clase LogStore.Initializes a new instance of the LogStore class.

Propiedades

Archivable Archivable Archivable Archivable

Obtiene un valor que indica si esta instancia LogStore puede almacenarse.Gets a value indicating whether this LogStore instance can be archived.

BaseSequenceNumber BaseSequenceNumber BaseSequenceNumber BaseSequenceNumber

Obtiene el número de secuencia más bajo que corresponde a un registro válido en las instanciasLogStore.Gets the lowest sequence number that corresponds to a valid record in this LogStore instance.

Extents Extents Extents Extents

Obtiene la colección de extensiones del registro que contienen los datos para este almacén del registro.Gets the collection of log extents that contain the data for this log store.

FreeBytes FreeBytes FreeBytes FreeBytes

Obtiene el número de bytes disponible en el almacén del registro.Gets the number of bytes available in the log store.

Handle Handle Handle Handle

Obtiene el identificador de archivo del sistema operativo correspondiente al archivo de registro que la instancia actual LogStore encapsula.Gets the operating system file handle for the log file that the current LogStore instance encapsulates.

LastSequenceNumber LastSequenceNumber LastSequenceNumber LastSequenceNumber

Cuando se invalida en una clase derivada, consigue anexar el número de secuencia del registro siguiente al almacén del registro.When overridden in a derived class, gets the sequence number of the next record to be appended to the log store.

Length Length Length Length

Obtiene el tamaño del almacén de registro en bytes.Gets the size of the log store, in bytes.

Policy Policy Policy Policy

Obtiene la directiva asociada a este almacén del registro.Gets the policy associated with this log store.

StreamCount StreamCount StreamCount StreamCount

Obtiene el número de secuencias de registro de este almacén de registro.Gets the number of log streams in this log store.

Métodos

CreateLogArchiveSnapshot() CreateLogArchiveSnapshot() CreateLogArchiveSnapshot() CreateLogArchiveSnapshot()

Toma una captura del estado de almacén de registro para realizar una copia de seguridad.Takes a snapshot of the log store state for making a backup.

CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber)

Toma una captura del estado de almacén de registro entre los números de secuencia especificados para realizar una copia de seguridad.Takes a snapshot of the log store state between the specified sequence numbers for making a backup.

Delete(String) Delete(String) Delete(String) Delete(String)

Quita el almacén del registro.Removes the log store.

Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos que usa LogStore.Releases all resources used by the LogStore.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
SetArchiveTail(SequenceNumber) SetArchiveTail(SequenceNumber) SetArchiveTail(SequenceNumber) SetArchiveTail(SequenceNumber)

Establece el número de secuencia de la cola del archivo.Sets the sequence number of the archive tail.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a