Colossus für schnellen Storage
(cloud.google.com)„Das zustandsbehaftete Colossus-Protokoll“ ist die geheime Zutat für die hohe Performance von Rapid Storage
- Google Cloud Storage wird wegen seiner Einfachheit und Skalierbarkeit breit eingesetzt
- Das bisherige zustandslose REST-basierte Protokoll ist zwar leicht zu nutzen, bei AI- und datenintensiven Workloads sind jedoch Latenzen und fehlende dateizentrierte Funktionen ein Problem
- Rapid Storage löst dieses Problem mit einem zustandsbehafteten gRPC-Streaming-Protokoll und behält dabei die Skalierbarkeit und den Durchsatz von Object Storage bei
Stärken der Colossus-basierten Architektur
- Colossus ist ein clusterweites Dateisystem innerhalb von Google und die Basistechnologie für Hochleistungsprodukte
- Unterstützt Datenlese- und -schreibzugriffe mit extrem niedriger Latenz durch ein zustandsbehaftetes Protokoll
- Clients öffnen eine Datei und erhalten einen Handle, über den sie direkt mit den Disks kommunizieren können
- Schneller Zugriff durch ein RDMA-ähnliches Protokoll sowie Optimierungen für SSDs und paralleles Schreiben
- Geeignet für Log-Schreibvorgänge mit hohen Anforderungen an die Dauerhaftigkeit und für Streaming-Analyse-Workloads
So funktioniert das zustandsbehaftete Colossus-Protokoll
- Wird eine Datei im Append-Modus geöffnet, erzeugt der Curator einen Handle und übergibt ihn an den Client
- Die Anwendung schreibt Log-Daten an den Client, der mithilfe des Handles parallel auf mehrere Disks schreibt
- Für dauerhafte Speicherung werden die Daten auf mehrere Disks repliziert; quorum-basierte Schreibvorgänge minimieren die Latenz
Performance von Rapid Storage und Einsatzbeispiele
- Der Cloud-Storage-Client verarbeitet Authentifizierung und Metadatenzugriff beim Erzeugen des gRPC-Streams vorab
- Danach sind die Lese- und Schreibzugriffe direkt mit Colossus verbunden, wodurch extrem niedrige Latenzen erhalten bleiben
- Bis zu 20 Millionen Requests pro Sekunde pro Bucket — geeignet für große AI/ML-Workloads
-
Für AI/ML-Training optimiertes Design
- Ideal zum nicht sequentiellen Lesen großer Datendateien mit Hunderten Millionen bis Milliarden Tokens
- Zu Beginn des Trainings wird ein Stream erzeugt; parallele Bereichslesezugriffe sind dann mit extrem niedriger Latenz möglich
- Während des Trainings können Datensamples schnell bereitgestellt werden, ohne durch Storage-Latenz ausgebremst zu werden
-
Sichere und effiziente Append-Verarbeitung
- Unbegrenztes Append auf ein einzelnes Objekt möglich (innerhalb der Größenbegrenzung des Objekts)
- Über den Handle kann nach einer Unterbrechung des Streams erneut verbunden und weitergelesen oder -geschrieben werden
- Pro Objekt kann immer nur ein Stream schreiben — ein neuer Stream sperrt den vorherigen Stream transaktional
- Jedes Append gibt den Schreib-Offset explizit an und stellt so die Datenkonsistenz sicher
Integration und API von Rapid Storage
- Das SDK wird derzeit aktualisiert, um gRPC-basiertes Append zu unterstützen
- Integration in Cloud Storage FUSE, sodass auf Cloud-Storage-Buckets wie auf ein Dateisystem zugegriffen werden kann
- Ebenfalls mit Hierarchical Namespace verknüpft, um Performance und Konsistenz zu verbessern und ordnerbasierte APIs zu unterstützen
Die kombinierten Vorteile von Rapid Storage
- Extrem niedrige Latenz auf dem Niveau von Block Storage
- Hoher Durchsatz auf dem Niveau paralleler Dateisysteme
- Dazu die Skalierbarkeit und Einfachheit von Object Storage
2 Kommentare
Colossus soll ziemlich gut sein, aber ich würde gern wissen, wie diejenigen es einschätzen, die es tatsächlich intern genutzt haben.
Hacker-News-Kommentare
etcdundzookeeperloswerden