11 pontos por kimmachinegun 2025-03-10 | 1 comentários | Compartilhar no WhatsApp

Compartilhamos a experiência de migrar da arquitetura Shared Nothing para a arquitetura Shared Storage para melhorar a elasticidade do Luft, nosso banco de dados desenvolvido internamente.

  • Antes, cada nó processava os dados usando armazenamento independente, mas a elasticidade era insuficiente ao lidar com grandes volumes de dados, o que dificultava responder a cargas de trabalho em pico.
  • Aplicamos o conceito de Compute-Storage Separation, separando os recursos de computação e armazenamento, e decidimos migrar para uma arquitetura Shared Storage com armazenamento compartilhado.
  • Testamos uma abordagem usando FUSE para acessar o S3, mas, devido às características do runtime do Go, houve problemas de desempenho ao usar FUSE, então implementamos internamente um Buffer Pool Manager no nível da aplicação.
  • Com essas melhorias, passou a ser possível consultar diretamente no S3, e o desempenho de consultas em casos nos quais os dados não estavam previamente distribuídos melhorou em mais de 70%, aumentando significativamente a elasticidade do Luft.

1 comentários

 
outcast1542 2025-03-10

Isso é realmente muito interessante, então eu também gostaria de tentar fazer.