- Motor de almacenamiento embebido construido con un árbol de mezcla estructurado por registros (Log-Structured Merge-tree)
- A diferencia de los motores de almacenamiento LSM-tree tradicionales, SlateDB escribe los datos en object storage (S3, GCS, ABS, MinIO, Tigris, etc.)
- Al aprovechar object storage, ofrece capacidad de almacenamiento prácticamente ilimitada, alta durabilidad y replicación sencilla
- Sin embargo, object storage tiene la desventaja de una latencia más alta y costos de API mayores que un disco local
Estrategias de SlateDB para evitar esas desventajas
- Procesa las escrituras por lotes para mitigar el alto costo de la API de escritura (PUT)
- En lugar de escribir cada llamada a
put() directamente en object storage, vacía periódicamente la MemTable a object storage como una tabla ordenada por cadenas (SST)
- El intervalo de vaciado es configurable
- Ofrece un método
put asíncrono para reducir también la latencia de escritura
- Los clientes que prefieren una durabilidad fuerte pueden hacer
await en put hasta que la MemTable se vacíe en object storage (un equilibrio entre latencia y durabilidad)
- Los clientes que prefieren baja latencia pueden ignorar el future devuelto por
put
- Usa técnicas estándar de caché de LSM-tree para mitigar la latencia de lectura y el costo de la API de lectura (GET)
- Caché de bloques en memoria, compresión, filtros Bloom, caché local en disco para SST
Aún no hay comentarios.