Cache em qualquer lugar

Esta página descreve a cache em qualquer lugar, uma funcionalidade que fornece uma cache de leitura zonal suportada por SSD para contentores do Cloud Storage. A cache em qualquer lugar oferece capacidade de cache a pedido dimensionando automaticamente a cache e a largura de banda disponível para satisfazer as suas necessidades. Devido às suas vantagens, a cache em qualquer lugar é particularmente útil para reduzir os custos de rede associados a cargas de trabalho com muitas leituras.

Consulte o artigo Crie e faça a gestão de caches para saber como criar e gerir caches na Anywhere Cache.

Vista geral

A cache em qualquer lugar permite-lhe criar caches na mesma zona que as suas cargas de trabalho. Quando cria uma cache numa zona, os pedidos de leitura de dados originários da zona são processados pela cache em vez do contentor. Cada cache serve clientes na mesma zona que a cache. Os dados só são carregados para a cache a partir do seu contentor quando são lidos por uma VM que reside na mesma zona que a cache. Os metadados não são colocados em cache e os pedidos de metadados de objetos são processados pelo contentor em vez da cache.

Quando cria uma cache para um contentor, a cache tem de ser criada numa zona dentro da localização do contentor. Por exemplo, se o seu contentor estiver localizado na região us-east1, pode criar uma cache em us-east1-b, mas não em us-central1-c. Se o seu contentor estiver localizado na região dupla ASIA, pode criar uma cache em quaisquer zonas que constituam as regiões asia-east1 e asia-southeast1. Para ver uma lista de zonas, consulte o artigo Regiões e zonas na documentação do Compute Engine.

Para cada contentor, pode criar uma cache por zona. Por exemplo, se o seu contentor estiver localizado na US multirregião e as VMs do Compute Engine estiverem a ser executadas nas zonas us-east1-b e us-central1-a, pode criar uma cache em us-east1-b e outra cache em us-central1-a.

A cache em qualquer lugar é um serviço totalmente gerido e devolve sempre dados consistentes.

Vantagens

Quando armazena os dados em cache com a cache em qualquer lugar, tem as seguintes vantagens:

  • Aceda aos dados mais rapidamente: a cache em qualquer lugar localiza os seus dados na mesma zona que os recursos de computação e é totalmente suportada por SSD. Isto permite que as suas cargas de trabalho alcancem um débito de até 2,5 TB/s e reduz a latência para leituras mais rápidas.

  • Reduza as taxas de transferência de dados em várias regiões: ao contrário dos dados lidos diretamente dos contentores de várias regiões, os dados lidos a partir de uma cache não incorrem em taxas de transferência de dados. As taxas de rede normais continuam a aplicar-se às leituras de dados na importação inicial da cache.

  • Reduza as taxas de obtenção: as taxas de obtenção de contentores no Nearline Storage, Coldline Storage e Archive Storage não se aplicam a leituras de dados da cache.

  • Acumule custos mais baixos das operações de leitura: as operações de leitura publicadas a partir da cache em qualquer lugar têm um preço inferior ao das operações de classe B publicadas a partir de um contentor no armazenamento padrão.

  • Aumente automaticamente o tamanho da cache: a colocação em cache dinâmica de SSDs da Anywhere Cache é dimensionada automaticamente com base na utilização sem que tenha de especificar um tamanho de cache.

  • Use as caches de forma eficiente: a cache em qualquer lugar pode ser ativada em contentores existentes sem exigir alterações às suas aplicações ou APIs existentes. Os dados armazenados na cache em qualquer lugar são fortemente consistentes.

Para ver detalhes sobre os preços, consulte a secção Preços da cache em qualquer lugar. Para obter informações sobre quotas, consulte o artigo Quotas da cache em qualquer lugar.

Quando deve usar a cache em qualquer lugar?

A cache em qualquer lugar é mais bem usada para colocar em cache dados que são alterados com pouca frequência e lidos com frequência, como dados usados para preparar modelos de ML ou executar cargas de trabalho de estatísticas.

Suponhamos que está a preparar um modelo de IA em vários nós do Google Kubernetes Engine, que leem repetidamente dados armazenados nos seus contentores do Cloud Storage e são executados na mesma zona. Quando cria uma cache na zona onde a sua carga de trabalho está a ser executada, a cache fornece largura de banda adicional e ajuda a reduzir as taxas de transferência de dados associadas à leitura de dados em contentores multirregionais, o que lhe permite executar cargas de trabalho maiores e dimensionadas de forma mais eficiente.

Preços

