Cache Anywhere

Cette page décrit Anywhere Cache, une fonctionnalité qui fournit un cache en lecture zonal basé sur SSD pour les buckets Cloud Storage. Anywhere Cache fournit une capacité de cache à la demande en dimensionnant automatiquement le cache et la bande passante disponible pour répondre à vos besoins. Grâce à ses avantages, Anywhere Cache est particulièrement utile pour réduire les coûts réseau associés aux charges de travail à forte intensité de lecture.

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 demandes de lecture de données provenant de la zone sont traitées par le cache au lieu du bucket. Chaque cache dessert les clients de la même zone que le cache. Les données ne seront ingérées dans le cache à partir de votre bucket que lorsqu'elles seront lues par une VM résidant 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'objet sont traitées par le bucket au lieu du 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 des régions asia-east1 et asia-southeast1. Pour obtenir la liste des zones, consultez Régions et zones dans la documentation Compute Engine.

Pour chaque bucket, vous pouvez créer un cache par zone. Par exemple, si votre bucket se trouve dans la multirégion 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.

Pour connaître les tarifs d'Anywhere Cache, consultez la page Tarifs d'Anywhere Cache.

Avantages

Lorsque vous mettez vos données en cache avec Anywhere Cache, vous bénéficiez des avantages suivants :

  • Accédez plus rapidement à vos données : Anywhere Cache colocalise vos données dans la même zone que vos ressources de calcul et est entièrement soutenu par SSD. Cela permet à vos charges de travail d'obtenir un débit allant jusqu'à 2,5 Tbit/s et de réduire la latence pour des lectures plus rapides.

  • Évitez les frais de transfert de données multirégionaux : comme vos données sont diffusées à partir du cache, vous pouvez utiliser le cache Anywhere pour éviter les frais de transfert de données associés à la lecture de données à partir de buckets multirégionaux.

  • Éviter les frais de récupération : les frais de récupération pour les buckets de stockage Nearline, Coldline et Archive ne s'appliquent pas aux lectures de données à partir du cache.

  • Réduisez les coûts des opérations de lecture : les opérations de lecture effectuées à partir du cache Anywhere sont facturées moins cher que les opérations de classe B effectuées à partir d'un bucket dans le stockage Standard.

  • Ajustez automatiquement la taille de votre cache : la mise en cache dynamique sur SSD d'Anywhere Cache s'adapte automatiquement en fonction de l'utilisation, sans que vous ayez besoin de spécifier une taille de cache.

  • Utilisez les caches de manière efficace : vous pouvez activer Anywhere Cache sur les buckets existants sans avoir à modifier vos applications ni vos API. Les données stockées dans le cache Anywhere sont fortement cohérentes.

Pour en savoir plus sur la tarification, consultez Tarifs Anywhere Cache. Pour en savoir plus sur les quotas, consultez Quotas Anywhere Cache.

Quand utiliser Anywhere Cache ?

Le cache Anywhere est idéal pour mettre en cache les données qui sont rarement modifiées et fréquemment lues, comme 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 à plusieurs reprises 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 est exécutée, le cache 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 à plus grande échelle de manière plus efficace.

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 d'essayer de créer un cache jusqu'à ce que la capacité devienne disponible ou que le processus de création soit abandonné par l'utilisateur. Il est possible que la capacité reste indisponible pendant une longue période.

Pour chaque bucket, vous pouvez créer un cache par zone au maximum. Par exemple, si un bucket est situé 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 multirégion 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 Birégion personnalisée
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-south1-a
us-south1-b
us-south1-c
us-west1-a
us-west1-b
us-west1-c
us-west3-a
us-west3-b
us-west3-c
us-west4-a
us-west4-b
us-west4-c

Outil de recommandations Anywhere Cache

L'outil de recommandation Anywhere Cache fournit des recommandations et des insights pour créer des caches dans des paires de zones de buckets en analysant votre utilisation des données et votre stockage. Pour obtenir des informations générales 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 bloc de données reste dans le cache après la dernière lecture. Par exemple, si le TTL est défini sur 24 heures, un bloc de données qui a été lu pour la dernière fois le lundi à 11h et qui n'a pas été lu depuis sera supprimé du cache le mardi à 11h.

    Vous pouvez définir un TTL compris entre 1 heure et 7 jours. Si aucune valeur n'est spécifiée, la durée de vie 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 ou du deuxième échec. L'ingestion lors du deuxième échec vous permet d'ingérer les données dans le cache uniquement lorsque les données sont lues une deuxième fois dans le délai TTL que vous avez spécifié. L'ingestion lors du deuxième échec vous permet de réduire le coût d'utilisation d'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 de cache (hit).

    Si aucune valeur n'est spécifiée, la règle d'admission est définie par défaut sur "Ingérer en cas de premier échec".

