¿Lightroom realmente vuelve a escribir el archivo DNG *ENTERO* en cada cambio de metadatos?

Cuando Lightroom guarda los cambios de metadatos en un archivo DNG, ¿lo hace?

A) Simplemente reescriba la parte XMP/metadatos del archivo DNG en el archivo existente, es decir, una actualización parcial del archivo.

o

B) Sobrescribir todo el archivo en el disco (en su lugar).

o

C) Elimine el archivo existente y escriba un archivo completamente nuevo en el disco (obviamente con el mismo nombre de archivo). (Ni siquiera estoy seguro de si esto es técnicamente diferente a B anterior)

En caso de que sea relevante/haga una diferencia, estoy usando Lightroom en Windows 8.1 de 64 bits en un sistema de archivos NTFS en un HDD giratorio normal (no SSD). Pero también desea saber si la respuesta es diferente para otros sistemas o SSD.

Básicamente, estoy considerando usar DNG con el archivo RAW original incrustado, por lo que mis archivos DNG tendrían alrededor de 30 MB. Solo me pregunto si esos 30 MB completos se reescribirán en el disco cada vez que toque algo en Lightroom (e incluso cuando no cambie nada de acuerdo con lo que algunas personas han informado).

Parece un muy buen argumento para tener archivos XMP independientes separados, en cuyo caso, solo el archivo XMP pequeño se reescribe con cambios, y el archivo de imagen sin procesar nunca se reescribe. No sé si XMP se combina en el archivo de imagen. Es técnicamente posible reescribir solo los sectores del disco afectados, pero ¿supone que es mucho más fácil reescribir todo el archivo?
Aparte, creo que los SSD ahora están al punto de que, con un uso normal, no va a agotar su capacidad de escritura. Dicho esto, tienen diferentes modos de falla para los discos giratorios, lo que significa que aún debe tener sus copias de seguridad.
Había notado un rendimiento abismal al realizar actualizaciones en una mayor cantidad de archivos usando dng. Escribir solo en xmp fue una gran mejora.

Respuestas (2)

Si los metadatos se integran en el archivo principal, la mayoría de los sistemas operativos/sistemas de archivos en la mayoría de los sistemas informáticos utilizados por los fotógrafos suelen reescribir el archivo principal. No tengo conocimiento de ningún escenario actual que, incluso si un sistema de archivos permite la posibilidad de reescritura parcial de archivos, en realidad ocurre de esa manera cuando se usa Lightroom.

Si los metadatos se almacenan en un archivo sidecar separado, solo es necesario volver a escribir el archivo sidecar. Con Lightroom, el usuario tiene la opción de usar archivos sidecar XMP separados para almacenar metadatos y los pasos de edición que se toman cuando se trabaja con un archivo de imagen. El usuario también tiene la opción de incluir los metadatos dentro del propio archivo de imagen. Hay ventajas y desventajas en cualquiera de las opciones.

Hay sistemas de archivos que manejan los cambios en los archivos de una manera que no reescribe un archivo completo cada vez que se cambia un archivo, pero no son de uso muy común por parte de los consumidores que usan sus computadoras domésticas para almacenar fotografías, o incluso por la mayoría de los fotógrafos profesionales. Si utiliza sistemas de archivos como ZFS o ReFS (que incluso teóricamente permiten la posibilidad de reescritura parcial de archivos) para almacenar fotos, se encuentra en una minoría muy pequeña.

A medida que crece la cantidad de usuarios que adoptan el nuevo APFS de Apple (a través del próximo reemplazo de hardware), eso puede cambiar con el tiempo en el futuro, y las aplicaciones como Lightroom podrían aprovechar esa capacidad en el futuro. A partir de ahora, la mayoría de los fotógrafos no están usando un sistema de archivos de este tipo en sus computadoras, e incluso aquellos que sí lo están, no ganan nada con respecto a la escritura parcial de archivos si la aplicación, como Lightroom, no usa la capacidad.