Para ver os preços da utilização da cache em qualquer lugar, consulte o artigo Preços da cache em qualquer lugar.

Localizações suportadas

As caches podem ser criadas em zonas específicas, desde que haja capacidade disponível. Se a capacidade para criar uma cache não estiver disponível, o serviço de cache em qualquer lugar continua a tentar criar uma cache até que a capacidade fique disponível ou o processo de criação seja anulado pelo utilizador. A capacidade pode permanecer indisponível durante um longo período.

Para cada contentor, pode criar um máximo de uma cache por zona. Por exemplo, se um contentor estiver localizado na região us-east1, pode criar uma cache em us-east1-b e outra cache em us-east1-c. Se um contentor estiver localizado numa multirregião que abranja us-central1 e us-east1, pode criar uma cache em us-central1-a e outra cache em us-east1-b.

Pode usar a cache em qualquer lugar nas seguintes zonas. Estas zonas podem ser usadas consoante o tipo de localização do seu contentor.

Área geográfica Localização
Nome da zona Região Duas regiões Multirregião Região dupla personalizada
Ásia
asia-east1-a
asia-east1-b
asia-east1-c
asia-northeast1-a
asia-northeast1-b
asia-northeast1-c
asia-south1-a
asia-south1-b
asia-south1-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 de cache em qualquer lugar

O recomendador de cache em qualquer lugar fornece recomendações e estatísticas para criar caches em pares de zonas de contentores através da análise da utilização de dados e do armazenamento. Para ver informações gerais e instruções sobre a utilização do recomendador de cache em qualquer lugar, consulte o artigo Recomendador de cache em qualquer lugar.

Operações de cache

Esta secção descreve as operações que pode realizar nas caches da Anywhere Cache. Algumas operações são assíncronas e devolvem uma operação de longa duração, enquanto outras operações são síncronas, em que as operações são realizadas imediatamente e devolvem um recurso AnywhereCache.

Crie uma cache

Quando cria uma cache, pode configurar as seguintes propriedades:

  • O tempo de vida (TTL) é o tempo máximo que um bloco de dados permanece na cache desde a última leitura. Por exemplo, se o TTL estiver definido como 24 horas, um bloco de dados que foi lido pela última vez às 11:00 de segunda-feira sem leituras subsequentes é removido da cache às 11:00 de terça-feira.

    Pode definir um TTL entre 1 hora e 7 dias. Se não for especificado, o TTL é predefinido para 24 horas.

  • A política de admissão determina se a cache introduz dados na primeira falha ou na segunda falha. A introdução na segunda falha permite-lhe introduzir dados na cache apenas quando os dados são lidos uma segunda vez dentro do TTL especificado. A ingestão na segunda falha permite reduzir o custo de utilização da cache em qualquer lugar, garantindo que apenas coloca em cache objetos que são lidos mais do que uma vez, mas também reduz a taxa de acertos da cache.

    Se não for especificado, a política de admissão é predefinida para a ingestão na primeira falha.

Quando cria uma cache, esta entra no estado CREATING enquanto está a ser criada e entra no estado RUNNING quando começa a ser executada ativamente. A operação de criação da cache pode demorar até 48 horas. Após este período, a operação expira.

A API AnywhereCaches Create é assíncrona. Uma operação de criação faz com que seja devolvida uma operação de execução prolongada. A operação de longa duração fornece um estado da operação de criação e permite-lhe cancelar a operação antes de esta estar concluída.

Atualize uma cache

Pode atualizar o TTL ou a política de admissão de uma cache num estado RUNNING. Quando uma cache está em processo de atualização, o campo pending_update é avaliado como true. Embora o campo pending_update seja avaliado como true, não é possível atualizar novamente a cache.

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

Quando o TTL de uma cache termina a atualização, o novo TTL aplica-se imediatamente aos dados carregados recentemente e só se aplica aos dados existentes quando esses dados são lidos. Isto significa que os dados existentes na cache mantêm o TTL antigo até que esses dados sejam lidos ou sejam removidos devido à expiração do TTL.

Obtenha uma cache

Quando obtém uma cache, a cache em qualquer lugar devolve o estado e a configuração da instância da cache. A API AnywhereCaches Get é síncrona e devolve um recurso AnywhereCache.

Listar caches

Pode devolver uma lista de caches associadas para um determinado contentor. A API AnywhereCaches List é síncrona e suporta paginação.

Pause uma cache

