Anywhere Cache

Nesta página, descrevemos o Anywhere Cache, um recurso que oferece um cache de leitura zonal com suporte a SSD para buckets do Cloud Storage. O Anywhere Cache oferece capacidade de cache sob demanda dimensionando automaticamente o cache e a largura de banda disponível para atender às suas necessidades. Devido aos benefícios, o Anywhere Cache é especialmente útil para reduzir os custos de rede associados a cargas de trabalho com muitas leituras.

Consulte Criar e gerenciar caches para saber como criar e gerenciar caches no Anywhere Cache.

Visão geral

Com o Anywhere Cache, é possível criar caches na mesma zona das cargas de trabalho. Quando você cria um cache em uma zona, as solicitações de leitura de dados originadas dessa zona são processadas pelo cache em vez do bucket. Cada cache atende clientes na mesma zona que ele. Os dados só serão ingeridos no cache do seu bucket quando forem lidos por uma VM que reside na mesma zona do cache. Os metadados não são armazenados em cache, e as solicitações de metadados de objetos são processadas pelo bucket em vez do cache.

Ao criar um cache para um bucket, ele precisa ser criado em uma zona dentro do local do bucket. Por exemplo, se o bucket estiver localizado na região us-east1, você poderá criar um cache em us-east1-b, mas não em us-centra1-c. Se o bucket estiver localizado na birregional ASIA, você poderá criar um cache em qualquer uma das zonas que compõem as regiões asia-east1 e asia-southeast1. Para ver uma lista de zonas, consulte Regiões e zonas na documentação do Compute Engine.

Para cada bucket, é possível criar um cache por zona. Por exemplo, se o bucket estiver localizado na multirregião US e as VMs do Compute Engine estiverem sendo executadas nas zonas us-east1-b e us-central1-a, você poderá criar um cache em us-east1-b e outro em us-central1-a.

O Anywhere Cache é um serviço totalmente gerenciado e sempre retorna dados consistentes.

Para preços do uso do Anywhere Cache, consulte Preços do Anywhere Cache.

Vantagens

Ao armazenar seus dados em cache com o Anywhere Cache, você tem os seguintes benefícios:

  • Acessar dados mais rapidamente: o Anywhere Cache colocaliza seus dados na mesma zona que os recursos de computação e é totalmente apoiado por SSD. Isso permite que suas cargas de trabalho tenham até 2,5 TB/s de capacidade e reduz a latência para leituras mais rápidas.

  • Evite taxas de transferência de dados multirregionais: como seus dados são veiculados do cache, é possível usar o Anywhere Cache para evitar taxas de transferência de dados associadas à leitura de dados de buckets multirregionais.

  • Evite taxas de recuperação: as taxas de recuperação para buckets em Nearline Storage, Coldline Storage e Archive Storage não se aplicam a leituras de dados do cache.

  • Acumule custos menores com operações de leitura: as operações de leitura veiculadas pelo Anywhere Cache têm preços menores do que as operações de classe B veiculadas por um bucket no armazenamento Standard.

  • Escalonamento automático do tamanho do cache: o cache dinâmico de SSD do Anywhere Cache é escalonado automaticamente com base no uso, sem que você precise especificar um tamanho de cache.

  • Use caches de maneira eficiente: o Anywhere Cache pode ser ativado em buckets sem exigir mudanças nos aplicativos ou APIs atuais. Os dados armazenados no cache em qualquer lugar são altamente consistentes.

Para detalhes sobre preços, consulte Preços do Anywhere Cache. Para informações sobre cotas, consulte Cotas do Anywhere Cache.

Quando usar o Anywhere Cache?

O cache em qualquer lugar é mais adequado para armazenar dados que são alterados com pouca frequência e lidos com frequência, como os usados para treinar modelos de ML ou executar cargas de trabalho de análise.

Suponha que você esteja treinando um modelo de IA em vários nós do Google Kubernetes Engine, todos lendo repetidamente dados armazenados nos seus buckets do Cloud Storage e executados na mesma zona. Ao criar um cache na zona em que sua carga de trabalho está sendo executada, ele oferece largura de banda extra e ajuda a evitar as taxas de transferência de dados associadas à leitura de dados em buckets multirregionais, permitindo que você execute cargas de trabalho maiores e escalonadas com mais eficiência.

Locais suportados

