12 Punkte von xguru 2024-10-08 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Eine eingebettete Storage-Engine, aufgebaut als Log-Structured Merge-tree (LSM-tree)
  • Im Unterschied zu bestehenden LSM-tree-Storage-Engines schreibt SlateDB Daten in Object Storage (S3, GCS, ABS, MinIO, Tigris usw.)
  • Durch die Nutzung von Object Storage bietet es unbegrenzte Storage-Kapazität, hohe Dauerhaftigkeit und einfache Replikation
  • Nachteilig sind jedoch die im Vergleich zu lokalen Festplatten höhere Latenz und die API-Kosten von Object Storage

Strategien von SlateDB zur Umgehung der Nachteile

  • Schreibvorgänge werden in Batches verarbeitet, um hohe Schreib-API-Kosten (PUT) zu reduzieren
    • Anstatt jeden put()-Aufruf in Object Storage zu schreiben, wird die MemTable periodisch als String Sorted Table (SST) in den Object Storage geflusht
    • Das Flush-Intervall ist konfigurierbar
  • Bietet eine asynchrone put-Methode, um auch die Schreiblatenz zu reduzieren
    • Clients, die starke Dauerhaftigkeit bevorzugen, können in put mit await warten, bis die MemTable in den Object Storage geflusht wurde (Abwägung zwischen Latenz und Dauerhaftigkeit)
    • Clients, die niedrige Latenz bevorzugen, können das von put zurückgegebene Future ignorieren
  • Verwendet Standard-Caching-Techniken für LSM-trees, um Leselatenz und Lese-API-Kosten (GET) zu reduzieren
    • In-Memory-Block-Cache, Komprimierung, Bloom-Filter, lokaler SST-Festplatten-Cache

Noch keine Kommentare.

Noch keine Kommentare.