Esta página descreve o Anywhere Cache, um recurso que fornece 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 é particularmente útil para reduzir os custos de rede associados a cargas de trabalho com leitura pesada.
Consulte Criar e gerenciar caches para saber como criar e gerenciar caches no Anywhere Cache.
Visão geral
O Anywhere Cache permite 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 da zona são processadas pelo cache em vez do bucket. Cada cache atende clientes na mesma zona que o cache. Os dados só serão ingeridos no cache do bucket quando forem lidos por uma VM que reside na mesma zona que o 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.
Quando você cria 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 região dual ASIA
, será possível
criar um cache em qualquer zona que componha as regiões asia-east1
e asia-southeast1
. Para conferir 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 em execução 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.
Vantagens
O Anywhere Cache ajuda de duas maneiras principais:
Acesso mais rápido aos dados: o Anywhere Cache coloca seus dados em dispositivos de armazenamento de alto desempenho perto de recursos de computação. O caminho de rede mais curto e os dispositivos de alto desempenho permitem que suas cargas de trabalho tenham mais capacidade, concluam leituras mais rapidamente e reduzam a latência de tempo para o primeiro byte das leituras.
Evitar taxas de transferência de dados em várias regiões: use o Anywhere Cache para evitar taxas de transferência de dados de outros produtos, como o Compute Engine, quando você usa buckets multirregionais para consultar dados do Cloud Storage.
Quando usar o Anywhere Cache?
O Anywhere Cache é melhor usado para armazenar em cache dados que são alterados com pouca frequência e lidos com frequência, como dados usados para treinar modelos de ML ou executar cargas de trabalho de análise.
Digamos que você esteja treinando um modelo de IA em muitos nós do Google Kubernetes Engine, todos lendo repetidamente dados armazenados nos buckets do Cloud Storage e executados na mesma zona. Quando você cria um cache na zona em que a carga de trabalho está em execução, o cache fornece 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 Anywhere Cache vai continuar tentando criar um cache até que a capacidade fique disponível ou o processo de criação seja abortado pelo usuário. A capacidade pode permanecer 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 localizado em uma
multirregião que abrange us-central1
e us-east1
, será possível criar
um cache em us-central1-a
e outro em us-east1-b
.
Você pode usar o Anywhere Cache nas seguintes zonas. Essas zonas podem ser usadas dependendo do tipo de local do seu bucket.
Área geográfica | Local | ||||
---|---|---|---|---|---|
Nome da zona | Região | Birregional | Multirregional | Birregional 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-west1-a |
|||||
us-west1-b |
|||||
us-west1-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 zona de bucket analisando o uso e o armazenamento de dados. 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 você pode realizar 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 realizadas imediatamente e retornam um recurso do AnywhereCache.
Criar um cache
Ao criar um cache, você pode 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 estiver 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á definido como 24 horas.
A política de admissão determina se o cache ingere dados na primeira ou na segunda falta. A ingestão na segunda falta permite que você ingira dados no cache somente quando eles forem lidos pela segunda vez dentro do TTL especificado. A ingestão na segunda ausência permite reduzir o custo do uso do Anywhere Cache, garantindo que você armazene em cache apenas objetos que são 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 vai ser processada na primeira falha.
Quando você cria um cache, ele entra no estado CREATING à medida que é 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, o tempo da operação expira.
A API Create do AnywhereCaches é 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 que você cancele 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 em um estado EXECUTANDO.
Quando um cache está em processo de atualização, 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 em um estado CRIANDO, PAUSADO ou DESATIVADO. A API Update do AnywhereCaches é assíncrona e retorna uma operação de longa duração.
Quando o TTL de um cache termina a atualização, o novo TTL é aplicado imediatamente aos dados recém-ingeridos e só é aplicado aos dados atuais quando esses dados são lidos. Isso significa que os dados atuais no cache retêm o TTL antigo até que sejam 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 do cache. A API Get de AnywhereCaches é síncrona e retorna um recurso AnywhereCache.
Listar caches
Você pode retornar uma lista de caches associados a um bucket. Você pode retornar a lista de caches de uma forma paginada.
A API AnywhereCaches List é síncrona e retorna uma lista de recursos do AnywhereCache.
Pausar um cache
É possível pausar um cache para interromper a ingestão de dados de um cache que está em um estado EXECUÇÃO. Quando um cache está no estado PAUSED, ainda é possível ler os dados atuais, mas não é possível ingerir novos dados. A leitura de dados do cache redefine o TTL dos dados no cache.
Quando você retoma um cache em um estado PAUSADO, ele entra em um estado EXECUÇÃO.
A API Pause do AnywhereCaches é síncrona e retorna um recurso do AnywhereCache.
Retomar um cache
É possível retomar caches que estão em um 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 na medida do possível, 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 RUNNING.
A API AnywhereCaches Resume é 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 DESATIVADO. Durante esse estado, ainda é possível ler os dados atuais do cache, mas não é possível inserir novos dados no cache.
Depois de desativar um cache, há um período de carência de uma hora em que você pode 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 nele são removidos e o cache é removido do bucket.
Durante o período de uma hora antes da exclusão do cache, é possível reverter o estado DESATIVADO retomando o cache. Nesse ponto, o cache é retomado no estado EXECUÇÃO.
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 temporário de cache e largura de banda que podem ser escalados 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 a seguir várias dicas que você pode usar para minimizar os custos de execução de um cache:
Seleção de bucket: crie caches apenas para buckets que contêm dados que você quer armazenar em cache.
Seleção de zona: crie caches apenas em zonas em que a carga de trabalho se beneficia do armazenamento em cache.
Ingestão na segunda leitura: é possível especificar que os dados só são ingeridos na segunda leitura, e não na primeira, o que ajuda a garantir que o cache só armazene 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ção.
Pausar o cache: é possível pausar um cache para interromper a ingestão de dados e as taxas de ingestão de cache associadas. A pausa do cache tem efeito imediato. Você pode pausar um cache até que todos os dados sejam removidos após o término do TTL especificado. Quando todos os dados são excluídos, você não recebe mais cobranças de taxas de armazenamento de dados.
Desativar o cache: é possível desativar um cache para removê-lo permanentemente do serviço e impedir que todas as taxas de cache associadas sejam acumuladas.
Limitações e restrições
Não é possível excluir um bucket até que todos os caches associados a ele sejam excluídos.
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.
De qualquer forma, seus dados vão continuar armazenados com segurança no bucket de origem. Quando os dados são excluídos do cache por motivos além da expiração do TTL, o serviço Anywhere Cache tenta inserir os dados no cache de forma transparente e sem custo financeiro para você. Se os dados não puderem ser reinseridos de forma transparente ou forem descartados devido à expiração do TTL, o serviço do Anywhere Cache vai reinserir os dados na primeira ou segunda leitura.
Escassez temporária de recursos
As seções a seguir descrevem o comportamento do Anywhere Cache quando ocorre uma escassez temporária de recursos, ou seja, quando não há capacidade de SSD ou de exibição suficiente em uma zona especificada para criar um cache ou aumentar o tamanho dele.
Falha ao criar um novo cache
O Anywhere Cache pode falhar ao criar um novo cache em uma zona específica devido à falta de capacidade de SSD ou recursos de fornecimento de throughput, 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 no prazo de 48 horas, o Anywhere Cache vai concluir a solicitação de criação de cache. Se os recursos não ficarem disponíveis no prazo de 48 horas, a solicitação de criação do cache vai falhar. Para evitar interrupções no armazenamento em cache, cancele manualmente a solicitação de criação de cache e crie um novo cache em uma zona ou região diferente que tenha capacidade disponível.
Para monitorar a criação de cache durante uma escassez temporária de recursos, consulte a documentação do Anywhere Cache para usar operações de longa duração.
Falha ao aumentar o tamanho do cache
O Anywhere Cache pode falhar ao concluir um aumento do tamanho do cache devido a uma escassez temporária de recursos em dois cenários:
Quando não há capacidade de SSD suficiente para aumentar o tamanho do cache na zona especificada. Para mais informações, consulte Capacidade de SSD insuficiente.
Quando há uma escassez temporária de recursos de veiculação de throughput em uma zona para dimensionar o limite de largura de banda do cache. Para mais informações, consulte Capacidade de exibição insuficiente.
Capacidade insuficiente do SSD
Embora o Anywhere Cache ofereça aumentos automáticos de tamanho de cache sob demanda, os aumentos de tamanho do cache dependem da disponibilidade de capacidade de SSD. Se a capacidade de SSD não estiver disponível quando a solicitação de aumento automático do tamanho do cache for feita, o Anywhere Cache continuará a enviar a solicitação até que a escassez temporária de recursos termine ou um aumento no tamanho do cache não for mais necessário.
Durante uma escassez temporária de recursos, novos dados são ingeridos e os dados existentes no cache são removidos com base no uso menos recente para garantir que haja espaço suficiente no cache para novos dados. Os caches grandes o suficiente para armazenar a maioria dos dados ativos têm pouco ou nenhum impacto nas métricas de cache. Os caches com menos capacidade do que a quantidade de dados quentes podem remover dados e reingressar os mesmos dados com mais frequência do que os caches não afetados por escassez de recursos. Quando o tamanho real do cache é muito menor do que a capacidade necessária, pode ocorrer o seguinte comportamento relacionado à falta de recursos:
Um limite de largura de banda de cache mais baixo, uma capacidade de processamento de cache menor, um consumo de cota de largura de banda de transferência de dados maior e um possível impacto em outras métricas.
O faturamento pode ser afetado das seguintes maneiras:
Aumento da taxa de transferência para o cache
Redução da taxa de armazenamento em cache
Diminuição da taxa de transferência de dados do cache
Diminuição da taxa de operações de transferência de dados em cache
Aumento da taxa de transferência de dados multirregional
Aumento da taxa de operações de classe B
Para melhores resultados durante uma escassez temporária de recursos, recomendamos monitorar os caches e pausar o cache ou a carga de trabalho com base nas suas necessidades.
Capacidade de exibição insuficiente
Uma escassez de limite de largura de banda do cache (CBL, na sigla em inglês) pode ocorrer temporariamente durante um aumento do tamanho do cache quando os recursos de fornecimento de throughput em uma zona específica são insuficientes para dimensionar o limite de largura de banda do cache dos caches atuais em 20 Gbps por TiB. Durante uma escassez de CBL, o Anywhere Cache não permite que a CBL do cache seja dimensionada a 20 Gbps por TiB de dados, mas o cache continua a atender às solicitações de leitura. As solicitações de aumento de CBL são avaliadas caso a caso. Durante uma escassez de CBL, pode haver um aumento no consumo de largura de banda de saída.
Para melhores resultados durante uma escassez temporária de recursos, recomendamos monitorar os caches e pausar o cache ou a carga de trabalho com base nas suas necessidades.