Pode pausar uma cache para parar a ingestão de dados de uma cache que se encontra no estado EM EXECUÇÃO. Quando uma cache está no estado PAUSADO, continua a poder ler dados existentes da cache, mas não pode introduzir novos dados na cache. A leitura de dados existentes da cache repõe o TTL dos dados na cache.

Quando retoma uma cache num estado PAUSED, a cache entra num estado RUNNING.

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

Retome uma cache

Pode retomar as caches que se encontram no estado PAUSED ou DISABLED, desde que a cache desativada esteja dentro do período de tolerância de 1 hora. Após o período de tolerância de 1 hora, a operação de retoma é feita com base no melhor esforço, uma vez que a cache pode ser eliminada em qualquer altura após o período de tolerância. Depois de retomada, uma cache entra no estado RUNNING.

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

Desative uma cache

Pode desativar uma cache para remover permanentemente a cache da configuração do seu contentor. Quando desativa uma cache, esta entra no estado DESATIVADA. Durante este estado, continua a poder ler os dados existentes na cache, mas não pode introduzir novos dados na cache.

Depois de desativar uma cache, tem um período de tolerância de 1 hora durante o qual pode cancelar a desativação retomando a cache. Após este período de tolerância de 1 hora, a cache é eliminada. Quando a cache é eliminada, todos os dados na cache são removidos e a cache é removida do contentor.

Durante o período de 1 hora antes de a cache ser eliminada, pode reverter o estado DISABLED retomando a cache, momento em que a cache é retomada no estado RUNNING.

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

Ajuste automático do limite de largura de banda e do tamanho da cache

A cache em qualquer lugar oferece armazenamento de cache temporário e largura de banda que aumentam e diminuem de acordo com as suas necessidades. Para saber mais sobre os limites de tamanho e largura de banda da cache em qualquer lugar, consulte o artigo Quotas e limites do Cloud Storage.

Controlos de custos

Seguem-se várias sugestões que pode usar para minimizar os custos de execução de uma cache:

  • Seleção de contentores: só deve criar caches para contentores que contenham dados que quer colocar em cache.

  • Seleção de zonas: só deve criar caches em zonas onde a sua carga de trabalho vai beneficiar da colocação em cache.

  • Carregamento na segunda leitura: pode especificar que os dados só são carregados na segunda leitura, em vez de na primeira leitura, o que ajuda a garantir que a cache só armazena dados que são lidos mais do que uma vez.

  • Definição de TTL: deve especificar o TTL mínimo necessário para armazenar dados na cache. É possível alterar o TTL sem interrupções.

  • Pausar a cache: pode pausar uma cache para parar a ingestão de dados e as taxas de ingestão de cache associadas. A pausa da cache tem um efeito imediato. Pode pausar uma cache até que todos os dados sejam removidos após o fim do TTL especificado. Quando todos os dados são removidos, deixa de lhe ser cobrada uma taxa de armazenamento de dados.

  • Desativar a cache: pode desativar uma cache para a remover permanentemente do serviço e impedir a acumulação de todas as taxas de cache associadas.

Limitações e restrições

  • Não é possível eliminar um contentor até que todas as caches associadas ao contentor tenham sido eliminadas.

  • Quando realizar as operações de criação, desativação, pausa, retoma ou atualização da cache, limite a taxa de operações a, no máximo, uma operação por segundo. A execução de mais de uma operação por segundo pode resultar em falhas.

  • A cache em qualquer lugar não é um armazenamento duradouro e os dados podem ser removidos da cache em vários cenários. Um cenário é quando o tamanho da cache é alterado automaticamente para garantir que existem recursos suficientes disponíveis para as suas cargas de trabalho. Neste cenário, alguns dados podem ser removidos de acordo com um algoritmo de menos usados recentemente (LRU) até que o serviço de cache em qualquer lugar termine de aumentar o tamanho da cache.

    Em qualquer caso, os seus dados permanecem armazenados em segurança no contentor de origem. Quando os dados são removidos da cache por motivos que não a expiração do TTL, o serviço de cache em qualquer lugar tenta voltar a introduzir os dados na cache de forma transparente e sem custo financeiro para si. Se não for possível voltar a introduzir os dados de forma transparente ou se estes tiverem sido ignorados devido ao fim do prazo de validade, o serviço de cache em qualquer lugar volta a introduzir os dados na primeira ou segunda leitura.

  • Não é possível usar a cache em qualquer lugar para publicar dados para pedidos de leitura de objetos emitidos pelo BigQuery. Quando usa o BigQuery para consultar dados num contentor do Cloud Storage como uma tabela externa, os dados são fornecidos a partir do contentor e não são carregados para a cache, mesmo que o contentor tenha uma cache ativada.

  • As recomendações e as estatísticas geradas pelo recomendador de cache em qualquer lugar não podem ser lidas através do BigQuery.

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