Lorsque vous créez un cache, il passe à l'état CREATING (CRÉATION) pendant sa création, puis à l'état RUNNING (EN COURS D'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 elle expire.

L'API AnywhereCaches Create est asynchrone. Une opération de création entraîne le renvoi 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 le TTL ou la règle d'admission d'un cache à l'état RUNNING. Lorsqu'un cache est en cours de mise à jour, le champ pending_update prend la valeur true. Tant que le champ pending_update renvoie true, le cache ne peut plus être mis à jour.

Il est impossible de mettre à jour un cache dont l'état est CREATING, PAUSED ou DISABLED. L'API AnywhereCaches Update est asynchrone et renvoie une opération de longue durée.

Lorsque la valeur TTL d'un cache a fini d'être mise à jour, la nouvelle valeur TTL s'applique immédiatement aux données nouvellement ingérées et ne s'applique aux données existantes que lorsque celles-ci sont lues. Cela signifie que les données existantes dans le cache conservent l'ancienne valeur TTL jusqu'à ce qu'elles soient lues ou supprimé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 AnywhereCaches Get est synchrone et renvoie une ressource AnywhereCache.

Lister les caches

Vous pouvez renvoyer une liste des caches associés à un bucket donné. L'API AnywhereCaches List est synchrone et compatible avec la pagination.

Suspendre un cache

Vous pouvez suspendre un cache pour arrêter l'ingestion de données d'un cache dont l'état est RUNNING (EN COURS D'EXÉCUTION). Lorsqu'un cache est à l'état SUSPENDU, vous pouvez toujours lire les données existantes du cache, mais vous ne pouvez pas y ingérer de nouvelles données. La lecture des données existantes à partir du cache réinitialise le TTL des données dans le cache.

Lorsque vous réactivez un cache à l'état EN PAUSE, il passe à l'état EN COURS D'EXÉCUTION.

L'API AnywhereCaches Pause est synchrone et renvoie une ressource AnywhereCache.

Réactiver un cache

Vous pouvez reprendre les caches qui sont à l'état SUSPENDU ou 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 au mieux, 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.

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. Dans cet état, vous pouvez toujours lire les données existantes du cache, mais vous ne pouvez pas y ingérer de nouvelles données.

Après avoir désactivé un cache, 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 de grâce 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 retiré du bucket.

Pendant l'heure qui précède la suppression du cache, vous pouvez rétablir l'état DISABLED en réactivant le cache, qui reprend alors l'état RUNNING.

L'API AnywhereCaches Disable est synchrone et renvoie une ressource AnywhereCache.

Autoscaling de la taille du cache et de la limite de bande passante

Anywhere Cache fournit un stockage de cache temporaire 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 Quotas et limites pour Cloud Storage.

Contrôle des coûts

Voici quelques conseils pour minimiser les coûts d'exécution d'un cache :

  • Sélection du 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 la 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ées qu'à la deuxième lecture, et non à la première. Cela 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 les données dans le cache. Vous pouvez modifier le TTL sans interruption.

  • Suspendre le cache : vous pouvez suspendre un cache pour arrêter l'ingestion de données et les frais d'ingestion de cache associés. La mise en veille du cache a un effet immédiat. Vous pouvez suspendre un cache jusqu'à ce que toutes les données soient supprimées une fois la valeur TTL spécifiée expirée. Lorsque toutes les données sont supprimées, les frais de stockage de données 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.

  • Lorsque vous créez, désactivez, suspendez, reprenez ou mettez à jour le cache, limitez le taux d'opérations à une opération par seconde maximum. Si vous effectuez plusieurs opérations par seconde, des échecs peuvent se produire.

  • Le cache Anywhere n'est pas un stockage durable. Les données peuvent être supprimées du cache dans différents scénarios. Par exemple, le cache peut être redimensionné automatiquement pour garantir 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 LRU (Least Recently Used, le moins récemment utilisé) jusqu'à ce que le service Anywhere Cache ait fini 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 des raisons autres que l'expiration de la valeur TTL, le service Anywhere Cache tente de les réingérer 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 ont été supprimées en raison de l'expiration de la valeur TTL, le service Anywhere Cache les réingère lors de la première ou de la deuxième lecture.

  • Le cache Anywhere ne peut pas être utilisé pour diffuser des données pour les requêtes de lecture d'objets émises par BigQuery. Lorsque vous utilisez BigQuery pour interroger des données dans un bucket Cloud Storage en tant que table externe, les données sont diffusées à partir du bucket et ne sont pas ingérées dans le cache, même si le cache est activé pour le bucket.

  • Les recommandations et les insights générés par le système de recommandation Anywhere Cache ne peuvent pas être lus à l'aide de BigQuery.

