Otimizar a performance em buckets com namespace hierárquico ativado

Esta página oferece orientações sobre como otimizar a performance em buckets com o namespace hierárquico ativado.

Como listar objetos

Confira a seguir as considerações de performance para listar objetos:

  • Em buckets com o namespace hierárquico ativado, listar todos os objetos do bucket inteiro ou com um prefixo é uma operação que exige muitos recursos, já que ela precisa percorrer cada pasta e subpasta, de maneira semelhante ao comando ls -r em um sistema de arquivos. Consequentemente, quanto mais pastas houver no bucket, mais lenta será a listagem de objetos. Um grande número de pastas vazias também pode afetar negativamente a performance da listagem de objetos. Para evitar esse impacto negativo, recomendamos maximizar o número de objetos em cada pasta e excluir regularmente as pastas vazias.
  • Listar ou recuperar objetos e subpastas em uma pasta específica usando um delimitador e um prefixo específico é mais eficiente em buckets com o namespace hierárquico ativado, já que os objetos são organizados em uma estrutura de pastas. Para otimizar a performance da listagem ao usar um delimitador e um prefixo específico, defina o parâmetro includeFoldersAsPrefixes. Caso contrário, o Cloud Storage vai realizar outras verificações para excluir pastas vazias, o que pode deixar a operação mais lenta. Para mais informações sobre como usar o includeFoldersAsPrefixes ao listar objetos, consulte Como listar objetos.

Gerenciamento de pastas

Para um gerenciamento eficiente de pastas, recomendamos o seguinte:

  • Pré-crie a estrutura de pastas:em vez de depender da criação automática de pastas durante as operações de upload, regravação e composição de objetos, use a operação de criação de pastas para obter a estrutura de pastas desejada com antecedência. A pré-criação da estrutura de pastas melhora a consistência e a previsibilidade da performance.
  • Maximize a proporção de objetos por pasta:procure uma proporção alta de objetos por pasta, já que isso reduz a sobrecarga associada à criação e ao gerenciamento de pastas.
  • Exclua regularmente as pastas vazias:as pastas vazias podem se acumular, principalmente ao usar o Gerenciamento do ciclo de vida de objetos ou excluir objetos sem excluir explicitamente as pastas mãe. As pastas acumuladas podem afetar a performance da operação de listagem de objetos e outras operações relacionadas a pastas. Confira a seguir alguns dos métodos que podem ser usados para excluir pastas vazias:
    • Ao usar Cloud Storage FUSE ou o conector do Cloud Storage para interagir com um bucket ativado com o namespace hierárquico, a exclusão de um diretório exclui a pasta correspondente no bucket.
    • É possível usar uma exclusão recursiva para excluir pastas automaticamente ao usar o Google Cloud console ou a Google Cloud CLI.
    • É possível usar o delete_empty_folders.py script para excluir pastas vazias periodicamente usando o processamento paralelo. O script oferece uma opção para segmentar um prefixo de caminho de pasta específico, o que permite que ele realize exclusões de pastas em um subconjunto da estrutura de diretórios do bucket. Além disso, o script exclui todas as pastas vazias (criadas implícita ou explicitamente), incluindo pastas gerenciadas e as políticas do IAM associadas a elas. Para detalhes sobre como usar o script, consulte o README (em inglês) no GitHub.

A seguir