BetrFS: Um sistema de arquivos com otimização de B-trees |
Após publicar a matéria sobre o sistema de arquivos GEFS estar sendo portado para os OpenBSD, eu me senti inspirado em escrever este artigo sobre o sistema de arquivos BetrFS (já que o Bε trees serviu de base para a criação do GEFS).
Bε-tree File System, ou BetrFS é um sistema de arquivos Linux que utiliza BƐ-trees ao invés do tradicional B-tree como sua estrutura de dados para a otimização de escrita. O BetrFS foi baseado na implementação do fractal tree da empresa Tokutek Inc. Apesar de ainda ser um projeto em desenvolvimento (ultima versão lançada foi a v0.6 em Fevereiro de 2022 mas a realmente verificada é a 0.4.1 de Janeiro de 2021), o BetrFS já apresenta grandes resultados em seus objetivos Como podem ser conferidas nas tabelas abaixo:
Benchmarks do BetrFS |
A equipe do projeto conseguiu atingir seus objetivos ao adotar recursos como Write-Optimized Indexes (também conhecido como WOIs que podem acelerar as operações do sistema de arquivos); Upserts; folhas maiores (Large leaves (2-4 MB); Blind Writes (essencial para o ganho de desempenho por tratar escritar mais rápidas do que as leituras e quando possível, evita leitura em favor da escrita); Lexicographic ordering on disk que ordena dados e metadados para leituras e buscas sequenciais.
Mas como todo sistema de arquivos, o BetrFS também possui seu prós e contras (o que cabe a cada um de nós avaliar quando deve ser adotados). O pró do BetrFS está em trabalhar com escrita sequencial de arquivos menores, scan (como o comando grep) e buscas no sistema de arquivos (como o comando find). Por outro lado, o seu contra está em trabalhar com arquivos grandes de quase todas as formas (I/O sequencial de arquivos grandes, exclusão de arquivos grandes e renomear arquivos grandes); nesta parte ainda há trabalhos a serem feitos.
Conclusão
Ainda há muito trabalho a ser feito, mas o BetrFS já está sendo cotado como um sistema de arquivos que pode ser utilizado no mundo real. Quando em uso, o BetrFs segue uma pilha no seguinte padrão:
VFS -> BetrFS * -> B^e Tree * -> ext4
BetrFS utilizado como pilha de sistema de arquivos |
O que me leva a pensar se no futuro a equipe de desenvolvimento do Ext4 não abandone o B-tree e passe a adotar o Bε-tree como arvore padrão (lembrando que não necessariamente um sistema de arquivos está preso a um modelo de estrutura de arvore. O Ext4 sobre sofre de certas limitações em seu design já que ele é baseado no sistema de arquivos do sistema operacional Minix mas pode ser que não na parte de tree). Isso poderia lhe dar uma sobrevida já que o Ext4 está sendo abandonado até mesmo no Android como filesystem padrão. E porque não também no Btrfs? Seria uma ideia interessante quando o Bε-tree evoluir mais.
Agradecimento
A meu aluno Júlio Cezar que revisou o texto e descobriu que o link o BetrFS não estava acessível.
Site oficial do BetrFS
Mais sobre o Btrfs
Nenhum comentário:
Postar um comentário
Viu algum erro e quer compartilhar seu conhecimento? então comente aí.
Observação: somente um membro deste blog pode postar um comentário.