Pular para o conteúdo
Bcachefs 1.38.6 chega com melhorias de desempenho e suporte a Rust

Bcachefs 1.38.6 chega com melhorias de desempenho e suporte a Rust

Versão 1.38.6 do Bcachefs traz performance superior, remoção do rótulo experimental e início da integração com Rust.

A nova versão 1.38.6 do sistema de arquivos Bcachefs foi anunciada pelo desenvolvedor Kent Overstreet. O lançamento, marcado como “performance release”, elimina o rótulo de experimental, traz aprimoramentos significativos de velocidade e inicia a integração da camada do kernel com Rust.

Principais novidades

  • Remoção do status experimental – O site oficial já não exibe mais o aviso de que o Bcachefs ainda está em fase experimental. O anúncio oficial confirma que o projeto está pronto para uso em produção.
  • Recursos de reconciliação e codificação de apagamento (erasure coding) – Nos últimos seis meses, foram introduzidos o mecanismo de reconcile (gerenciamento automático de dispositivos e dados) e o suporte a codificação de apagamento baseada em Reed‑Solomon, equivalente a RAID‑5/6, mas sem write hole e com escrita otimizada.
  • Integração com Rust – Todas as distribuições principais já habilitam CONFIG_RUST no kernel. O código do espaço de usuário já foi migrado para Rust, e a próxima fase incluirá bindings para o módulo DKMS e, eventualmente, a conversão de partes críticas do kernel para Rust.
  • Melhorias de CI – A infraestrutura de testes automatizados agora utiliza builds DKMS, acelerando a validação em um cluster de 80 núcleos Arm64 e permitindo testes em kernels de distribuição.
  • Otimizações de desempenho – Foram aplicados cerca de 200 patches que reduziram o caminho crítico de commit de transação a apenas 4 KB de código, eliminaram contenção de bloqueios no B‑tree e tornaram o flush do journal completamente lock‑free.

Desempenho em números

  • dbench (48 clientes): 16,5 GB/s em um EPYC 9454 (48 cores Zen 4), superando os 16 GB/s do XFS. Com patches adicionais ainda em teste, o Bcachefs pode alcançar 19 GB/s.
  • fio 4 KB random writes: 700 k IOPS, comparado a 1 M IOPS do XFS, ambos com configurações padrão. O Bcachefs executa caminho completo COW, incluindo checksums e atualização de B‑tree.

Detalhes técnicos do reconcile e erasure coding

O reconcile mantém um motor de estado que acompanha a situação real dos dados e executa ações de fundo como replicação, migração e aplicação de opções (ex.: ativação de erasure coding). Ele indexa o trabalho pendente em ordem física de LBA, permitindo evacuações paralelas e eficientes.

A codificação de apagamento utiliza algoritmos Reed‑Solomon sem write hole. Escritas iniciais são replicadas; as réplicas extras são descartadas assim que a faixa (stripe) completa, utilizando buckets reutilizáveis que permanecem no cache de escrita do dispositivo, reduzindo o consumo de banda.

Documentação detalhada está disponível no manual do usuário: Principles of Operation.

Futuro do projeto

Nos próximos meses, a atenção será direcionada ao desempenho em sistemas com múltiplos dispositivos, onde ainda há relatos de gargalos em arrays de grande porte. Além disso, a migração gradual para Rust no kernel deve melhorar a robustez, facilitar a entrada de novos desenvolvedores e abrir caminho para verificações formais de segurança de memória.

Como participar

A comunidade do Bcachefs continua ativa no IRC. Contribuições, testes e relatórios de bugs são bem‑vindos, especialmente de engenheiros interessados em sistemas de arquivos e em trabalhar com código Rust.

Referências

Kent Overstreet
Desenvolvedor principal do Bcachefs.

Via patreon.com. Você pode conferir o post original em inglês:

1.38.6 - the performance release

Por · Última atualização: