O caminho da Luft para a elasticidade - Parte 1: De Shared Nothing a Shared Storage
(engineering.ab180.co)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
Isso é realmente muito interessante, então eu também gostaria de tentar fazer.