Em essência, o que um sistema de arquivos de registro no diário faz é adicionar um nível extra de abstração entre o disco rígido e o sistema operacional. Em vez de executar operações diretamente no disco, ele acompanha o que está tentando fazer primeiro e, em seguida, se obtém ou não êxito.
Por exemplo, se você quiser mover um arquivo de uma unidade para outra, o procedimento será parecido com o seguinte:
- Copiar fisicamente o arquivo antigo para o novo local
- Atualizar entrada de diretório na nova unidade
- Remover entrada de diretório da unidade antiga
- Espaço livre na unidade antiga
O processo exato depende do sistema de arquivos, mas você tem a ideia. Isso normalmente funcionaria bem, mas na chance de uma falha no sistema, as coisas poderiam ser interrompidas no meio do caminho. Você pode acabar com o arquivo fisicamente copiado, mas nenhuma entrada de diretório apontando para ele. Você pode acabar com a referência de diretório removida na unidade antiga, mas o espaço não é liberado. Em alguns casos, você pode acabar com um sistema de arquivos corrompido que nem funciona mais porque uma entrada de diretório é apenas parcialmente escrita.
Em outras palavras, muita coisa pode dar errado.
Um sistema de arquivos com lançamento diário usaria o mesmo procedimento básico, com algumas etapas adicionais. Algo como:
- Entrada no diário: Movendo o arquivo de A para B
- Copiar fisicamente o arquivo antigo para o novo local
- Atualizar entrada de diretório na nova unidade
- Remover entrada de diretório da unidade antiga
- Espaço livre na unidade antiga
- Entrada de diário: fez o movimento do arquivo de A para B
Se esse processo for interrompido por algum motivo, como uma falha do sistema, o sistema de arquivos agora sabe o que estava em andamento e se ele foi concluído ou não. Em seguida, ele pode ser recuperado de maneira rápida e elegante, seja tentando concluir a transação desde o início ou colocando o sistema de arquivos novamente no estado em que estava antes. Tudo isso sem precisar recorrer a uma verificação bloco-a-bloco do sistema de arquivos para encontrar erros, o que pode ser dolorosamente demorado, dado o tamanho dos discos rígidos modernos.
Isso pode melhorar significativamente a robustez do sistema de arquivos e acelerar o tempo de recuperação em caso de falha. Diferentes níveis de confiabilidade podem ser obtidos alterando a granularidade das entradas de diário - isso também depende do sistema de arquivos.
Como o journalling envolve inevitavelmente mais etapas do que a alternativa, não haveria nenhum aumento no desempenho, a menos que você tenha vontade de bater muito. No entanto, a diferença de desempenho é muitas vezes insignificante em comparação com as vantagens.