Os caches podem ser criados em zonas específicas, desde que haja capacidade disponível. Se a capacidade para criar um cache não estiver disponível, o serviço de cache em qualquer lugar continuará tentando criar um cache até que a capacidade fique disponível ou o processo de criação seja cancelado pelo usuário. A capacidade pode ficar indisponível por um longo período.

Para cada bucket, é possível criar no máximo um cache por zona. Por exemplo, se um bucket estiver localizado na região us-east1, você poderá criar um cache em us-east1-b e outro em us-east1-c. Se um bucket estiver em uma multirregião que abrange us-central1 e us-east1, você poderá criar um cache em us-central1-a e outro em us-east1-b.

É possível usar o Anywhere Cache nas seguintes zonas. Essas zonas podem ser usadas dependendo do tipo de local do bucket.

Área geográfica Local
Nome da zona Região Birregional Multirregional Birregião personalizada
Ásia
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
Europa
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
Estados Unidos
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

Recomendador do Anywhere Cache

O recomendador do Anywhere Cache oferece recomendações e insights para criar caches em pares de bucket e zona ao analisar seu uso de dados e armazenamento. Para informações gerais e instruções sobre como usar o Recomendador do Anywhere Cache, consulte Recomendador do Anywhere Cache.

Operações de cache

Esta seção descreve as operações que podem ser realizadas nos caches do Anywhere Cache. Algumas operações são assíncronas e retornam uma operação de longa duração, enquanto outras são síncronas, em que as operações são feitas imediatamente e retornam um recurso AnywhereCache.

Criar um cache

Ao criar um cache, é possível configurar as seguintes propriedades:

  • O time to live (TTL) é o tempo máximo que um bloco de dados permanece no cache desde a última leitura. Por exemplo, se o TTL for definido como 24 horas, um bloco de dados lido pela última vez às 11h de segunda-feira sem leituras subsequentes será removido do cache às 11h de terça-feira.

    É possível definir um TTL entre 1 hora e 7 dias. Se não for especificado, o TTL será de 24 horas por padrão.

  • A política de admissão determina se o cache ingere dados na primeira ou na segunda falha. A ingestão na segunda falha permite ingerir dados no cache somente quando eles são lidos uma segunda vez dentro do TTL especificado. A ingestão no segundo erro permite reduzir o custo de usar o Anywhere Cache, garantindo que você só armazene em cache objetos lidos mais de uma vez, mas também reduz a taxa de ocorrência em cache.

    Se não for especificado, a política de admissão será definida como ingestão na primeira falha.

Quando você cria um cache, ele entra no estado CREATING enquanto está sendo criado e entra no estado RUNNING quando começa a ser executado ativamente. A operação de criação de cache pode levar até 48 horas. Depois disso, ela vai expirar.

A API AnywhereCaches Create é assíncrona. Uma operação de criação faz com que uma operação de longa duração seja retornada. A operação de longa duração fornece um status da operação de criação e permite cancelar a operação antes que ela seja concluída.

Atualizar um cache

É possível atualizar o TTL ou a política de admissão de um cache no estado EM EXECUÇÃO. Quando um cache está sendo atualizado, o campo pending_update é avaliado como true. Enquanto o campo pending_update for avaliado como true, o cache não poderá ser atualizado novamente.

Não é possível atualizar um cache no estado CREATING, PAUSED ou DISABLED. A API AnywhereCaches Update é assíncrona e retorna uma operação de longa duração.

Quando o TTL de um cache termina de ser atualizado, o novo TTL é aplicado imediatamente aos dados recém-ingeridos e somente aos dados atuais quando eles são lidos. Isso significa que os dados atuais no cache mantêm o TTL antigo até serem lidos ou removidos devido à expiração do TTL.

Receber um cache

Quando você recebe um cache, o Anywhere Cache retorna o estado e a configuração da instância de cache. A API Get do AnywhereCaches é síncrona e retorna um recurso AnywhereCache.

Listar caches

É possível retornar uma lista de caches associados a um determinado bucket. A API List do AnywhereCaches é síncrona e oferece suporte à paginação.

Pausar um cache

É possível pausar um cache para interromper a ingestão de dados de um cache no estado RUNNING. Quando um cache está no estado PAUSADO, ainda é possível ler os dados existentes, mas não ingerir novos dados. A leitura de dados atuais do cache redefine o TTL dos dados no cache.

