4 puntos por GN⁺ 2024-11-26 | 1 comentarios | Compartir por WhatsApp
  • 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-match si 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 HTTP if-match en 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

 
GN⁺ 2024-11-26
Comentarios en Hacker News
  • Se agregó una función que permite forzar operaciones de escritura condicional en Amazon S3

    • Se quería una función que obligara a que el nombre del objeto coincidiera con el hash
    • Esto ayuda a construir un almacenamiento direccionable por contenido
  • Turbopuffer.com ha estado usando esto en su base de datos para evitar dependencias aparte del almacenamiento de objetos

    • Les alegra poder usar esta función en S3, un año después de haber comenzado con Google Cloud Storage
  • 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

    • Resuelve el problema cuando varios escritores acceden al WAL
  • Azure Blob Storage también soporta e-tag y control optimista

    • Hay quienes se preguntan en qué se diferencia de la función de AWS
  • 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

    • Se considera el caso en el que se asume que datos distintos proporcionados por el usuario siempre generarán ETag distintos
  • MinIO, una implementación open source de Amazon S3, ya ofrecía esta función desde hace casi 2 años

    • Amazon apenas se está poniendo al día
  • En respuesta a la función IfNoneMatch de s3fs, durante el verano se agregó una nueva función

    • También hay curiosidad por cómo aparecerá esta nueva función en la abstracción de sistema de archivos