4 pontos por GN⁺ 2024-11-26 | 1 comentários | Compartilhar no WhatsApp
  • Novo recurso do Amazon S3: gravações condicionais

    • O Amazon S3 agora pode realizar gravações condicionais que atualizam um objeto após verificar se ele não foi modificado. Isso ajuda a coordenar gravações simultâneas no mesmo objeto e evita que vários autores concorrentes sobrescrevam acidentalmente o conteúdo sem saber do estado atual do objeto.

    • Esse recurso pode ser usado tanto em buckets de uso geral quanto em buckets de diretório do S3, fornecendo o ETag do objeto por meio das requisições de API S3 PutObject ou CompleteMultipartUpload.

    • As gravações condicionais simplificam a forma como aplicações distribuídas atualizam conjuntos de dados compartilhados simultaneamente. Assim como o uso do cabeçalho condicional HTTP if-none-match para verificar se um objeto já existe antes de ser criado, agora os clientes podem realizar a verificação de gravação condicional especificando o ETag do objeto por meio do cabeçalho HTTP if-match na requisição de API.

    • O S3 confirma a gravação depois de verificar se o ETag do objeto corresponde ao valor fornecido na requisição de API, impedindo que o cliente sobrescreva o objeto até que a condição seja atendida.

    • Esse novo cabeçalho condicional pode ajudar a melhorar a eficiência de análises em grande escala, machine learning distribuído e outros trabalhos altamente paralelizados.

    • Esse novo recurso de gravação condicional está disponível em todas as regiões da AWS sem custo adicional. É possível realizar gravações condicionais usando AWS SDK, API ou CLI. Para mais detalhes sobre gravações condicionais, consulte o guia do usuário do S3.

1 comentários

 
GN⁺ 2024-11-26
Comentários do Hacker News
  • Foi adicionada ao Amazon S3 uma funcionalidade que permite impor operações de escrita condicionais

    • Queriam uma função que obrigasse o nome do objeto no S3 a corresponder ao hash
    • Isso ajuda a construir um armazenamento endereçável por conteúdo
  • A Turbopuffer.com vem usando isso em seu banco de dados para evitar dependências além do armazenamento de objetos

    • Ficam felizes que, um ano após terem começado no Google Cloud Storage, essa funcionalidade agora também esteja disponível no S3
  • Com consistência forte, já haviam alcançado metade da funcionalidade desejada

  • Há quem tenha dificuldade em entender por que essa funcionalidade é importante

  • Isso está mais próximo de compare-and-set do que de compare-and-swap

  • Quando combinado com a garantia de consistência read-after-write, isso se torna uma base perfeita para construir, sobre armazenamento de objetos, um repositório incremental append-only

    • Resolve o problema de vários escritores acessando o WAL
  • O Azure Blob Storage também oferece suporte a e-tag e controle otimista

    • Há quem se pergunte como isso difere da funcionalidade da AWS
  • Se o algoritmo ETag padrão da AWS for um simples hash MD5, surge a dúvida se colisões de MD5 podem causar falhas nos dados do objeto

    • Considera-se o caso em que se presume que dados diferentes fornecidos por usuários sempre gerarão ETags diferentes
  • O MinIO, implementação open source do Amazon S3, já oferece essa funcionalidade há quase 2 anos

    • A Amazon só agora está alcançando isso
  • Uma nova funcionalidade foi adicionada no verão em resposta ao recurso IfNoneMatch do s3fs

    • Há também quem esteja curioso sobre como essa nova funcionalidade aparecerá em uma abstração de sistema de arquivos