El camino de Luft hacia la elasticidad - Parte 1: De Shared Nothing a Shared Storage
(engineering.ab180.co)> 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
Esto que están haciendo es realmente muy interesante, a mí también me dan ganas de probarlo.