HAMMER
# HAMMER

HAMMER é um sistema de arquivos de alta disponibilidade de 64 bits desenvolvido por Matthew Dillon para o DragonFly BSD usando árvores B+. Seus principais recursos incluem instantâneos infinitos exportáveis para NFS, operação mestre-multiescravo, retenção de histórico configurável, montagem sem necessidade de usar fsck, e soma de verificação para lidar com a corrupção de dados. O HAMMER também suporta a desduplicação de blocos de dados, o que significa que os blocos de dados idênticos serão armazenados apenas uma vez em um sistema de arquivos.

## Recursos

O sistema de arquivos HAMMER fornece históricos de sistema de arquivos configuravel de forma fina e grossa com disponibilidade de instantâneos online. Até 65536 pseudo-sistemas de arquivos (PFSs) mestres (leitura e gravação) e escravos (somente leitura), com parâmetros de retenção individual independentes e numeração de inodes, podem ser criados para cada sistema de arquivos; os PFSs podem ser espelhados para múltiplos escravos localmente ou sobre conexão de rede com desempenho quase em tempo real. Não é necessária verificação do sistema de arquivos na remontagem.
HAMMER suporta volumes de até 1 EiB de capacidade de armazenamento. O sistema de arquivos suporta soma de verificação CRC de dados e metadados, correção de layout online e desduplicação de dados, e alocação dinâmica de inodes com número efetivamente ilimitado de inodes.

## Limitações

Atualmente, é necessária manutenção regular para manter o sistema de arquivos limpo e recuperar espaço após a eliminação de arquivos. Por padrão, um trabalho cron executa as ações necessárias no DragonFly BSD diariamente. HAMMER não suporta configurações multi-mestre.

## Desempenho

As seguintes melhorias relacionadas ao desempenho foram introduzidas em julho de 2011:
* Velocidade de leitura de disco aumentada em certas situações através da implementação de multiplexador de domínio de tempo modulado por comprimento de pulso em operação de cursor da árvore B
* Removido um problema de travamento por deadlock
* Desempenho melhorado de leitura durante operações de escrita de arquivo concurrentes e pesadas

## Desenvolvimento

O HAMMER foi desenvolvido especificamente para o DragonFly BSD para fornecer um análogo rico em recursos, porém melhor planejado do cada vez mais popular ZFS.
Desde junho de 2014, o sistema de arquivos HAMMER2 foi desenvolvido ativamente por Matthew Dillon, que inicialmente planejou lançá-lo em estado de funcionamento mínimo em julho de 2012 e lançar a versão final em 2013. Durante a Google Summer of Code 2013, Daniel Flores implementou a compressão de dados no HAMMER2 usando os algoritmos LZ4 e zlib. Em 4 junho de 2014, o DragonFly 3.8.0 foi lançado com suporte ao HAMMER2, porém foi anunciado que este sistema de arquivos ainda não estava pronto para uso.