Rapid Bucket

Esta página descreve o Rapid Bucket, um recurso que permite armazenar objetos na classe de armazenamento Rapid Storage definindo uma zona como local de um bucket. Essa abordagem permite que você coloque o armazenamento de dados com seus recursos de computação, o que oferece latência significativamente menor e maior capacidade de processamento em comparação com outras classes de armazenamento no Cloud Storage. As cargas de trabalho em outras zonas e regiões também podem acessar o bucket, com desempenho relativo à distância da rede.

Para criar um bucket zonal usando o Rapid Bucket, consulte Criar buckets zonais. É possível conferir a lista de locais compatíveis em Zonas. Para ler e anexar objetos em buckets zonais, consulte Usar objetos em buckets zonais.

Benefícios

O Rapid Bucket foi criado para remover gargalos de armazenamento e é ideal para uso em aplicativos com uso intensivo de dados, como IA/ML e análise de dados. O Rapid Bucket oferece latência abaixo de um milissegundo, até 15 TB/s de capacidade de processamento agregada e 20 milhões de consultas por segundo (QPS). A latência ultrabaixa permite a recuperação instantânea de dados e capacita aplicativos de inferência em tempo real a serem executados em escala. A capacidade de processamento enorme e o QPS alto ajudam a manter seus clusters de GPU caros totalmente saturados, reduzindo drasticamente os tempos de treinamento de modelo.

Terminologia do Rapid Bucket

A documentação do Cloud Storage usa os seguintes termos:

  • Rapid Bucket: o produto que permite a criação de buckets com um local zonal e a classe de armazenamento Rapid Storage.

  • Rapid Storage: a classe de armazenamento que oferece o maior desempenho de acesso aos dados e operação de E/S no Cloud Storage. Ao usar o Rapid Bucket, você cria um bucket que usa o Rapid Storage. Para mais informações sobre o Rapid Storage, consulte Classes de armazenamento.

  • Bucket zonal: um bucket localizado em uma zona. Os objetos em buckets zonais são sempre armazenados no Rapid Storage e podem ser anexados.

Recursos de buckets zonais

Além de fornecer baixa latência e alta capacidade de processamento, os buckets zonais permitem que você faça o seguinte:

  • Adicionar ao final de objetos no bucket zonal sem realizar uma reescrita completa do objeto

  • Abrir objetos e manter um fluxo ao realizar operações, permitindo acelerar leituras e gravações subsequentes

Casos de uso

O Rapid Bucket é mais adequado para cargas de trabalho de IA/ML ou outras cargas de trabalho com uso intensivo de dados. Alguns exemplos dessas cargas de trabalho são o checkpointing, a avaliação e a veiculação de modelos, bem como filas de registro e mensagens. Ele também pode ser usado para transmitir dados ou fornecer armazenamento para bancos de dados.

Para aproveitar ao máximo a baixa latência e a alta capacidade de processamento fornecidas pelo Rapid Bucket, certifique-se de ativar a conectividade direta do gRPC.

Acesso a objetos em buckets zonais

Para aproveitar os benefícios de desempenho de um bucket zonal, abra objetos para streaming e mantenha um fluxo ao realizar operações nos objetos. Ao estabelecer e manter um fluxo, é possível realizar operações de leitura ou gravação subsequentes no objeto com latência muito baixa. Por exemplo, ao ler um arquivo Parquet, é possível realizar a leitura inicial dos metadados do arquivo (o rodapé) e a leitura subsequente de linhas específicas em uma única solicitação. Essa abordagem é mais eficiente do que usar solicitações separadas para cada etapa.

Depois de estabelecidos, os fluxos de objetos são mantidos abertos por padrão quando você acessa objetos de bucket zonal usando Cloud Storage FUSE ou as bibliotecas de cliente do Cloud Storage.

É possível abrir vários fluxos de leitura para um objeto de qualquer número de hosts. Não há limitação no número de fluxos de leitura que podem ser estabelecidos para um objeto.

Anexação de objetos

É possível anexar dados a objetos em buckets zonais. Quando você faz anexos a objetos, a seguinte semântica é aplicada:

  • Os objetos anexáveis aparecem no namespace do bucket assim que você começa a gravar neles e podem ser lidos enquanto ainda estão sendo gravados.

  • Não há restrições quanto ao número de anexos que podem ser feitos a um objeto ou ao número de bytes que podem ser anexados por vez. É possível fazer anexos até que um objeto atinja o tamanho máximo de 5 TiB.

  • O tamanho de um objeto aumenta em tempo real à medida que novos anexos são gravados ou liberados permanentemente. Ao estabelecer um fluxo de leitura, é preciso prever um atraso mínimo na atualização do tamanho do objeto.

  • Os objetos anexáveis só podem ter um gravador por vez. Se um novo fluxo de gravação for estabelecido para um objeto que já tem um fluxo de gravação, um erro será retornado do Cloud Storage para o fluxo original, e o fluxo original não poderá mais gravar. O novo gravador pode retomar a anexação do último deslocamento persistido sem outros anexos intercalados ao objeto.

Finalização de objetos

