Rapid Bucket

Nesta página, descrevemos o Rapid Bucket, um recurso que permite armazenar objetos na classe de armazenamento Rapid definindo uma zona como o local do bucket. Essa abordagem permite colocalizar o armazenamento de dados com os 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. Confira a lista de locais disponíveis em Zonas. Para ler e anexar objetos em buckets zonais, consulte Usar objetos em buckets zonais.

Para que o bucket rápido seja ativado em um bucket, ele também precisa ter o namespace hierárquico e o acesso uniforme no nível do bucket ativados.

Recursos e 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 de submilissegundos, 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 funcionar em grande escala. A alta capacidade de processamento e QPS elevadas ajudam a manter os clusters de GPU caros totalmente saturados, reduzindo drasticamente os tempos de treinamento de modelo.

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

  • Anexar aos objetos no bucket zonal sem realizar uma regravação completa do objeto

  • Abra objetos e mantenha um stream enquanto realiza operações, o que permite acelerar as 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 checkpoint, avaliação e exibição de modelos, além de filas de geração de registros e mensagens. Ele também pode ser usado para fazer streaming de 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, ative a conectividade direta do gRPC.

Terminologia do Rapid Bucket

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

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

  • Rapid Storage: a classe de armazenamento que oferece o maior acesso a dados e desempenho de 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.

Acesso a objetos em buckets zonais

Para aproveitar os benefícios de desempenho de um bucket zonal, abra objetos para streaming e mantenha um stream enquanto realiza operações nos objetos. Ao estabelecer e manter um stream, é possível realizar operações subsequentes de leitura ou gravação 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 streams de objetos são mantidos abertos por padrão quando você acessa objetos de bucket zonais usando o 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 streams de leitura que você pode estabelecer para um objeto.

Como anexar objetos

É possível anexar dados a objetos em buckets zonais. Ao adicionar dados ao final de objetos, as seguintes semânticas se aplicam:

  • 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 adições que você pode fazer a um objeto ou ao número de bytes que pode adicionar por vez. É possível fazer adições ao final até que um objeto atinja o tamanho máximo de 5 TiB.

  • O tamanho de um objeto aumenta em tempo real à medida que novas adições ao final são gravadas ou liberadas permanentemente. Ao estabelecer um stream 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 stream de gravação for estabelecido para um objeto que já tem um stream de gravação, um erro será retornado do Cloud Storage para o stream original, e o stream original não poderá mais gravar. O novo gravador pode retomar a anexação do último deslocamento persistente sem outras anexações intercaladas ao objeto.

Como finalizar objetos

Depois que um objeto é finalizado, não é mais possível adicionar dados ao final dele, mas você ainda pode 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 montar buckets zonais

É possível montar 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, sua versão do Google Kubernetes Engine precisa ser 1.35.0-gke.3047001 ou mais recente.

Ferramentas compatíveis

