4 points par GN⁺ 2024-11-26 | 1 commentaires | Partager sur WhatsApp
  • Nouvelle fonctionnalité d’Amazon S3 : écriture conditionnelle

    • Amazon S3 peut désormais effectuer des écritures conditionnelles qui mettent à jour un objet après avoir vérifié qu’il n’a pas été modifié. Cela aide à coordonner les écritures concurrentes sur un même objet et à éviter que plusieurs auteurs simultanés n’écrasent involontairement le contenu sans connaître son état.

    • Cette fonctionnalité peut être utilisée dans les buckets S3 à usage général comme dans les directory buckets, en fournissant l’ETag de l’objet via une requête API S3 PutObject ou CompleteMultipartUpload.

    • L’écriture conditionnelle simplifie le fonctionnement des applications distribuées où plusieurs clients mettent à jour simultanément un jeu de données partagé. De la même manière que l’en-tête conditionnel HTTP if-none-match permet de vérifier si un objet existe avant sa création, les clients peuvent désormais effectuer un contrôle d’écriture conditionnelle en spécifiant l’ETag de l’objet via l’en-tête HTTP if-match dans la requête API.

    • S3 valide que l’ETag de l’objet correspond à la valeur fournie dans la requête API avant de valider l’écriture, ce qui empêche les clients d’écraser l’objet tant que la condition n’est pas remplie.

    • Ce nouvel en-tête conditionnel peut contribuer à améliorer l’efficacité de l’analytique à grande échelle, du machine learning distribué et d’autres charges de travail fortement parallélisées.

    • Cette nouvelle fonctionnalité d’écriture conditionnelle est disponible sans coût supplémentaire dans toutes les régions AWS. Les écritures conditionnelles peuvent être effectuées à l’aide des AWS SDK, de l’API ou de la CLI. Pour plus d’informations sur les écritures conditionnelles, consultez le guide utilisateur S3.

1 commentaires

 
GN⁺ 2024-11-26
Avis Hacker News
  • Amazon S3 a ajouté une fonctionnalité permettant d’imposer des opérations d’écriture conditionnelle

    • Certains voulaient une fonction imposant que le nom de l’objet corresponde à son hash
    • Cela aide à construire un stockage adressable par le contenu
  • Turbopuffer.com utilisait déjà cela dans sa base de données pour éviter des dépendances autres que le stockage d’objets

    • Ils se réjouissent de pouvoir utiliser cette fonctionnalité sur S3, un an après avoir démarré sur Google Cloud Storage
  • La cohérence forte a permis d’atteindre la moitié de la fonctionnalité souhaitée

  • Certains ont du mal à comprendre pourquoi cette fonctionnalité est importante

  • Cela se rapproche davantage d’un compare-and-set que d’un compare-and-swap

  • Combiné à la garantie de cohérence lecture-après-écriture, cela constitue une base parfaite pour construire un stockage incrémental en mode append-only au-dessus d’un stockage d’objets

    • Cela résout les problèmes quand plusieurs rédacteurs accèdent au WAL
  • Azure Blob Storage prend aussi en charge les e-tags et le contrôle optimiste

    • Certains se demandent en quoi cela diffère de la fonctionnalité d’AWS
  • Si l’algorithme ETag par défaut d’AWS est un simple hash MD5, certains s’interrogent sur la possibilité qu’une collision MD5 fasse échouer les données d’un objet

    • Ils envisagent le cas où l’on suppose que des données fournies par des utilisateurs différents généreront toujours des ETag différents
  • MinIO, implémentation open source d’Amazon S3, propose cette fonctionnalité depuis près de deux ans

    • Amazon ne fait que rattraper son retard
  • Une nouvelle fonctionnalité a été ajoutée cet été en réaction à la fonctionnalité IfNoneMatch de s3fs

    • Certains se demandent comment cette nouvelle fonctionnalité apparaîtra dans l’abstraction de système de fichiers