Coerenza dei dati
I dati coerenti sono dati uguali nella rete. In altre parole, se i dati sono coerenti, i dati nel server e tutti i client vengono sincronizzati. Un tipo di sistema software che fornisce la coerenza dei dati è un sistema di controllo delle revisioni (RCS). Un sistema di questo tipo è in genere piuttosto semplice, con un solo utente autorizzato a modificare un file specificato alla volta. Altri utenti possono leggere il file, ma non modificarlo.
L'utente che può modificare un file viene detto di averla estratta. L'utente archivia quindi il file modificato in modo che altri utenti possano visualizzare le modifiche. Solo dopo che l'utente ha estratto un file in può essere estratto da un altro utente.
Un RCS richiede l'intervento attivo degli utenti per operare in modo utile. Un file system che opera in una rete deve gestire automaticamente il problema.
Fornire la memorizzazione nella cache locale di dati coerenti è piuttosto semplice quando si dispone di un thread in un client che accede a un file nella rete alla volta. Tuttavia, nella maggior parte dei casi molti thread diversi in uno o più computer potrebbero leggere lo stesso file. Questa situazione è ancora abbastanza semplice. Poiché i dati nel file sono statici, ogni computer client può avere una propria copia locale senza implicazioni per la coerenza dei dati.
Una situazione più comune è la modifica del file da parte di un thread e molti altri thread che lo leggono. Quando si verifica un'operazione di scrittura, tutte le cache locali del file sono obsolete. Il server deve notificare a ogni client di abbandonare la cache. Tutte le operazioni di lettura successive per il file devono essere eseguite in rete.
In un'altra situazione comune, più thread in uno o più client di rete potrebbero provare a scrivere nello stesso file. Questa situazione è simile a quella in cui più utenti RCS vogliono apportare modifiche allo stesso file. Ogni utente in sequenza deve archiviare il file, apportare modifiche e quindi archiviare nuovamente il file. Analogamente, in uno schema di memorizzazione nella cache locale il server deve consegnare il privilegio di scrivere in un file in un thread client alla volta.