11 puntos por kimmachinegun 2025-03-10 | 1 comentarios | Compartir por WhatsApp

> Compartimos la experiencia de haber migrado de una arquitectura Shared Nothing a una arquitectura Shared Storage para mejorar la elasticidad de Luft, nuestra base de datos desarrollada internamente.

  • Antes, cada nodo procesaba los datos usando almacenamiento independiente, pero al manejar grandes volúmenes de datos faltaba elasticidad y era difícil responder a cargas de trabajo con picos.
  • Se aplicó el concepto de Compute-Storage Separation, que separa los recursos de cómputo y almacenamiento, y se decidió migrar a una arquitectura Shared Storage con almacenamiento compartido.
  • Se probó un enfoque que usaba FUSE para acceder a S3, pero por las características del runtime de Go surgieron problemas de rendimiento al usar FUSE, así que se implementó internamente un Buffer Pool Manager a nivel de aplicación.
  • Gracias a estas mejoras, ahora es posible hacer consultas directamente sobre S3, y el rendimiento de las consultas en casos donde los datos no estaban distribuidos previamente mejoró hasta más de un 70%, lo que incrementó significativamente la elasticidad de Luft.

1 comentarios

 
outcast1542 2025-03-10

Esto que están haciendo es realmente muy interesante, a mí también me dan ganas de probarlo.