Quando você retoma um cache no estado PAUSADO, ele entra no estado EM EXECUÇÃO.

A API Pause do AnywhereCaches é síncrona e retorna um recurso AnywhereCache.

Retomar um cache

É possível retomar caches que estejam no estado PAUSADO ou DESATIVADO, desde que o cache desativado esteja dentro do período de carência de uma hora. Após o período de carência de uma hora, a operação de retomada é feita com o máximo de esforço, já que o cache pode ser excluído a qualquer momento após o período de carência. Depois que um cache é retomado, ele entra no estado EM EXECUÇÃO.

A API Resume do AnywhereCaches é síncrona e retorna um recurso AnywhereCache.

Desativar um cache

É possível desativar um cache para remover permanentemente o cache da configuração do bucket. Quando você desativa um cache, ele entra no estado DISABLED. Durante esse estado, ainda é possível ler dados atuais do cache, mas não ingerir novos dados nele.

Depois de desativar um cache, há um período de carência de uma hora em que é possível cancelar a desativação retomando o cache. Após esse período de carência de uma hora, o cache é excluído. Quando o cache é excluído, todos os dados dentro dele são removidos, e o cache é removido do bucket.

Durante o período de uma hora antes da exclusão, é possível reverter o estado DISABLED retomando o cache, que volta ao estado RUNNING.

A API AnywhereCaches Disable é síncrona e retorna um recurso AnywhereCache.

Escalonamento automático do tamanho do cache e do limite de largura de banda

O Anywhere Cache oferece armazenamento em cache temporário e largura de banda que escalonam verticalmente e reduzem de acordo com suas necessidades. Para saber mais sobre os limites de tamanho e largura de banda do Anywhere Cache, consulte Cotas e limites do Cloud Storage.

Controle de custos

Confira algumas dicas para minimizar os custos de execução de um cache:

  • Seleção de bucket: crie caches apenas para buckets que contenham dados que você quer armazenar em cache.

  • Seleção de zona: crie caches apenas em zonas em que sua carga de trabalho se beneficiará do armazenamento em cache.

  • Ingestão na segunda leitura: você pode especificar que os dados só sejam ingeridos na segunda leitura, e não na primeira. Isso ajuda a garantir que o cache armazene apenas dados lidos mais de uma vez.

  • Configuração de TTL: especifique o TTL mínimo necessário para armazenar dados no cache. O TTL pode ser alterado sem interrupções.

  • Pausar o cache: é possível pausar um cache para interromper a ingestão de dados e as taxas associadas. A pausa do cache tem um efeito imediato. Você pode pausar um cache até que todos os dados sejam removidos após o fim do TTL especificado. Quando todos os dados são removidos, você não paga mais taxas de armazenamento de dados.

  • Desativar o cache: é possível desativar um cache para removê-lo permanentemente do serviço e interromper o acúmulo de todas as taxas associadas.

Limitações e restrições

  • Não é possível excluir um bucket até que todos os caches associados a ele sejam excluídos.

  • Ao realizar operações de criação, desativação, pausa, retomada ou atualização de cache, limite a taxa de operações a não mais de uma operação por segundo. Realizar mais de uma operação por segundo pode resultar em falhas.

  • O Anywhere Cache não é um armazenamento durável, e os dados podem ser removidos do cache em vários cenários. Um cenário é quando o cache é redimensionado automaticamente para garantir que recursos suficientes estejam disponíveis para suas cargas de trabalho. Nesse cenário, alguns dados podem ser removidos de acordo com um algoritmo de uso menos recente (LRU, na sigla em inglês) até que o serviço Anywhere Cache termine de aumentar o tamanho do cache.

    Em qualquer caso, seus dados permanecem armazenados com segurança no bucket de origem. Quando os dados são removidos do cache por motivos diferentes da expiração do TTL, o serviço Anywhere Cache tenta ingerir os dados novamente no cache de forma transparente e sem custo para você. Se os dados não puderem ser ingeridos novamente de forma transparente ou forem descartados devido ao vencimento do TTL, o serviço de cache em qualquer lugar vai ingerir os dados novamente na primeira ou segunda leitura.

  • O cache em qualquer lugar não pode ser usado para veicular dados de solicitações de leitura de objetos emitidas pelo BigQuery. Quando você usa o BigQuery para consultar dados em um bucket do Cloud Storage como uma tabela externa, os dados são veiculados do bucket e não são ingeridos no cache, mesmo que o bucket tenha um cache ativado.

  • As recomendações e os insights gerados pelo recomendador do Anywhere Cache não podem ser lidos usando o BigQuery.

