Este artigo resulta, no todo ou em parte, de uma tradução do artigo «Log-structured file system» na Wikipédia em inglês, na versão original. Você pode incluir conceitos culturais lusófonos de fontes em português com referências e inseri-las corretamente no texto ou no rodapé. Também pode continuar traduzindo ou colaborar em outras traduções. (Data da tradução: 14 de agosto de 2018) —Encontre fontes: ABW • CAPES • Google (N • L • A) |
Um sistema de arquivos estruturado em log é um sistema de arquivos no qual dados e metadados são gravados sequencialmente em um buffer circular, chamado log. O projeto foi proposto pela primeira vez em 1988 por John K. Ousterhout e Fred Douglis e implementado pela primeira vez em 1992 por Ousterhout e Mendel Rosenblum para o sistema operacional distribuído do tipo Unix Sprite.
Os sistemas de arquivos convencionais tendem a dispor os arquivos com grande cuidado com a localização espacial e fazer alterações locais em suas estruturas de dados para ter um bom desempenho em discos ópticos e magnéticos, que tendem a buscar de forma relativamente lenta.
O design de sistemas de arquivos estruturados em log baseia-se na hipótese de que isso não será mais efetivo porque os tamanhos de memória cada vez maiores nos computadores modernos levariam a E/S a ficar saturada com a gravação, porque as leituras quase sempre seriam satisfeitas pelo cache de memória. Um sistema de arquivos estruturado em log, portanto, trata seu armazenamento como um log circular e grava sequencialmente no cabeçalho do log.
Isso tem vários efeitos colaterais importantes:
Os sistemas de arquivos estruturados em log, no entanto, devem recuperar o espaço livre ao retornar ao começo do log para evitar que o sistema de arquivos fique cheio quando o final do log for atingido. O espaço pode ser liberado pelo começo do log ao apagar arquivos para os quais existem versões mais recentes mais à frente no log. Se não houver versões mais recentes, os dados serão movidos e anexados ao final do log.
Para reduzir a sobrecarga incorrida por essa coleta de lixo, a maioria das implementações evita logs puramente circulares e divide seu armazenamento em segmentos. O final do log simplesmente avança em segmentos não adjacentes que já estão livres. Se for necessário espaço, os segmentos menos cheios são recuperados primeiro. Isso diminui a carga de E/S do coletor de lixo, mas isto se torna cada vez mais ineficaz à medida que o sistema de arquivos é preenchido e se aproxima da capacidade máxima.
A justificativa de design para sistemas de arquivos estruturados em log pressupõe que a maioria das leituras será otimizada, aumentando sempre os caches de memória. Essa suposição nem sempre é válida:
Sistema de ficheiros / Sistema de arquivos | |||||||||
---|---|---|---|---|---|---|---|---|---|
Disco |
| ||||||||
NAS |
| ||||||||
Especializado |
| ||||||||
Tipos |
| ||||||||
Características |
| ||||||||
Interfaces |
|