Amazon S3 agrega la función Put-If-Match (Compare-and-Swap)
(aws.amazon.com)-
Nueva función de Amazon S3: escritura condicional
-
Amazon S3 ahora puede realizar escrituras condicionales que actualizan un objeto después de evaluar si no ha sido modificado. Esto ayuda a coordinar escrituras concurrentes sobre el mismo objeto y evita que varios escritores simultáneos lo sobrescriban accidentalmente sin conocer su contenido.
-
Esta función puede usarse tanto en buckets de propósito general como en buckets de directorio de S3, proporcionando el ETag del objeto mediante solicitudes API de S3 PutObject o CompleteMultipartUpload.
-
La escritura condicional simplifica la forma en que las aplicaciones distribuidas actualizan de manera simultánea conjuntos de datos compartidos. De forma similar a verificar con el encabezado condicional HTTP
if-none-matchsi un objeto existe antes de crearlo, los clientes ahora pueden realizar una comprobación de escritura condicional especificando el ETag del objeto mediante el encabezado HTTPif-matchen la solicitud API. -
S3 evalúa si el ETag del objeto coincide con el valor proporcionado en la solicitud API y luego confirma la escritura, evitando que los clientes sobrescriban el objeto hasta que se cumpla la condición.
-
Este nuevo encabezado condicional puede ayudar a mejorar la eficiencia del análisis a gran escala, el aprendizaje automático distribuido y otras cargas de trabajo altamente paralelizadas.
-
Esta nueva función de escritura condicional está disponible en todas las regiones de AWS sin costo adicional. Se puede realizar escritura condicional usando AWS SDK, API o CLI. Para más detalles sobre la escritura condicional, se puede consultar la guía del usuario de S3.
-
1 comentarios
Comentarios en Hacker News
Se agregó una función que permite forzar operaciones de escritura condicional en Amazon S3
Turbopuffer.com ha estado usando esto en su base de datos para evitar dependencias aparte del almacenamiento de objetos
Con la consistencia fuerte se logró la mitad de la funcionalidad deseada
A algunas personas les cuesta entender por qué esta función es importante
Esto se parece más a compare-and-set que a compare-and-swap
Combinado con la garantía de consistencia de lectura después de escritura, se convierte en una base perfecta para construir un almacenamiento incremental append-only sobre un object store
Azure Blob Storage también soporta e-tag y control optimista
Si el algoritmo ETag predeterminado de AWS es un hash MD5 común, surge la duda de si los choques de MD5 podrían hacer que fallen los datos del objeto
MinIO, una implementación open source de Amazon S3, ya ofrecía esta función desde hace casi 2 años
En respuesta a la función IfNoneMatch de s3fs, durante el verano se agregó una nueva función