Résoudre les problèmes de pénurie temporaire de ressources

Les sections suivantes décrivent comment résoudre les problèmes liés à une pénurie temporaire de ressources, lorsque la capacité de stockage SSD ou de diffusion dans une zone spécifiée est insuffisante pour créer un cache, augmenter sa taille ou augmenter sa limite de bande passante.

Échec de la création d'un cache

Anywhere Cache peut ne pas réussir à créer un cache dans une zone spécifique en raison d'un manque de capacité SSD ou de ressources de diffusion du débit, ce qui entraîne une pénurie 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 traite la demande de création du cache. Si les ressources ne deviennent pas disponibles dans les 48 heures, la requête de création du cache échoue.

Dépannage : pour éviter toute interruption de la mise en cache, vous pouvez annuler manuellement l'opération de création du cache et en créer un dans une autre zone qui peut avoir de la capacité disponible. Pour surveiller ou annuler une opération de création de cache, consultez Utiliser des opérations de longue durée.

Échec de l'augmentation de la taille du cache

Anywhere Cache peut ne pas parvenir à augmenter la taille d'un cache lorsque la quantité requise de capacité SSD n'est pas disponible dans la zone du cache.

Bien qu'Anywhere Cache propose des augmentations automatiques de la taille du cache à la demande, celles-ci dépendent de la capacité SSD disponible. Si la capacité SSD n'est pas disponible lorsque la demande d'augmentation automatique de la taille du cache est effectuée, Anywhere Cache continue d'envoyer la demande jusqu'à ce que la pénurie temporaire de ressources prenne fin ou qu'une augmentation de la taille du cache ne soit plus nécessaire.

En cas de pénurie temporaire de ressources, de nouvelles données sont ingérées et les données existantes dans le cache sont supprimées en fonction de leur date d'utilisation la plus récente. Les caches suffisamment volumineux pour stocker la plupart des données actives n'ont que 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 évincer les données et les réingérer 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 les comportements suivants liés à une pénurie de ressources :

  • Une limite de bande passante du cache et un débit du cache inférieurs, une consommation de quota de bande passante de transfert de données plus élevée et un impact possible sur d'autres métriques
  • La facturation peut être affectée de différentes manières :
    • Augmentation des coûts liés aux frais d'ingestion du cache
    • Réduction des coûts liés aux frais de stockage du cache
    • Réduction des coûts liés aux frais de transfert de données sortantes du cache
    • Diminution des coûts liés aux frais d'opération de transfert de données sortantes du cache
    • Augmentation des coûts liés aux frais de transfert de données multirégionaux
    • Augmentation des coûts liés à l'utilisation des opérations de classe B

Pour en savoir plus sur ces frais, consultez la page Tarifs Anywhere Cache.

Dépannage : pour obtenir les meilleurs résultats en cas de pénurie temporaire de ressources, nous vous recommandons de surveiller vos caches et de mettre en veille ceux qui ne sont pas nécessaires ou les charges de travail en fonction de vos besoins.

Échec de l'augmentation de la limite de bande passante d'un cache

Une pénurie de limite de bande passante du cache peut se produire temporairement lors d'une augmentation de la taille du cache lorsque les ressources de diffusion du débit dans une zone spécifique sont insuffisantes pour mettre à l'échelle la limite de bande passante du cache des caches existants à 20 Gbit/s par Tio. En cas de pénurie de bande passante du cache, Anywhere Cache ne permet pas à la limite de bande passante du cache d'évoluer à 20 Gbit/s par Tio de données, mais le cache continue de répondre aux requêtes de lecture. Les demandes d'augmentation de la limite de bande passante du cache sont évaluées individuellement. En cas de pénurie de bande passante de cache disponible, vous constaterez peut-être une augmentation de la consommation de bande passante de sortie de données de votre bucket.

Dépannage : pour obtenir les meilleurs résultats en cas de pénurie temporaire de ressources, nous vous recommandons de surveiller vos caches et de mettre en veille ceux qui ne sont pas nécessaires ou les charges de travail en fonction de vos besoins.

Étapes suivantes