Depois que um objeto é finalizado, não é mais possível anexá-lo, mas ainda é possível substituir o objeto por uma nova versão. Os metadados de um objeto finalizado ainda são mutáveis. Por exemplo, novas tags podem ser adicionadas e o objeto pode ser renomeado.

Como ativar buckets zonais

É possível ativar e acessar buckets zonais usando o Cloud Storage FUSE ou o driver CSI do Cloud Storage FUSE. Use a versão 3.7.2 ou mais recente do Cloud Storage FUSE. Para usar o driver CSI do Cloud Storage FUSE, verifique se a versão do Google Kubernetes Engine é 1.35.0-gke.3047001 ou mais recente.

Preços

O uso do Rapid Bucket gera cobranças de armazenamento de dados, operações e rede. Para mais informações, consulte Preços.

Limitações

  • Os buckets zonais precisam ter o namespace hierárquico e o acesso uniforme no nível do bucket ativados.

  • Limitações da Google Cloud CLI:

    • Versão mínima compatível da Google Cloud CLI: a versão mínima da CLI gcloud que oferece suporte a buckets zonais é a 553.0.0. Versões anteriores não são compatíveis com buckets zonais. Recomendamos usar a versão mais recente da CLI gcloud para receber os recursos e correções de bugs mais recentes.

    • Visibilidade de uploads incompletos: ao contrário dos buckets em outras classes de armazenamento, em que os objetos só aparecem no namespace após a conclusão de um upload, os objetos parcialmente enviados em buckets zonais ficam visíveis imediatamente. Se um comando de upload da Google Cloud CLI falhar ou for interrompido, objetos incompletos poderão aparecer no bucket. Ainda é possível retomar esses uploads executando o comando novamente.

    • Substituições de objetos: o comportamento padrão da Google Cloud CLI se aplica a buckets zonais: quando você substitui um objeto, se um arquivo ou objeto com o mesmo nome existir no destino, os comandos cp, mv, e rsync da Google Cloud CLI vão substituí-lo por padrão. Para evitar substituições, use a flag --no-clobber. Ao usar a Google Cloud CLI, anexar dados a um objeto existente é indisponível. Toda a origem precisa ser reenviada.

    • Finalização de objetos: os objetos enviados para um bucket zonal usando a Google Cloud CLI podem ocasionalmente sofrer um breve atraso antes que os metadados do objeto sejam totalmente sincronizados. Como o Cloud Storage usa um modelo de consistência eventual, tentar fazer o download de um objeto imediatamente após o upload pode resultar em um erro de incompatibilidade de hash se os metadados ainda não forem atualizados.

      Se um download falhar com um erro de incompatibilidade de hash logo após um upload, tente o comando novamente. O sistema garante que os downloads sejam bem-sucedidos por completo ou falhem explicitamente. Downloads parciais ou corrompidos não ocorrem silenciosamente.

Incompatibilidades

Os buckets zonais são incompatíveis com as seguintes ferramentas, operações, produtos e metadados:

  • Ferramentas

    • Gravações usando a API XML ou a API JSON

    • Uploads de várias partes da API XML

  • Gravações para objetos não anexáveis usando o gRPC

  • Proteção de dados e recuperação de desastres

    • Controle de versões dos objetos

    • Fazer a exclusão reversível

  • Gerenciamento de dados

    • Rapid Cache

    • Classe automática

    • Bloqueio do bucket

    • Como criar objetos

    • Retenções de objetos

    • A ação SetStorageClass do gerenciamento do ciclo de vida de objetos

    • Bloqueio de retenção de objetos

    • Como realocar buckets

    • Uploads recuperáveis

    • Como reescrever objetos

    • Pagamentos do requerente

  • Controle de acesso

    • Listas de controle de acesso (ACLs) no nível do objeto

    • Configurações do CORS

    • Chave de criptografia fornecida pelo cliente (CSEK)

    • Chaves HMAC

  • Metadados

    • Os objetos em buckets zonais não têm um hash MD5.

    • As propriedades de metadados associadas a recursos e produtos não compatíveis não aparecem na representação de recursos de um bucket zonal ou um objeto anexável ou não podem ser gravadas. Exemplo:

      • As propriedades de metadados softDeleteTime e hardDeleteTime não aparecem na representação de recursos do recurso Objects porque a exclusão reversível não é compatível com objetos em buckets zonais.

      • Os metadados storageClass de objetos em buckets zonais sempre têm um valor de RAPID e não podem ser reescritos porque os buckets zonais precisam sempre usar a classe de armazenamento Rapid Storage.

Cotas

Cada zona por projeto tem uma cota de bytes de armazenamento. Cada zona por projeto também tem uma cota de saída do Cloud Storage para os Serviços do Google. Para saber quanta cota de armazenamento ou saída de dados está disponível, consulte a página Cotas e limites do sistema. Para saber como solicitar mais cota, consulte Gerenciar suas cotas.

Práticas recomendadas

Para otimizar o desempenho ao usar buckets zonais com o Cloud Storage FUSE, mantenha um identificador de arquivo aberto para os objetos ativados e use-o para várias operações. Isso resulta em um desempenho melhor porque permite que o Cloud Storage FUSE evite a execução de viagens de ida e volta desnecessárias na rede por leitura repetida.

A seguir