Siguiente: Introducci�n b�sica a NFS Superior: Mejorando NFS Anterior: Mejorando NFS |
Tradicionalmente cinco llamadas al sistema han compuesto el interfaz que nos ofrece el kernel para el manejo de ficheros, ``read, write, open, close y seek''. Aunque es un conjunto completo que nos da todas las operaciones necesarias para manejar ficheros, en algunos casos es especialmente ineficiente.
Cuando estamos haciendo una copia de un fichero entre dos ordenadores remotos, el fichero debe atravesar dos veces la red, una al hacer read al ordenador local (ocupando innecesariamente memoria y CPU) y otra al hacer write de nuevo al remoto.
Para evitar este desperdicio de recursos y hacer m�s r�pida la copia hemos a�adido una nueva operaci�n al interfaz de NFS. Se llama copy y tiene como prop�sito el de copiar el contenido de un descriptor de fichero a otro de forma remota. En la figura 1 se puede ver un ejemplo de uso de copy en comparaci�n con los tradicionales read/write.
Aunque a�adir una nueva operaci�n a NFS deber�a haber sido f�cil, nos encontramos con algunos problemas que nos tuvieron bastante tiempo bloqueados.
El primero de ellos lo produjo la forma en la que est� dise�ado el servidor de NFS. Este servidor atiende peticiones de una en una, lo que significa que si est� bloqueado por haber mandado un copy, no puede atender la escritura que �ste genera. A causa de esto se puede producir un interbloqueo del servidor consigo mismo que congele la atenci�n de cualquier otra operaci�n de NFS. Mas adelante detallamos c�mo resolvimos este problema.
La segunda cuesti�n con la que nos encontramos es que, sorprendentemente, si el origen y el destino son distintos y remotos, en algunos casos, realiza m�s despacio la operaci�n de copia usando copy. Mas adelante explicaremos por qu�.