SlateDB – Eingebettete Storage-Engine auf Basis von Object Storage
(github.com/slatedb)- 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
- Anstatt jeden
- Bietet eine asynchrone
put-Methode, um auch die Schreiblatenz zu reduzieren- Clients, die starke Dauerhaftigkeit bevorzugen, können in
putmitawaitwarten, bis die MemTable in den Object Storage geflusht wurde (Abwägung zwischen Latenz und Dauerhaftigkeit) - Clients, die niedrige Latenz bevorzugen, können das von
putzurückgegebene Future ignorieren
- Clients, die starke Dauerhaftigkeit bevorzugen, können in
- 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.