Bucket Rapid

Cette page décrit Rapid Bucket, une capacité qui vous permet de stocker des objets dans la classe de stockage Rapid Storage en définissant une zone comme emplacement d'un bucket. Cette approche vous permet de colocaliser votre stockage de données avec vos ressources de calcul, ce qui offre une latence considérablement plus faible et un débit plus élevé que les autres classes de stockage dans Cloud Storage. Les charges de travail dans d'autres zones et régions peuvent également accéder au bucket, avec des performances relatives à la distance réseau.

Pour créer un bucket zonal à l'aide de Rapid Bucket, consultez la page Créer des buckets zonaux. Vous pouvez afficher la liste des emplacements compatibles dans la section Zones. Pour lire et ajouter des objets dans des buckets zonaux, consultez la page Utiliser des objets dans des buckets zonaux.

Avantages

Rapid Bucket est conçu pour supprimer les goulots d'étranglement du stockage et est idéal pour vos applications les plus gourmandes en données, telles que l'IA/le ML et l'analyse de données. Rapid Bucket est compatible avec une latence inférieure à la milliseconde, un débit agrégé allant jusqu'à 15 To/s et 20 millions de requêtes par seconde (RPS). La latence ultra-faible permet une récupération instantanée des données et permet aux applications d'inférence en temps réel de fonctionner à grande échelle. Le débit massif et le RPS élevé permettent de maintenir la pleine saturation de vos clusters GPU coûteux, ce qui réduit considérablement les temps d'entraînement des modèles.

Terminologie de Rapid Bucket

La documentation Cloud Storage utilise les termes suivants :

  • Rapid Bucket : produit qui permet de créer des buckets avec un emplacement zonal et la classe de stockage Rapid Storage.

  • Rapid Storage : classe de stockage qui offre les meilleures performances d'accès aux données et d'opérations d'E/S dans Cloud Storage. Lorsque vous utilisez Rapid Bucket, vous créez un bucket qui utilise Rapid Storage. Pour en savoir plus sur Rapid Storage, consultez la page Classes de stockage.

  • Bucket zonal : bucket situé dans une zone. Les objets des buckets zonaux sont toujours stockés dans Rapid Storage et peuvent être ajoutés.

Capacités des buckets zonaux

En plus de fournir une faible latence et un débit élevé, les buckets zonaux vous permettent d'effectuer les opérations suivantes :

  • Ajouter des objets dans le bucket zonal sans effectuer une réécriture complète de l'objet

  • Ouvrir des objets et maintenir un flux pendant que vous effectuez des opérations, ce qui vous permet d'accélérer les lectures et écritures ultérieures

Cas d'utilisation

Rapid Bucket est plus adapté aux charges de travail d'IA/de ML ou à d'autres charges de travail gourmandes en données. Parmi ces charges de travail, citons la vérification, l'évaluation et la diffusion des points de contrôle des modèles, ainsi que les files d'attente de journalisation et de messagerie. Il peut également être utilisé pour diffuser des données en flux continu ou pour fournir un stockage aux bases de données.

Pour profiter pleinement de la faible latence et du haut débit fournis par Rapid Bucket, assurez-vous d'activer la connectivité directe gRPC.

Accès aux objets dans les buckets zonaux

Pour bénéficier des avantages en termes de performances d'un bucket zonal, veillez à ouvrir les objets pour la diffusion en flux continu et à maintenir un flux lorsque vous effectuez des opérations sur les objets. Lorsque vous établissez et maintenez un flux, vous pouvez effectuer des opérations de lecture ou d'écriture ultérieures sur l'objet avec une latence très faible. Par exemple, lorsque vous lisez un fichier Parquet, vous pouvez effectuer à la fois la lecture initiale des métadonnées du fichier (le pied de page) et la lecture ultérieure de lignes spécifiques dans une seule requête. Cette approche est plus efficace que l'utilisation de requêtes distinctes pour chaque étape.

Une fois établis, les flux d'objets sont conservés ouverts par défaut lorsque vous accédez à des objets de bucket zonal à l'aide de Cloud Storage FUSE ou des bibliothèques clientes Cloud Storage.

