Compartilhar via


Introdução ao Common Log File System

O CLFS (Common Log File System) é um serviço de log de uso geral usado por clientes de software em execução no modo de usuário ou no modo kernel. Esta documentação discute a interface CLFS para clientes no modo kernel. Para obter informações sobre a interface do 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 semântica (ARIES). No entanto, a interface de driver de dispositivo (DDI) CLFS não se limita a oferecer suporte ao ARIES; é bem adequada para vários cenários de registro de log.

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

O CLFS dá suporte a logs dedicados e logs multiplexados. Um log dedicado tem um único fluxo 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 de dados tem seus próprios clientes e seus próprios buffers de memória para marshalling de registros de log, mas os registros de todos esses buffers são multiplexados em uma única fila e liberados para um único log no armazenamento permanente. O multiplexing permite que as operações de E/S de vários fluxos sejam consolidadas.

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

CLFS fornece vários serviços além do marshaling, liberação 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 continuar com uma transação sabendo que o CLFS é capaz de acrescentar 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 o armazenamento estável de acordo com sua política, mas também permite que os clientes forcem um conjunto de registros de log ao armazenamento estável.

  • O CLFS mantém metadados para um log e também para cada fluxo de um log multiplexado. Os clientes podem exibir 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, um "arquivo final" que o cliente pode usar para monitorar a parte do log que está arquivada.

Determinados recursos do CLFS (por exemplo, o LSN anterior e os próximos campos LSN de um cabeçalho de registro) podem ser melhor compreendidos estudando ARIES. Para obter mais informações sobre ÁRIES, consulte os artigos a seguir.

  • C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, ARIES: Um método de recuperação de transações que dá suporte ao bloqueio de granularidade fina e reversões parciais usando registro em log de pré-escrita.

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

Consulte também

Clientes

fluxo