Todavía no lo he probado con APFS (evito los sistemas operativos beta), y no uso Lightroom en Windows Server (la única forma de probar ReFS), pero puedo decirle que su declaración sobre ZFS es incorrecta y lo dudo. es correcto para APFS o ReFS. Ejecuté Lightroom CC 2015.mumble en OS X 10.11 con O3X ZFS hace unos meses trussy lo vi escribir el archivo completo en cada actualización de metadatos. Creo que te estás confundiendo con la función CoW de estos sistemas de archivos, que simplemente evita una reescritura completa del archivo cuando la aplicación toca solo una parte del archivo; si la aplicación no juega a la pelota, el FS no puede salvarte.
No estoy seguro de que el segundo párrafo implique en absoluto lo que hace una aplicación en particular, solo que algunos de los sistemas de archivos de vanguardia permiten la posibilidad de aprovechar tales capacidades en el futuro que pueden cambiar la realidad actual, que es la esencia principal de la responder..
@WarrenYoung Sus comentarios a esta respuesta parecen argumentar exactamente lo contrario de sus comentarios aquí: photo.stackexchange.com/a/79564/15871
Re: comentarios contradictorios, esto es exactamente lo que quise decir cuando dije que creo que estás confundido. Mi comentario sobre su otra respuesta solo aborda el problema de seguridad de datos que mencionó; CoW no afecta el comportamiento de E/S de la aplicación, solo le dice qué hace el sistema de archivos en el disco como resultado de la E/S de la aplicación. La mayoría de los tutoriales sobre ZFS explicarán esto. Aquí hay un breve resumen de ZFS .
Re: Mi comentario anterior sobre la reescritura del "archivo completo", acabo de repetir mis pruebas y esta vez obtengo resultados diferentes . Sospecho que fui descuidado en mi prueba original, en lugar de que el comportamiento de Lightroom cambiara desde la última prueba. Sin embargo, el objetivo principal de mi comentario anterior es que los resultados serán independientes del sistema de archivos. CoW no cambia silenciosamente el comportamiento de la aplicación para convertir reescrituras de archivos completos en reescrituras de archivos parciales. Solo afecta la seguridad de hacerlo.
@MichaelClark Mi pregunta es realmente sobre lo que hace Lightroom, no sobre el sistema operativo/sistema de archivos. Todos los sistemas operativos y sistemas de archivos comunes admiten la edición de archivos sin volver a escribir el archivo completo. Un cambio de 1 byte a un volumen de Truecrypt de 100 GB o un archivo de imagen de máquina virtual nunca hace que se reescriban 100 GB en el disco, eso sería inútil. ¿De dónde provino su información con respecto a que Lightroom reescribió todo el archivo DNG en el disco en lugar de solo modificarlo? (para cambios de metadatos)

Lightroom no reescribe todo el archivo DNG cuando guarda los metadatos en el archivo, ya sea a través de Cmd/Ctrl-Sla configuración de catálogo "Escribir cambios automáticamente en XMP" o cuando está habilitada.

Verifiqué esto al monitorear Lightroom CC 2016.6.1 en OS X 10.11.6 en dtruss, luego escribí un script Perl para analizar los datos recopilados. Los comentarios en ese script explican el método, pero si solo desea ver un conjunto típico de resultados, aquí tiene:

E/S de datos para el archivo _1020153.RW2:
    256K de lectura
E/S de datos para el archivo _1020153.xmp:
    6.87K lectura
    3.59K escrito
E/S de datos para el archivo _1020176.dng:
    3,38 millones de lectura
    6.52K escrito

Los dos archivos sin procesar mencionados anteriormente fueron capturados el mismo día por la misma cámara, y la E/S proviene de aplicar la misma palabra clave a cada archivo. La única diferencia es que uno es el archivo RAW nativo de la cámara (Panasonic RW2) y el otro fue convertido por Lightroom a DNG antes de la prueba. El archivo RW2 tiene 18,7 MiB y el archivo DNG tiene 13,4 MiB. (La diferencia de tamaño se debe a que DNG utiliza una mejor compresión sin pérdidas que la típica de los formatos RAW de cámara nativos).

Como puede ver, aunque ninguna de las actualizaciones escribió suficientes datos para reescribir todo el archivo, la actualización de DNG involucró aproximadamente 13 veces más de lectura y casi 2 veces más de escritura.

También es de interés que Lightroom hace más que simplemente escribir en el archivo XMP en el caso de RAW de cámara nativo. También lee una cantidad sustancial de datos del archivo sin procesar, probablemente para asegurarse de que el archivo sin procesar no haya cambiado antes de escribir en el archivo XMP complementario.

Sin embargo, no tomaría este único resultado de prueba como representativo si fuera usted. Pruébelo en sus propios archivos. No me sorprendería si obtuvieras resultados diferentes.

Tenga en cuenta que el costo total de estas E/S solo se paga la primera vez que trabaja en un conjunto de archivos determinado en una sesión de Lightroom determinada. Si aplica un montón de palabras clave en sucesión, las lecturas de datos en particular serán casi instantáneas, ya que el contenido del archivo seguirá estando en la memoria caché del búfer de su sistema operativo.

dtrussno está disponible para Windows, pero existen alternativas equivalentes . La adaptación de la secuencia de comandos de análisis de Perl para trabajar con la salida de dichas herramientas debería ser sencilla.

La diferencia en los métodos de compresión es el principal factor contribuyente, pero la diferencia de tamaño también puede deberse en parte a la forma en que los productos de Adobe, incluido el convertidor DNG, descartan información en archivos sin formato que los productos de Adobe no utilizan.