Vous pouvez ouvrir plusieurs flux de lecture vers un objet à partir d'un nombre quelconque d'hôtes. Le nombre de flux de lecture que vous pouvez établir vers un objet n'est pas limité.

Ajouter des objets

Vous pouvez ajouter des données aux objets dans les buckets zonaux. Lorsque vous ajoutez des objets, la sémantique suivante s'applique :

  • Les objets pouvant être ajoutés apparaissent dans l'espace de noms du bucket dès que vous commencez à les écrire et peuvent être lus pendant qu'ils sont encore en cours d'écriture.

  • Le nombre d'ajouts que vous pouvez effectuer à un objet ou le nombre d'octets que vous pouvez ajouter à la fois ne sont pas limités. Vous pouvez effectuer des ajouts jusqu'à ce qu'un objet atteigne sa taille maximale de 5 Tio.

  • La taille d'un objet augmente en temps réel à mesure que de nouveaux ajouts sont écrits ou vidés de manière permanente. Lorsque vous établissez un flux de lecture, vous devez prévoir un délai minimal pour la mise à jour de la taille de l'objet.

  • Les objets pouvant être ajoutés ne peuvent avoir qu'un seul rédacteur à la fois. Si un nouveau flux d'écriture est établi pour un objet qui possède déjà un flux d'écriture existant, une erreur est renvoyée par Cloud Storage au flux d'origine, et le flux d'origine ne sera plus autorisé à écrire. Le nouveau rédacteur peut reprendre l'ajout à partir du dernier décalage persistant sans autre ajout entrelacé à l'objet.

Finaliser des objets

Une fois qu'un objet est finalisé, vous ne pouvez plus l'ajouter, mais vous pouvez toujours l'écraser avec une nouvelle version. Les métadonnées d'un objet finalisé sont toujours modifiables. Par exemple, de nouveaux tags peuvent être ajoutés et l'objet peut être renommé.

Installer des buckets zonaux

Vous pouvez installer des buckets zonaux et y accéder à l'aide de Cloud Storage FUSE ou du pilote CSI Cloud Storage FUSE. Assurez-vous d'utiliser Cloud Storage FUSE version 3.7.2 ou ultérieure. Pour utiliser le pilote CSI Cloud Storage FUSE, assurez-vous que votre version de Google Kubernetes Engine est 1.35.0-gke.3047001 ou ultérieure.

Tarifs

L'utilisation de Rapid Bucket entraîne des frais de stockage, d'opérations et de mise en réseau des données. Pour en savoir plus, reportez-vous à la page Tarifs.

Limites

  • Les buckets zonaux doivent avoir l'espace de noms hiérarchique et l'accès uniforme au niveau du bucket activés.

  • Limites de Google Cloud CLI :

    • Version minimale compatible de Google Cloud CLI : la version minimale de gcloud CLI compatible avec les buckets zonaux est la version 553.0.0. Les versions antérieures ne sont pas compatibles avec les buckets zonaux. Nous vous recommandons d'utiliser la dernière version de gcloud CLI pour bénéficier des dernières fonctionnalités et corrections de bugs.

    • Visibilité des importations incomplètes : contrairement aux buckets d'autres classes de stockage, où les objets n'apparaissent dans l'espace de noms qu'une fois l'importation terminée, les objets partiellement importés dans les buckets zonaux sont immédiatement visibles. Si une commande d'importation Google Cloud CLI échoue ou est interrompue, des objets incomplets peuvent s'afficher dans votre bucket. Vous pouvez toujours reprendre ces importations en exécutant à nouveau la commande.

    • Écrasement d'objets : le comportement standard de Google Cloud CLI s'applique aux buckets zonaux. Lorsque vous écrasez un objet, si un fichier ou un objet portant le même nom existe dans la destination, les commandes Google Cloud CLI cp, mv, et rsync l'écrasent par défaut. Pour éviter les écrasements, utilisez l'option --no-clobber. Lorsque vous utilisez Google Cloud CLI, l'ajout de données à un objet existant n'est pas compatible. L'intégralité de la source doit être importée à nouveau.

    • Finalisation des objets : les objets importés dans un bucket zonal à l'aide de Google Cloud CLI peuvent parfois subir un bref délai avant que les métadonnées de l'objet ne soient entièrement synchronisées. Étant donné que Cloud Storage utilise un modèle à cohérence finale, une tentative de téléchargement d'un objet immédiatement après l'importation peut entraîner une erreur de non-concordance de hachage si les métadonnées ne sont pas encore mises à jour.

      Si un téléchargement échoue avec une erreur de non-concordance de hachage peu de temps après une importation, réessayez la commande. Le système garantit que les téléchargements réussissent entièrement ou échouent explicitement. Les téléchargements partiels ou corrompus ne se produiront pas en mode silencieux.

    • Performances de validation de la somme de contrôle : les buckets zonaux s'appuient exclusivement sur CRC32C pour la validation des données, ce qui permet au système d'effectuer une somme de contrôle par bloc et pour l'ensemble de l'importation ou du téléchargement. Par défaut, Google Cloud CLI utilise la bibliothèque Python google-crc32c, qui est pré-installée avec Google Cloud CLI. Toutefois, si vous utilisez une installation Python non groupée, vous devez installer explicitement la bibliothèque google-crc32c à partir de PyPI. Sinon, Google Cloud CLI revient au binaire gcloud-crc32c, ce qui peut entraîner des performances plus lentes pour le calcul CRC par bloc.