As secções seguintes descrevem como resolver problemas quando ocorre uma escassez temporária de recursos, em que não existe capacidade de SSD ou capacidade de publicação suficiente numa zona especificada para criar uma cache, aumentar o tamanho de uma cache ou aumentar o limite de largura de banda de uma cache.

Falha ao criar uma nova cache

A cache em qualquer lugar pode não conseguir criar uma nova cache numa zona específica devido à falta de capacidade de SSD ou recursos de fornecimento de débito, o que resulta numa escassez temporária de recursos. Durante este período, A cache em qualquer lugar tenta criar a nova cache durante um máximo de 48 horas. Se os recursos ficarem disponíveis no prazo de 48 horas, a cache em qualquer lugar conclui o pedido de criação da cache com êxito. Se os recursos não ficarem disponíveis no prazo de 48 horas, o pedido de criação da cache falha.

Como resolver problemas: para evitar a interrupção do armazenamento em cache, pode cancelar manualmente a operação de criação da cache e criar uma nova cache numa zona diferente que possa ter capacidade disponível. Para monitorizar ou cancelar uma operação de criação de cache, consulte como usar operações de longa duração.

Falha ao aumentar o tamanho da cache

A cache em qualquer lugar pode não conseguir aumentar o tamanho de uma cache quando a quantidade necessária de capacidade de SSD não está disponível na zona da cache.

Embora a cache em qualquer lugar ofereça aumentos automáticos do tamanho da cache a pedido, os aumentos do tamanho da cache dependem da disponibilidade da capacidade do SSD. Se a capacidade de SSD não estiver disponível quando o pedido de aumento automático do tamanho da cache for feito, a cache em qualquer lugar continua a enviar o pedido até a escassez temporária de recursos terminar ou já não ser necessário um aumento no tamanho da cache.

Durante uma escassez temporária de recursos, os novos dados são carregados e os dados existentes na cache são removidos com base na utilização menos recente. As caches suficientemente grandes para armazenar a maioria dos dados ativos têm pouco ou nenhum impacto nas métricas de cache. As caches com menos capacidade do que a quantidade de dados ativos podem remover dados e voltar a introduzir os mesmos dados com mais frequência do que as caches não afetadas por escassez de recursos. Quando o tamanho real da cache é muito inferior à capacidade necessária, pode ocorrer o seguinte comportamento relacionado com a escassez de recursos:

  • Um limite de largura de banda da cache inferior, um débito da cache inferior, um consumo da quota de largura de banda de transferência de dados superior e um possível impacto noutras métricas
  • A faturação pode ser afetada das seguintes formas:
    • Aumento dos custos devido à taxa de carregamento da cache
    • Diminuição dos custos da taxa de armazenamento da cache
    • Diminuição dos custos da taxa de transferência de dados da cache
    • Diminuição dos custos das taxas de operação de transferência de dados da cache
    • Aumento dos custos devido à taxa de transferência de dados em várias regiões
    • Aumento dos custos devido à utilização de operações da classe B

Para informações sobre estas taxas, consulte os preços da cache em qualquer lugar.

Como resolver problemas: para obter os melhores resultados durante uma escassez temporária de recursos, recomendamos que monitorize as suas caches e pause as caches ou as cargas de trabalho desnecessárias com base nas suas necessidades.

Falha ao aumentar o limite de largura de banda de uma cache

Uma escassez do limite de largura de banda da cache pode ocorrer temporariamente durante um aumento do tamanho da cache quando os recursos de publicação de débito numa zona específica são insuficientes para dimensionar o limite de largura de banda da cache das caches existentes a 20 Gbps por TiB. Durante uma escassez de largura de banda da cache, a cache em qualquer lugar não permite que o limite de largura de banda da cache seja dimensionado a 20 Gbps por TiB de dados, mas a cache continua a publicar pedidos de leitura. Os pedidos de aumento do limite de largura de banda da cache são avaliados individualmente. Durante uma escassez de largura de banda da cache disponível, pode observar um aumento no consumo de largura de banda de saída de dados do seu contentor.

Como resolver problemas: para obter os melhores resultados durante uma escassez temporária de recursos, recomendamos que monitorize as suas caches e pause as caches ou as cargas de trabalho desnecessárias com base nas suas necessidades.

O que se segue?