Coherency dei dati

I dati coerenti sono i dati uguali all'interno della 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 coesistenza dei dati è un sistema di controllo revisione (RCS). Questo sistema è in genere abbastanza semplice, con un solo utente autorizzato a modificare un file specificato alla volta. Altri possono leggere il file, ma non possono modificarli.

L'utente che può modificare un file ha detto di aver estratto il file. L'utente controlla 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.

La memorizzazione nella cache locale dei dati coerenti è abbastanza semplice quando si ha un thread su 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 possono leggere lo stesso file. Questa situazione è ancora abbastanza semplice. Poiché i dati nel file sono statici, ogni computer client può avere la propria copia locale senza implicazioni per la coesistenza dei dati.

Una situazione più comune è un thread che modifica il file e molti altri thread la lettura. Al momento in cui si verifica un'operazione di scrittura, tutte le cache locali di tale 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 diversi utenti RCS vogliono apportare modifiche allo stesso file. Ogni utente nella sequenza deve controllare il file, apportare modifiche e quindi controllare nuovamente il file. Analogamente, in uno schema di memorizzazione nella cache locale il server deve disattivare il privilegio di scrivere in un file in un thread client alla volta.