Colossus pour un stockage rapide
(cloud.google.com)> Le « protocole avec état de Colossus » est l’ingrédient secret derrière les hautes performances de Rapid Storage
- Google Cloud Storage est largement utilisé pour sa simplicité et sa scalabilité
- Les protocoles sans état existants, basés sur REST, sont faciles à utiliser, mais pour les workloads IA et gourmands en données, la latence et le manque de fonctionnalités orientées fichiers posent problème
- Rapid Storage résout ce problème en introduisant un protocole de streaming gRPC avec état, tout en conservant la scalabilité et le débit du stockage objet
Les atouts de l’architecture basée sur Colossus
- Colossus est le système de fichiers interne de Google au niveau cluster, qui sert de technologie de base pour les produits haute performance
- Il prend en charge des lectures/écritures de données à très faible latence grâce à un protocole avec état
- Le client ouvre un fichier, reçoit un handle, puis peut communiquer directement avec les disques via celui-ci
- Il permet un accès rapide grâce à un protocole similaire à RDMA, avec des optimisations SSD et des techniques d’écriture parallèle
- Il est adapté aux workloads d’écriture de logs exigeant de la durabilité ainsi qu’à l’analytique en streaming
Fonctionnement du protocole avec état de Colossus
- Lorsqu’un fichier est ouvert en mode append, le Curator génère un handle et le transmet au client
- L’application écrit les données de log vers le client, qui utilise ensuite le handle pour effectuer des écritures parallèles sur plusieurs disques
- Pour stocker les données de façon durable, celles-ci sont répliquées sur plusieurs disques, avec des écritures basées sur un quorum afin de minimiser la latence
Performances et cas d’usage de Rapid Storage
- Le client Cloud Storage anticipe l’authentification et l’accès aux métadonnées lors de la création d’un flux gRPC
- Les lectures/écritures suivantes se connectent ensuite directement à Colossus, ce qui maintient une latence extrêmement faible
- Jusqu’à 20 millions de requêtes par seconde peuvent être traitées par bucket — adapté aux workloads IA/ML à grande échelle
-
Conception optimisée pour l’entraînement IA/ML
- Idéal pour lire de manière non séquentielle de gros fichiers de données contenant des centaines de millions à des milliards de tokens
- Un flux peut être créé au démarrage de l’entraînement, puis des lectures par plage en parallèle peuvent être exécutées avec une latence extrêmement faible
- Permet d’alimenter rapidement les échantillons de données pendant l’entraînement sans latence de stockage
-
Gestion append sûre et efficace
- Un append illimité est possible sur un même objet (dans la limite de taille de l’objet)
- Grâce au handle, il est possible de reprendre la lecture/écriture après reconnexion même si le flux a été interrompu
- Un seul flux à la fois peut écrire dans un objet — un nouveau flux verrouille transactionnellement le flux précédent
- Chaque append indique l’offset d’écriture afin de garantir la cohérence des données
Intégration et API de Rapid Storage
- Les SDK sont en cours de mise à jour pour prendre en charge la fonctionnalité append basée sur gRPC
- Intégré à Cloud Storage FUSE, il permet d’accéder aux buckets Cloud Storage comme à un système de fichiers
- Il fonctionne aussi avec Hierarchical Namespace pour renforcer les performances et la cohérence, avec prise en charge d’API basées sur les dossiers
Les avantages combinés de Rapid Storage
- Une latence extrêmement faible au niveau du stockage bloc
- Un débit élevé au niveau d’un système de fichiers parallèle
- La scalabilité et la simplicité du stockage objet en plus
2 commentaires
On dit beaucoup de bien de Colossus, mais je me demande ce qu’en pensent ceux qui l’ont réellement utilisé en interne.
Discussion sur Hacker News