Amazon S3 ajoute la fonctionnalité Put-If-Match (Compare-and-Swap)
(aws.amazon.com)-
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
PutObjectouCompleteMultipartUpload. -
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-matchpermet 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 HTTPif-matchdans 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
Avis Hacker News
Amazon S3 a ajouté une fonctionnalité permettant d’imposer des opérations d’écriture conditionnelle
Turbopuffer.com utilisait déjà cela dans sa base de données pour éviter des dépendances autres que le stockage d’objets
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
Azure Blob Storage prend aussi en charge les e-tags et le contrôle optimiste
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
MinIO, implémentation open source d’Amazon S3, propose cette fonctionnalité depuis près de deux ans
Une nouvelle fonctionnalité a été ajoutée cet été en réaction à la fonctionnalité IfNoneMatch de s3fs