¿Qué ocurre en NFS si 2 o más servidores tratan de escribir el mismo archivo al mismo tiempo?

StackOverflow https://stackoverflow.com/questions/3832646

  •  26-09-2019
  •  | 
  •  

Pregunta

Estoy trabajando en una aplicación web PHP que hace el cambio de tamaño automático de las imágenes y estoy pensando de almacenar las copias en caché en el NFS montado NAS por lo que es fácil para mí para limpiar la caché cuando se actualizan las imágenes.

Lo único que me preocupa es lo que sucede en general con NFS, si 2 o más de los servidores del clúster están tratando de crear el mismo archivo de caché de imágenes al mismo tiempo?

Hay una buena posibilidad de que cuando la caché se vacía para actualizaciones de contenido que podrían colisionar el estilo, pero no tengo una gran manera de probar este escenario en el desarrollo porque sólo estoy trabajando en una sola caja.

Cualquier persona con experiencia en esto?

¿Fue útil?

Solución

Depende de cómo se abre el archivo. Si abre el archivo en modo "append" a continuación, Unix / Linux escriba realmente el contenido de una memoria caché hasta que se cree un carácter de nueva línea, a continuación, se pega la nueva línea hasta el final del archivo (sobre-escribir el " EOF" patrón de bytes) y escribe un nuevo 'EOF'. En este caso, si dos personas intentan escribir en el mismo archivo al mismo tiempo a continuación, tanto de las líneas de escritura pasará a través, adhiriéndose una línea a la vez en el orden en que fueron recibidos. Por lo tanto se puede esperar algo como:

This was the old contents
of the file
The first script added
The second script added
this line (script 1)
this line (script 2)

En la rara posibilidad de que dos comandos de "escritura" llegan a la misma hora (abajo a la precisión de nanosegundos), entonces el sistema operativo en realidad crea un estado de interrupción. Es hasta el sistema operativo cómo se maneja esto, pero la mayoría sólo va a generar dos números al azar para decidir quién va primero.

Si se abre el archivo en modo de "escritura" (di que quieres agregar contenido a la mitad), entonces usted realmente tiene que bloquear el archivo para hacer esto. El segundo script PHP generará un error diciendo que no podía abrir el archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top