Skip to main content

Limitações do Produto

O Object Storage da Magalu Cloud possui algumas limitações e características importantes que devem ser consideradas ao utilizar o serviço. A seguir, estão descritas as principais restrições e detalhes:

  • Gerenciamento de Objetos: Atualmente, o gerenciamento de objetos é realizado exclusivamente por meio da linha de comando (CLI) e ferramentas compatíveis com o protocolo S3, como o RClone GUI. O gerenciamento de objetos não está disponível diretamente no Console da Magalu Cloud.

  • Modelo de Multi-Part: Para objetos com tamanho superior a 8 MB, é utilizado automaticamente o modelo de upload e download em múltiplas partes (multi-part). No entanto, cada objeto pode ser dividido em no máximo 10.000 partes.

  • Limite de Buckets por Conta: Cada conta de usuário tem um limite máximo de 100 buckets. Esta restrição é implementada para garantir a organização e a estrutura adequada dos dados armazenados. Caso seja necessário aumentar este limite, entre em contato com o suporte da Magalu Cloud.

  • Tamanho Máximo de Objeto: O tamanho máximo permitido para um único objeto é de 5 terabytes (TB). Objetos que excedam esse tamanho não podem ser armazenados no Object Storage.

  • Limites de Taxas de Requisição: Existem limites nas taxas de requisição para operações como GET, PUT, LIST e DELETE. Esses limites podem variar conforme o tipo de conta e a região.

  • Limites Práticos de Buckets: Embora não haja um limite específico para o tamanho total de um bucket, existem limites práticos impostos pela escalabilidade do serviço. Buckets com um grande número de objetos ou solicitações simultâneas podem enfrentar limitações de desempenho.

  • Compatibilidade com Ferramentas Terceiras: O produto pode não ser compatível com todas as funcionalidades de ferramentas terceiras que possuem alterações ou funcionalidades distintas das oferecidas pelo S3. Para garantir uma integração adequada, consulte a seção Ferramentas Compatíveis, que lista clientes com compatibilidade validada. Se desejar utilizar uma ferramenta não listada, entre em contato conosco para análise e testes de compatibilidade adicionais

Estas limitações ajudam a garantir a performance e a integridade do serviço. Para mais informações ou esclarecimentos, entre em contato com o suporte da Magalu Cloud.

Modelo de consistência

O produto de object storage da MGC funciona com consistência eventual.

GET/HEAD imediatamente após PUT (objeto novo)

Esse tipo de operação é o que possui consistência mais forte dentre todas as operações de object storage. Apesar disso, existem casos extremos onde até esse tipo de operação pode retornar status code 404 (key not found) por algum período de tempo.

  • Boas práticas
    • Sempre incluir retries com backoff exponencial para erros 404.

GET/HEAD imediatamente após PUT (sobrescrita de chave)

Quando uma sobrescrita de chave acontece, existe um período no qual tanto o objeto novo quanto o antigo podem ser retornados pela API de GET.

  • Boas práticas
    • Evite sobrescrita de chaves. Caso não exista alternativa, a aplicação precisa saber que dados antigos podem ser recebidos.

GET/HEAD imediatamente após DELETE

Como no caso anterior, pode existir uma janela de tempo onde um objeto deletado ainda pode ser acessado. Não existe uma trataviva específica para este caso por parte de usuários de object storage.

  • Boas práticas
    • Saiba que GETs logo após DELETEs podem ainda retornar o dado recém deletado.

LIST imediatamente após PUT ou DELETE

Esta é a operação com maior probabilidade de ser afetada por consistência eventual. Após PUTs ou DELETEs, pode existir uma janela de tempo onde objetos recém criados não aparecem na operação de LIST e objetos recém deletados continuam aparecendo na operação de LIST.

  • Boas práticas
    • Evite o uso de operações de LIST imediatamente após operações de mutação.
      • Caso isso não seja possível devido à natureza do seu workload, a mitigação hoje é se utilizar de retries.
    • Diminua a carga de escrita em um mesmo bucket. Isso pode ser feito criando mais buckets e dividindo a carga entre eles.

PUT de metadados

Operações como configurar Bucket Policy, bucket/object locking e habilitar versionamento também estão sujeitas a consistência eventual.

  • Boas práticas
    • Se possível, configure policy, locking e versioning antes de começar qualquer carga de escrita.
    • Saiba que, se qualquer uma dessas configurações for alterada, pode existir uma janela de tempo em que a mudança ainda não estará completamente em efeito no seu bucket/objeto.