Partilhar via


Introdução ao Common Log File System

O Common Log File System (CLFS) é um serviço de log de uso geral usado por clientes de software executados no modo de usuário ou no modo kernel. Esta documentação discute a interface CLFS para clientes de modo kernel. Para obter informações sobre a interface de modo de usuário, consulte Common Log File System no SDK do Microsoft Windows.

O CLFS encapsula toda a funcionalidade do Algoritmo para Recuperação e Exploração de Isolamento Baseada em Semântica (ARIES). No entanto, a interface de driver de dispositivo (DDI) CLFS não está limitada ao suporte ao ARIES; é bem adequada para vários cenários de registo.

O principal trabalho de qualquer log transacional de alto desempenho é permitir que os clientes de log repitam o histórico com precisão. O CLFS faz isso empacotando registros de log do cliente em buffers de memória, forçando-os a um armazenamento estável e lendo os registros de volta mediante solicitação. É importante observar que, depois que um registro chegar ao armazenamento estável e a mídia de armazenamento estiver intacta, o CLFS poderá ler o registro em todas as falhas do sistema.

O CLFS suporta logs dedicados e logs multiplexados. Um log dedicado tem um único fluxo de de registros de log que é usado por todos os clientes do log. Um log multiplexado (também chamado de log comum) tem vários fluxos. Cada fluxo tem os seus próprios clientes e os seus próprios buffers de memória para organizar registos de log, mas os registos de todos esses buffers são multiplexados numa única fila e gravados num único log em armazenamento estável. A multiplexação permite que as operações de E/S de vários fluxos sejam consolidadas.

Quando um cliente grava um registro em um fluxo, ele recebe de volta um número de sequência de log (LSN) que identifica o registro de log para referência futura. Os LSNs atribuídos aos registos que são gravados num fluxo específico formam uma sequência crescente. Ou seja, a LSN atribuída a um registro que é gravado em um fluxo é sempre maior do que a LSN atribuída ao registro anterior gravado nesse mesmo fluxo.

O CLFS fornece vários serviços, além de empacotamento, limpeza e recuperação de registros de log. A lista a seguir descreve alguns desses serviços adicionais.

  • O espaço para um conjunto de registros de log relacionados pode ser reservado com antecedência. Um cliente pode prosseguir com uma transação sabendo que o CLFS é capaz de anexar ao log todos os registros que descrevem a transação.

  • O CLFS mantém um cabeçalho para cada registro de log. Os clientes podem definir determinados campos no cabeçalho para criar cadeias de registros vinculados que você pode percorrer posteriormente em ordem inversa.

  • O CLFS libera os registros de log para um armazenamento estável de acordo com sua política, mas também permite que os clientes forcem um conjunto de registros de log para um armazenamento estável.

  • O CLFS mantém metadados para um log e também para cada fluxo de um log multiplexado. Os clientes podem visualizar metadados e definir determinadas partes dos metadados.

  • Para cada fluxo, o CLFS mantém um LSN base e um último LSN que um cliente pode usar para delinear a parte ativa do fluxo.

  • Para logs dedicados, o CLFS mantém (a pedido do cliente) uma cauda de arquivo que o cliente pode usar para controlar a parte do log que é arquivada.

Certas funcionalidades do CLFS (por exemplo, o campo LSN anterior e o campo LSN para anular seguinte de um cabeçalho de registo) são mais bem compreendidas ao estudar ARIES. Para obter mais informações sobre ARIES, consulte os seguintes documentos.

  • C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz ARIES: Um método de recuperação de transações que suporta o bloqueio Fine-Granularity e rollbacks parciais usando o registo Write-Ahead.

  • C. Mohan, Repetindo a História Além de ÁRIES.

Consulte também

clientes

fluxo