Coherencia de datos

Los datos coherentes son los datos que son los mismos a través de la red. Es decir, si los datos son coherentes, los datos del servidor y todos los clientes se sincronizan. Un tipo de sistema de software que proporciona coherencia de datos es un sistema de control de revisiones (RCS). Este sistema suele ser bastante sencillo, con solo un usuario permitido modificar un archivo especificado a la vez. Otros pueden leer el archivo, pero no pueden cambiarlo.

Se dice que el usuario que puede cambiar un archivo lo ha desprotegido. A continuación, el usuario comprueba el archivo modificado para que otros usuarios puedan ver los cambios. Solo después de que el usuario haya comprobado un archivo de nuevo en puede desprotegerlo otro usuario.

Un RCS requiere la intervención activa de los usuarios para que funcionen de forma útil. Un sistema de archivos que funciona a través de una red debe controlar el problema automáticamente.

Proporcionar almacenamiento en caché local de datos coherentes es bastante sencillo cuando tiene un subproceso en un cliente que accede a un archivo a través de la red a la vez. Sin embargo, en la mayoría de las situaciones, muchos subprocesos diferentes en uno o varios equipos pueden leer el mismo archivo. Esta situación sigue siendo bastante sencilla. Dado que los datos del archivo son estáticos, cada equipo cliente puede tener su propia copia local sin implicaciones para la coherencia de datos.

Una situación más común es un subproceso que modifica el archivo y muchos otros subprocesos lo leen. Momento en que se produce una operación de escritura, todas las cachés locales de ese archivo están obsoletas. El servidor debe notificar a cada cliente que abandone su caché. Todas las operaciones de lectura posteriores para el archivo se deben realizar a través de la red.

En otra situación común, es posible que varios subprocesos en uno o varios clientes de red intenten escribir en el mismo archivo. Esta situación es similar a una en la que varios usuarios de RCS desean realizar cambios en el mismo archivo. Cada usuario en secuencia debe desproteger el archivo, realizar cambios y, a continuación, volver a comprobar el archivo. Del mismo modo, en un esquema de almacenamiento en caché local, el servidor debe entregar el privilegio de escribir en un archivo en un subproceso de cliente a la vez.