É possível trabalhar com buckets zonais usando a maioria das ferramentas do Cloud Storage. No entanto, as seguintes limitações se aplicam:

  • Não é possível gravar em buckets zonais usando APIs de biblioteca de cliente padrão destinadas a buckets não zonais. Para gravar em buckets zonais, é necessário modificar o código para usar APIs compatíveis com buckets zonais. Para saber quais APIs usar, consulte os exemplos de código da biblioteca de cliente em Usar objetos em buckets zonais.

  • É possível ler objetos em buckets zonais usando a API JSON, a API XML ou o gRPC, incluindo métodos de leitura gRPC não bidirecionais, como ReadObject.

  • O suporte para gravação em buckets zonais varia de acordo com a API:

    • gRPC: ao usar o gRPC, só é possível gravar em buckets zonais usando a API BidiWriteObject. Os objetos anexáveis só são compatíveis com a chamada RPC BidiWriteObject no modo anexável. Os métodos de gravação gRPC não bidirecionais, como WriteObject, não são compatíveis com buckets zonais.

    • API XML: é possível gravar em buckets zonais usando a API XML, exceto para uploads de várias partes XML.

    • API JSON: não é possível gravar em buckets zonais usando a API JSON.

  • O Rapid Bucket é compatível com as versões 2026.3.0 e posteriores da biblioteca GCSFS para Python.

  • 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. As 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 as correções de bugs mais recentes. Os downloads de objetos fatiados e as otimizações de desempenho para buckets zonais exigem a versão 583.0.0 ou mais recente da CLI gcloud. Para mais informações, consulte Ajustar o desempenho da CLI gcloud para buckets zonais.

    • 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 do 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, talvez você veja objetos incompletos 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, não é possível adicionar dados ao final de um objeto. É preciso fazer o upload de toda a origem novamente.

    • 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 posterior, tentar baixar um objeto imediatamente após o upload pode resultar em um erro de incompatibilidade de hash se os metadados ainda não estiverem atualizados.

      Se um download falhar com um erro de incompatibilidade de hash logo após um upload, tente executar o comando novamente. Os downloads são concluídos ou falham explicitamente. Não ocorrem downloads parciais ou corrompidos sem aviso.

  • Desempenho da validação de checksum: os buckets zonais dependem exclusivamente do CRC32C para validação de dados, permitindo que o sistema realize o checksum por bloco e para todo o upload ou download. Por padrão, a Google Cloud CLI usa a biblioteca Python google-crc32c, que vem pré-instalada com a Google Cloud CLI. No entanto, se você estiver usando uma instalação do Python não incluída, instale explicitamente a biblioteca google-crc32c do PyPI. Caso contrário, a Google Cloud CLI vai usar o binário gcloud-crc32c, o que pode deixar o desempenho mais lento para o cálculo de CRC por bloco.

Incompatibilidades

Os buckets zonais são incompatíveis com os seguintes produtos e serviços:

  • Upload e gerenciamento de dados

    • Rapid Cache

    • Classe automática

    • Bloqueio do bucket

    • Objetos compostos

    • Uploads de várias partes em XML

    • Retenções de objetos

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

    • Bloqueio de retenção de objetos

    • Realocações de buckets

    • Uploads retomáveis

    • Regravações de objetos

    • Pagamentos do solicitante

  • 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 de um objeto anexável ou não podem ser gravadas. Exemplo:

      • As propriedades de metadados softDeleteTime e hardDeleteTime não aparecem na representação 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.

  • Controle de acesso

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

    • Configurações do CORS

    • Chaves de criptografia fornecidas pelo cliente (CSEK)

    • Chaves HMAC

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

    • Controle de versões dos objetos

    • Fazer a exclusão reversível

    • Replicação entre buckets

  • Outros Google Cloud serviços

    • BigQuery

Cotas

Cada zona por projeto tem uma cota de capacidade de armazenamento padrão. Cada zona por projeto também tem uma cota de saída padrão do Cloud Storage para serviços doGoogle . Para conferir essas cotas, consulte Cotas e limites.

Para saber como monitorar o uso de saída de dados e solicitar mais largura de banda, consulte Monitoramento do uso da largura de banda.

Preços

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

Práticas recomendadas

Para otimizar o desempenho e a utilização de recursos ao trabalhar com buckets zonais, considere as seguintes práticas recomendadas:

  • Otimizar leituras de objetos: ao ler objetos de buckets zonais usando a CLI gcloud, ela aplica automaticamente as configurações padrão de simultaneidade e fatiamento. Para ajustar ainda mais essas configurações para uma carga de trabalho específica, consulte Ajustar o desempenho da CLI gcloud para buckets zonais.

  • Processamento de arquivos do Cloud Storage FUSE: para otimizar o desempenho ao usar buckets zonais com o Cloud Storage FUSE, mantenha um identificador de arquivo aberto para objetos no bucket zonal montado e use-o para várias operações. Essa prática melhora o desempenho porque o Cloud Storage FUSE evita idas e voltas desnecessárias na rede para leituras repetidas.

  • Otimizar a latência de gravação paralela: se você mantiver sua própria lógica de gravação paralela do gRPC, considere usar um pool de gravadores pré-abertos com objetos não finalizados para mover a configuração do stream para fora do caminho de gravação. Um pool de gravadores pré-abertos abre streams de objetos e cria novos objetos anexáveis vazios no bucket antes que o aplicativo precise deles. Para mais informações, consulte Otimizar a latência de gravação.

A seguir