Incompatibilités

Les buckets zonaux ne sont pas compatibles avec les outils, produits et services suivants :

  • Outils

    • API de bibliothèque cliente qui écrivent dans un bucket standard non zonal. Si vous prévoyez d'utiliser des bibliothèques clientes pour écrire dans des buckets zonaux, vous devrez modifier votre code pour utiliser les API compatibles. Pour savoir quelles API sont compatibles, consultez les exemples de code de votre bibliothèque cliente dans la section Utiliser des objets dans des buckets zonaux.

    • Écritures utilisant gRPC qui ne sont pas BidiWriteObject. Les objets pouvant être ajoutés ne sont compatibles qu'avec l'appel RPC BidiWriteObject en mode ajout. Les autres méthodes d'écriture gRPC (telles que les écritures ponctuelles ou avec reprise) et les autres appels RPC (comme WriteObject) ne sont pas compatibles.

    • Écritures utilisant l'API JSON

    • Importations en plusieurs parties avec l'API XML

  • Protection des données et reprise après sinistre

    • Gestion des versions des objets

    • Supprimer de façon réversible

    • Réplication entre buckets

  • Gestion des données

    • Rapid Cache

    • Classe automatique

    • Verrou de bucket

    • Composer des objets

    • Obligations de conservation d'objets

    • Action SetStorageClass de la gestion du cycle de vie des objets

    • Verrou de conservation des objets

    • Relocaliser des buckets

    • Importations avec reprise

    • Réécrire des objets

    • Paiements par le demandeur

  • Contrôle des accès

    • Listes de contrôle des accès (LCA) au niveau des objets

    • Configurations CORS

    • Clé de chiffrement fournie par le client (CSEK)

    • Clés HMAC

  • Métadonnées

    • Les objets des buckets zonaux n'ont pas de hachage MD5.

    • Les propriétés de métadonnées associées aux fonctionnalités et produits non compatibles n'apparaissent pas dans la représentation de ressource d'un bucket zonal ou d'un objet pouvant être ajouté, ou ne peuvent pas être écrites. Exemple :

  • Services

    • BigQuery

Quotas

Chaque zone par projet dispose d'un quota de capacité de stockage par défaut. Chaque zone par projet dispose également d'un quota de sortie par défaut de Cloud Storage vers Google services. Pour afficher ces quotas, consultez la page Quotas et limites.

Pour savoir comment surveiller votre utilisation de la sortie de données et demander plus de bande passante, consultez la page Surveillance de l'utilisation de la bande passante.

Bonnes pratiques

Pour optimiser les performances lorsque vous utilisez des buckets zonaux avec Cloud Storage FUSE, conservez un descripteur de fichier ouvert pour les objets installés et utilisez-le pour plusieurs opérations. Cela permet d'améliorer les performances, car Cloud Storage FUSE évite d'effectuer des allers-retours réseau inutiles par lecture répétée.

Étape suivante