11 points par kimmachinegun 2025-03-10 | 1 commentaires | Partager sur WhatsApp

Retour d’expérience sur la transition de Luft, notre base de données développée en interne, d’une architecture Shared Nothing vers une architecture Shared Storage afin d’améliorer son élasticité.

  • Auparavant, chaque nœud traitait les données avec un stockage indépendant, mais l’élasticité était insuffisante pour le traitement de gros volumes de données, ce qui compliquait la gestion des charges de travail en pic.
  • Nous avons décidé d’adopter le concept de Compute-Storage Separation, en séparant les ressources de calcul et le stockage, pour passer à une architecture Shared Storage avec stockage partagé.
  • Nous avons expérimenté une approche utilisant FUSE pour accéder à S3, mais en raison des caractéristiques du runtime Go, des problèmes de performance sont apparus avec FUSE ; nous avons donc implémenté nous-mêmes un Buffer Pool Manager au niveau applicatif.
  • Grâce à ces améliorations, il est devenu possible d’exécuter des requêtes directement sur S3, et les performances des requêtes dans les cas où les données n’étaient pas préalablement distribuées se sont améliorées de plus de 70 % au maximum, ce qui a fortement renforcé l’élasticité de Luft.

1 commentaires

 
outcast1542 2025-03-10

C’est vraiment très intéressant ce que vous avez fait, ça me donne envie d’essayer moi aussi.