Páginas

BetrFS: Um sistema de arquivos com otimização de B-trees

BetrFS: Um sistema de arquivos com otimização de B-trees

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
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.