Introducción al sistema de archivos de registro común
El sistema de archivos de registro común (CLFS) es un servicio de registro de uso general que pueden usar los clientes de software que se ejecutan en modo de usuario o en modo kernel. En esta documentación se describe la interfaz CLFS para los clientes en modo kernel. Para obtener información sobre la interfaz en modo de usuario, vea Common Log File System en la Microsoft Windows SDK.
CLFS encapsula toda la funcionalidad del algoritmo para la semántica de recuperación y aislamiento de vulnerabilidades de seguridad (ARIES). Sin embargo, la interfaz del controlador del dispositivo CLFS (DDI) no se limita a admitir ARIES; es adecuado para una variedad de escenarios de registro.
El trabajo principal de cualquier registro transaccional de alto rendimiento es permitir que los clientes de registro repitan con precisión el historial. CLFS hace esto mediante la serialización de registros de cliente en búferes de memoria, forzándolos a almacenamiento estable y leyendo registros de nuevo a petición. Es importante tener en cuenta que después de que un registro lo convierte en almacenamiento estable y el medio de almacenamiento está intacto, CLFS podrá leer el registro en los errores del sistema.
CLFS admite registros dedicados y registros multiplexados. Un registro dedicado tiene una única secuencia de registros que usan todos los clientes del registro. Un registro multiplexado (también denominado registro común) tiene varias secuencias. Cada secuencia tiene sus propios clientes y sus propios búferes de memoria para serializar los registros de registro, pero los registros de todos esos búferes se multiplexan en una sola cola y se vacían en un único almacenamiento estable de registro. La multiplexación permite consolidar las operaciones de E/S de varios flujos.
Cuando un cliente escribe un registro en una secuencia, obtiene un número de secuencia de registro (LSN) que identifica el registro de referencia futura. Los LSN asignados a los registros que se escriben en una secuencia determinada forman una secuencia creciente. Es decir, el LSN asignado a un registro escrito en una secuencia siempre es mayor que el LSN asignado al registro anterior escrito en esa misma secuencia.
CLFS proporciona varios servicios además de serializar, vaciar y recuperar registros de registro. En la lista siguiente se describen algunos de esos servicios adicionales.
El espacio de un conjunto de registros relacionados se puede reservar con antelación. Esto significa que un cliente puede continuar con una transacción sabiendo que CLFS podrá anexar al registro todos los registros que describen la transacción.
CLFS mantiene un encabezado para cada registro de registro. Los clientes pueden establecer determinados campos en el encabezado para crear cadenas de registros vinculados que más adelante se pueden recorrer en orden inverso.
CLFS vacía los registros en un almacenamiento estable según su directiva, pero también permite a los clientes forzar un conjunto de registros a un almacenamiento estable.
CLFS mantiene los metadatos de un registro y también para cada flujo de un registro multiplexado. Los clientes pueden ver metadatos y establecer determinadas partes de los metadatos.
Para cada flujo, CLFS mantiene un LSN base y un último LSN que un cliente puede usar para delimitar la parte activa de la secuencia.
En el caso de los registros dedicados, CLFS mantiene (en la solicitud del cliente) un final de archivo que el cliente puede usar para realizar un seguimiento de la parte del registro que se ha archivado.
Algunas características de CLFS (por ejemplo, los campos LSN y LSN de deshacer siguientes de un encabezado de registro) se pueden entender mejor mediante el estudio de ARIES. Para obtener más información sobre ARIES, consulte los siguientes artículos.
C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, ARIES: un método de recuperación de transacciones que admite Fine-Granularity bloqueo y reversiones parciales mediante Write-Ahead registro.
C. Mohan, repitiendo historia más allá de ARIES.