Cette page décrit Anywhere Cache, une fonctionnalité qui fournit un cache de lecture zonal basé sur SSD pour les buckets Cloud Storage. Anywhere Cache fournit une capacité de cache à la demande en ajustant automatiquement la taille du cache et la bande passante disponible en fonction de vos besoins. En raison de ses avantages, Anywhere Cache est particulièrement utile pour réduire les coûts réseau associés aux charges de travail axées sur les lectures.
Consultez Créer et gérer des caches pour savoir comment créer et gérer des caches dans Anywhere Cache.
Présentation
Anywhere Cache vous permet de créer des caches dans la même zone que vos charges de travail. Lorsque vous créez un cache dans une zone, les requêtes de lecture de données provenant de la zone sont traitées par le cache plutôt que par le bucket. Chaque cache dessert les clients de la même zone que le cache. Les données ne sont ingérées dans le cache à partir de votre bucket que lorsqu'elles sont lues par une VM située dans la même zone que le cache. Les métadonnées ne sont pas mises en cache, et les requêtes de métadonnées d'objets sont traitées par le bucket plutôt que par le cache.
Lorsque vous créez un cache pour un bucket, il doit être créé dans une zone située dans l'emplacement de votre bucket. Par exemple, si votre bucket se trouve dans la région us-east1
, vous pouvez créer un cache dans us-east1-b
, mais pas dans us-centra1-c
. Si votre bucket se trouve dans la zone birégionale ASIA
, vous pouvez créer un cache dans n'importe quelle zone qui compose les régions asia-east1
et asia-southeast1
. Pour obtenir la liste des zones, consultez la section Régions et zones de la documentation Compute Engine.
Pour chaque bucket, vous pouvez créer un cache par zone. Par exemple, si votre bucket se trouve dans la zone multirégionale US
et que vos VM Compute Engine s'exécutent dans les zones us-east1-b
et us-central1-a
, vous pouvez créer un cache dans us-east1-b
et un autre dans us-central1-a
.
Anywhere Cache est un service entièrement géré qui renvoie toujours des données cohérentes.
Avantages
Le cache Anywhere vous aide de deux manières principales:
Accédez plus rapidement aux données: Anywhere Cache place vos données sur des appareils de stockage hautes performances à proximité des ressources de calcul. Le chemin réseau plus court et les appareils hautes performances permettent à vos charges de travail d'obtenir un débit plus élevé, d'effectuer des lectures plus rapidement et de réduire la latence de lecture au premier octet.
Évitez les frais de transfert de données multirégionaux: vous pouvez utiliser Anywhere Cache pour éviter les frais de transfert de données pour d'autres produits tels que Compute Engine lorsque vous utilisez des buckets multirégionaux pour interroger les données Cloud Storage.
Quand utiliser Anywhere Cache ?
Anywhere Cache est particulièrement adapté pour mettre en cache des données qui changent rarement et sont lues fréquemment, telles que les données utilisées pour entraîner des modèles de ML ou exécuter des charges de travail d'analyse.
Imaginons que vous entraîniez un modèle d'IA sur de nombreux nœuds Google Kubernetes Engine, qui lisent tous de manière répétée les données stockées dans vos buckets Cloud Storage et s'exécutent dans la même zone. Lorsque vous créez un cache dans la zone où votre charge de travail s'exécute, il fournit une bande passante supplémentaire et vous aide à éviter les frais de transfert de données associés à la lecture de données dans des buckets multirégionaux. Vous pouvez ainsi exécuter des charges de travail plus importantes et évolutives plus efficacement.
Pays acceptés
Vous pouvez créer des caches dans des zones spécifiques tant que la capacité est disponible. Si la capacité de création d'un cache n'est pas disponible, le service Anywhere Cache continue de tenter de créer un cache jusqu'à ce que la capacité soit disponible ou que le processus de création soit interrompu par l'utilisateur. La capacité peut rester indisponible pendant une longue période.
Pour chaque bucket, vous pouvez créer un cache par zone au maximum. Par exemple, si un bucket se trouve dans la région us-east1
, vous pouvez créer un cache dans us-east1-b
et un autre dans us-east1-c
. Si un bucket se trouve dans une région multirégionale qui englobe us-central1
et us-east1
, vous pouvez créer un cache dans us-central1-a
et un autre dans us-east1-b
.
Vous pouvez utiliser Anywhere Cache dans les zones suivantes. Ces zones peuvent être utilisées en fonction du type d'emplacement de votre bucket.
Zone géographique | Emplacement | ||||
---|---|---|---|---|---|
Nom de la zone | Région | Birégional | Multirégional | Emplacement birégional personnalisé | |
Asie | |||||
asia-east1-a |
|||||
asia-east1-b |
|||||
asia-east1-c |
|||||
asia-northeast1-a |
|||||
asia-northeast1-b |
|||||
asia-northeast1-c |
|||||
asia-southeast1-a |
|||||
asia-southeast1-b |
|||||
asia-southeast1-c |
|||||
Europe | |||||
europe-north1-a |
|||||
europe-north1-b |
|||||
europe-north1-c |
|||||
europe-west1-b |
|||||
europe-west1-c |
|||||
europe-west1-d |
|||||
europe-west4-a |
|||||
europe-west4-b |
|||||
europe-west4-c |
|||||
europe-west6-a |
|||||
europe-west6-b |
|||||
États-Unis | |||||
us-central1-a |
|||||
us-central1-b |
|||||
us-central1-c |
|||||
us-central1-f |
|||||
us-east1-a |
|||||
us-east1-b |
|||||
us-east1-c |
|||||
us-east1-d |
|||||
us-east4-a |
|||||
us-east4-b |
|||||
us-east4-c |
|||||
us-east5-a |
|||||
us-east5-b |
|||||
us-east5-c |
|||||
us-west1-a |
|||||
us-west1-b |
|||||
us-west1-c |
|||||
us-west4-a |
|||||
us-west4-b |
|||||
us-west4-c |
Outil de recommandations pour Anywhere Cache
L'outil de recommandation Anywhere Cache fournit des recommandations et des insights pour créer des caches en paires de zones et buckets en analysant votre utilisation et votre stockage de données. Pour obtenir une présentation et des instructions sur l'utilisation de l'outil de recommandation Anywhere Cache, consultez Outil de recommandation Anywhere Cache.
Opérations de cache
Cette section décrit les opérations que vous pouvez effectuer sur les caches Anywhere Cache. Certaines opérations sont asynchrones et renvoient une opération de longue durée, tandis que d'autres sont synchrones, où les opérations sont effectuées immédiatement et renvoient une ressource AnywhereCache.
Créer un cache
Lorsque vous créez un cache, vous pouvez configurer les propriétés suivantes:
La valeur TTL (Time to live) correspond à la durée maximale pendant laquelle un fragment de données reste dans le cache à partir de la dernière lecture. Par exemple, si le TTL est défini sur 24 heures, un bloc de données lu pour la dernière fois à 11h le lundi sans lecture ultérieure sera supprimé du cache à 11h le mardi.
Vous pouvez définir une valeur TTL comprise entre 1 heure et 7 jours. Si cette valeur n'est pas spécifiée, la valeur par défaut est de 24 heures.
La règle d'admission détermine si le cache ingère les données lors du premier échec ou du deuxième échec. L'ingestion lors du deuxième échec vous permet d'ingérer des données dans le cache uniquement lorsqu'elles sont lues une deuxième fois dans le délai TTL que vous avez spécifié. L'ingestion lors du deuxième défaut de cache vous permet de réduire les coûts liés à l'utilisation de Anywhere Cache en vous assurant de ne mettre en cache que les objets lus plusieurs fois, mais elle réduit également le taux de succès du cache.
Si aucune valeur n'est spécifiée, la stratégie d'admission par défaut est l'ingestion lors du premier échec.
Lorsque vous créez un cache, celui-ci passe à l'état CRÉATION pendant sa création, puis à l'état EXÉCUTION lorsqu'il est en cours d'exécution. L'opération de création du cache peut prendre jusqu'à 48 heures, après quoi l'opération expire.
L'API AnywhereCaches Create est asynchrone. Une opération de création entraîne le retour d'une opération de longue durée. L'opération de longue durée fournit l'état de l'opération de création et vous permet de l'annuler avant qu'elle ne soit terminée.
Mettre à jour un cache
Vous pouvez mettre à jour la valeur TTL ou la règle d'admission d'un cache dans un état RUNNING (EN COURS D'EXÉCUTION).
Lorsqu'un cache est en cours de mise à jour, la valeur du champ pending_update
est true
. Tant que le champ pending_update
renvoie true
, le cache ne peut plus être mis à jour.
Un cache à l'état CRÉATION, MIS EN PAUSE ou DÉSACTIVÉ ne peut pas être mis à jour. L'API AnywhereCaches Update est asynchrone et renvoie une opération de longue durée.
Une fois la mise à jour du TTL d'un cache terminée, la nouvelle valeur s'applique immédiatement aux données nouvellement ingérées et ne s'applique aux données existantes que lorsqu'elles sont lues. Cela signifie que les données existantes dans le cache conservent l'ancienne valeur TTL jusqu'à ce qu'elles soient lues ou éjectées en raison de l'expiration de la valeur TTL.
Obtenir un cache
Lorsque vous obtenez un cache, Anywhere Cache renvoie l'état et la configuration de l'instance de cache. L'API Get AnywhereCaches est synchrone et renvoie une ressource AnywhereCache.
Répertorier les caches
Vous pouvez renvoyer une liste des caches associés à un bucket donné. Vous pouvez renvoyer la liste des caches de manière paginatée.
L'API AnywhereCaches List est synchrone et renvoie une liste de ressources AnywhereCache.
Suspendre un cache
Vous pouvez suspendre un cache pour arrêter l'ingestion des données d'un cache qui est à l'état RUNNING (EN COURS D'EXÉCUTION). Lorsqu'un cache est à l'état EN PAUSE, vous pouvez toujours lire les données existantes à partir du cache, mais vous ne pouvez pas ingérer de nouvelles données dans le cache. La lecture de données existantes à partir du cache réinitialise la valeur TTL des données dans le cache.
Lorsque vous réactivez un cache à l'état PAUSED (En pause), il passe à l'état RUNNING (En cours d'exécution).
L'API Pause AnywhereCaches est synchrone et renvoie une ressource AnywhereCache.
Réactiver un cache
Vous pouvez reprendre les caches qui sont à l'état PAUSED (SUSPENDU) ou DISABLED (DÉSACTIVÉ), à condition que le cache désactivé se trouve dans le délai de grâce d'une heure. Après le délai de grâce d'une heure, l'opération de reprise est effectuée dans la mesure du possible, car le cache peut être supprimé à tout moment après le délai de grâce. Une fois qu'un cache a été repris, il passe à l'état RUNNING (EN COURS D'EXÉCUTION).
L'API AnywhereCaches Resume est synchrone et renvoie une ressource AnywhereCache.
Désactiver un cache
Vous pouvez désactiver un cache pour le supprimer définitivement de la configuration de votre bucket. Lorsque vous désactivez un cache, il passe à l'état DISABLED (DÉSACTIVÉ). Dans cet état, vous pouvez toujours lire les données existantes à partir du cache, mais vous ne pouvez pas insérer de nouvelles données dans le cache.
Une fois un cache désactivé, vous disposez d'un délai de grâce d'une heure pendant lequel vous pouvez annuler la désactivation en réactivant le cache. Passé ce délai d'une heure, le cache est supprimé. Lorsque le cache est supprimé, toutes les données qu'il contient sont supprimées et le cache est supprimé du bucket.
Pendant la période d'une heure avant la suppression du cache, vous pouvez rétablir l'état DÉSACTIVÉ en le réactivant. Le cache reprend alors son état EN COURS D'EXÉCUTION.
L'API AnywhereCaches Disable est synchrone et renvoie une ressource AnywhereCache.
Taille du cache et bande passante limitent l'autoscaling
Anywhere Cache fournit un stockage temporaire dans le cache et une bande passante qui évoluent en fonction de vos besoins. Pour en savoir plus sur les limites de taille et de bande passante pour Anywhere Cache, consultez la section Quotas et limites pour Cloud Storage.
Contrôle des coûts
Voici quelques conseils que vous pouvez suivre pour réduire les coûts d'exécution d'un cache:
Sélection de bucket: vous ne devez créer des caches que pour les buckets contenant les données que vous souhaitez mettre en cache.
Sélection de zone: vous ne devez créer des caches que dans les zones où votre charge de travail bénéficiera de la mise en cache.
Ingestion à la deuxième lecture: vous pouvez spécifier que les données ne sont ingérés qu'à la deuxième lecture, et non à la première, ce qui permet de s'assurer que le cache ne stocke que les données lues plusieurs fois.
Paramètre TTL: vous devez spécifier la valeur TTL minimale dont vous avez besoin pour stocker des données dans le cache. Le TTL peut être modifié sans interruption.
Mettre le cache en pause: vous pouvez mettre un cache en pause pour arrêter l'ingestion des données et les frais d'ingestion de cache associés. La suspension du cache prend immédiatement effet. Vous pouvez suspendre un cache jusqu'à ce que toutes les données soient supprimées une fois la valeur TTL spécifiée écoulée. Lorsque toutes les données sont supprimées, les frais de stockage ne vous sont plus facturés.
Désactiver le cache: vous pouvez désactiver un cache pour le supprimer définitivement du service et arrêter l'accumulation de tous les frais de cache associés.
Limites et restrictions
Vous ne pouvez pas supprimer un bucket tant que tous les caches associés n'ont pas été supprimés.
Anywhere Cache n'est pas un stockage durable, et les données peuvent être supprimées du cache dans différents scénarios. Par exemple, lorsque le cache est redimensionné automatiquement pour s'assurer que suffisamment de ressources sont disponibles pour vos charges de travail. Dans ce scénario, certaines données peuvent être supprimées selon un algorithme de LRU (least recently used) jusqu'à ce que le service Anywhere Cache ait terminé d'augmenter la taille du cache.
Dans tous les cas, vos données restent stockées de manière sécurisée dans votre bucket source. Lorsque des données sont supprimées du cache pour d'autres raisons que l'expiration du TTL, le service Anywhere Cache tente de réingérer les données dans le cache de manière transparente et sans frais pour vous. Si les données ne peuvent pas être réingérées de manière transparente ou si elles ont été supprimées en raison de l'expiration du TTL, le service Anywhere Cache réingère les données lors de la première ou de la deuxième lecture.
Ressources temporairement insuffisantes
Les sections suivantes décrivent le comportement du cache Anywhere lorsqu'une pénurie de ressources temporaire se produit, c'est-à-dire qu'il n'y a pas assez de capacité SSD ou de capacité de diffusion dans une zone spécifiée pour créer un cache ou augmenter sa taille.
Échec de la création d'un cache
Anywhere Cache peut ne pas réussir à créer de cache dans une zone spécifique en raison d'un manque de capacité SSD ou de ressources de débit de service, ce qui entraîne un manque temporaire de ressources. Pendant cette période, Anywhere Cache tente de créer le nouveau cache pendant 48 heures maximum. Si des ressources deviennent disponibles dans un délai de 48 heures, Anywhere Cache termine la requête de création de cache. Si les ressources ne deviennent pas disponibles sous 48 heures, la requête de création de cache échoue. Pour éviter toute interruption de la mise en cache, vous pouvez annuler manuellement la requête de création de cache et en créer un autre dans une zone ou une région différente où la capacité est peut-être disponible.
Pour surveiller la création de cache en cas de pénurie de ressources temporaire, consultez la documentation sur le cache Anywhere pour utiliser des opérations de longue durée.
Échec de l'augmentation de la taille du cache
Anywhere Cache peut ne pas réussir à augmenter la taille du cache en raison d'un manque temporaire de ressources dans deux scénarios:
Lorsque la capacité SSD n'est pas suffisante pour augmenter la taille de votre cache dans la zone spécifiée. Pour en savoir plus, consultez la section Capacité SSD insuffisante.
En cas de pénurie temporaire de ressources de diffusion du débit dans une zone pour ajuster la limite de bande passante du cache. Pour en savoir plus, consultez la section Capacité de diffusion insuffisante.
Capacité du SSD insuffisante
Bien que le cache Anywhere propose une augmentation automatique de la taille du cache à la demande, cette augmentation dépend de la disponibilité de la capacité SSD. Si la capacité SSD n'est pas disponible lorsque la requête d'augmentation automatique de la taille du cache est envoyée, Anywhere Cache continue d'envoyer la requête jusqu'à ce que la pénurie de ressources temporaire prenne fin ou qu'une augmentation de la taille du cache ne soit plus nécessaire.
En cas de pénurie de ressources temporaire, de nouvelles données sont ingérées et les données existantes du cache sont supprimées en fonction de l'utilisation la moins récente pour s'assurer qu'il y a suffisamment d'espace dans le cache pour les nouvelles données. Les caches suffisamment volumineux pour stocker la plupart des données actives ont peu ou pas d'impact sur les métriques de cache. Les caches dont la capacité est inférieure à la quantité de données actives peuvent supprimer des données et réingérer les mêmes données plus souvent que les caches non affectés par les pénuries de ressources. Lorsque la taille réelle de votre cache est beaucoup plus petite que la capacité requise, vous pouvez rencontrer le comportement lié à la pénurie de ressources suivant:
Limite de bande passante du cache plus faible, débit du cache plus faible, consommation de quota de bande passante de transfert de données plus élevée et impact possible sur d'autres métriques.
La facturation peut être affectée de différentes manières:
Augmentation des frais d'ingestion du cache
Réduction des frais de stockage du cache
Réduction des frais de transfert de données vers le cache
Réduction des frais liés aux opérations de transfert de données de cache
Augmentation des frais de transfert de données multirégionaux
Augmentation des frais pour les opérations de classe B
Pour obtenir les meilleurs résultats en cas de pénurie de ressources temporaire, nous vous recommandons de surveiller vos caches et de suspendre le cache ou la charge de travail en fonction de vos besoins.
Capacité de diffusion insuffisante
Une pénurie de limite de bande passante du cache (CBL) peut se produire temporairement lors d'une augmentation de la taille du cache lorsque les ressources de service de débit dans une zone spécifique sont insuffisantes pour faire évoluer la limite de bande passante du cache des caches existants à 20 Gbit/s par Tio. En cas de pénurie de CBL, Anywhere Cache n'autorise pas la CBL du cache à évoluer à 20 Gbit/s par To de données, mais le cache continue de répondre aux requêtes de lecture. Les demandes d'augmentation du CBL sont évaluées au cas par cas. En cas de pénurie de CBL, vous pouvez constater une augmentation de la consommation de bande passante de sortie.
Pour obtenir les meilleurs résultats en cas de pénurie de ressources temporaire, nous vous recommandons de surveiller vos caches et de suspendre le cache ou la charge de travail en fonction de vos besoins.