Solução de problemas de escassez temporária de recursos

As seções a seguir descrevem como solucionar problemas quando ocorre uma escassez temporária de recursos, em que não há capacidade de SSD ou de serviço suficiente em uma zona especificada para criar um cache, aumentar o tamanho ou o limite de largura de banda dele.

Falha ao criar um novo cache

O Anywhere Cache pode não criar um novo cache em uma zona específica devido à falta de capacidade de SSD ou recursos de serviço de capacidade, o que resulta em uma escassez temporária de recursos. Durante esse período, o Anywhere Cache tenta criar o novo cache por até 48 horas. Se os recursos ficarem disponíveis dentro do período de 48 horas, o Anywhere Cache vai concluir a solicitação de criação de cache. Se os recursos não ficarem disponíveis dentro do período de 48 horas, a solicitação de criação de cache vai falhar.

Como resolver problemas: para evitar interrupções no seu armazenamento em cache, cancele manualmente a operação de criação de cache e crie um novo cache em uma zona diferente que possa ter capacidade disponível. Para monitorar ou cancelar uma operação de criação de cache, consulte Como usar operações de longa duração.

Não foi possível aumentar o tamanho do cache

O Anywhere Cache pode não aumentar o tamanho de um cache quando a quantidade necessária de capacidade de SSD não está disponível na zona do cache.

Embora o Anywhere Cache ofereça aumentos automáticos de tamanho do cache sob demanda, eles dependem da disponibilidade de capacidade do SSD. Se a capacidade do SSD não estiver disponível quando a solicitação de aumento automático do tamanho do cache for feita, o Anywhere Cache vai continuar enviando a solicitação até que a escassez temporária de recursos termine ou um aumento no tamanho do cache não seja mais necessário.

Durante uma escassez temporária de recursos, novos dados são ingeridos e os dados atuais no cache são removidos com base no uso menos recente. Caches grandes o suficiente para armazenar a maior parte dos dados ativos têm pouco ou nenhum impacto nas métricas de cache. Caches com menos capacidade do que a quantidade de dados ativos podem desalojar e ingerir os mesmos dados com mais frequência do que caches não afetados por escassez de recursos. Quando o tamanho real do cache é muito menor do que a capacidade necessária, você pode notar o seguinte comportamento relacionado à falta de recursos:

  • Um limite de largura de banda de cache mais baixo, menor capacidade de processamento de cache, maior consumo de cota de largura de banda de transferência de dados e um possível impacto em outras métricas.
  • O faturamento pode ser afetado das seguintes maneiras:
    • Aumento nos custos da taxa de ingestão de cache
    • Custos reduzidos da taxa de armazenamento em cache
    • Redução de custos da taxa de saída de transferência de dados de cache
    • Custos reduzidos das taxas de operação de transferência de dados do cache
    • Aumento dos custos devido à taxa de transferência de dados multirregional
    • Aumento dos custos devido ao uso de operações de classe B

Para informações sobre essas taxas, consulte Preços do Anywhere Cache.

Como resolver problemas: para ter os melhores resultados durante uma escassez temporária de recursos, recomendamos monitorar seus caches e pausar os caches ou cargas de trabalho desnecessários com base nas suas necessidades.

Falha ao escalonar verticalmente o limite de largura de banda de um cache

Uma escassez temporária de limite de largura de banda do cache pode ocorrer durante um aumento no tamanho do cache quando os recursos de capacidade de processamento em uma zona específica são insuficientes para escalonar o limite de largura de banda do cache de caches atuais em 20 Gbps por TiB. Durante uma escassez de largura de banda de cache disponível, o Anywhere Cache não permite que o limite de largura de banda de cache seja escalonado em 20 Gbps por TiB de dados, mas o cache continua atendendo às solicitações de leitura. As solicitações de aumento no limite de largura de banda do cache são avaliadas individualmente. Durante uma escassez de largura de banda de cache disponível, talvez você note um aumento no consumo de largura de banda de saída de dados do bucket.

Como resolver problemas: para ter os melhores resultados durante uma escassez temporária de recursos, recomendamos monitorar seus caches e pausar os caches ou cargas de trabalho desnecessários com base nas suas necessidades.

A seguir