Condividi tramite


Memorizzazione nella cache locale

La memorizzazione nella cache locale dei dati è una tecnica usata per velocizzare l'accesso alla rete ai file di dati. Implica la memorizzazione nella cache dei dati nei client anziché nei server, quando possibile.

L'effetto della memorizzazione nella cache locale è che consente la combinazione di più operazioni di scrittura nella stessa area di un file in un'unica operazione di scrittura in rete. La memorizzazione nella cache locale riduce il traffico di rete perché i dati vengono scritti una sola volta. Tale memorizzazione nella cache migliora il tempo di risposta apparente delle applicazioni perché le applicazioni non attendono che i dati vengano inviati attraverso la rete al server.

La memorizzazione nella cache locale dei dati da leggere può sembrare velocizzare le operazioni tramite la lettura. Un semplice esempio è un'applicazione che accede ai dati in sequenza, ad esempio il preprocessore di un compilatore. In questi casi, il livello di rete del sistema operativo legge i dati in rete prima che l'applicazione richieda i dati. Idealmente, la rete distribuisce i dati prima che l'applicazione lo richieda dal file system, generando una risposta quasi istantanea. In pratica, questo accade raramente, ma spesso la lettura delle applicazioni velocizza le applicazioni anticipando la richiesta successiva.

La memorizzazione nella cache locale consente anche di ridurre il traffico di rete leggendo una parte di un file nella rete una sola volta e quindi mantenendolo nella cache locale. Operazioni di lettura successive su tale parte dall'applicazione leggono dalla cache locale.

Un tipo di applicazione che può trarre vantaggio dalla memorizzazione nella cache locale è costituito dai file batch. I processori di comando leggono ed eseguono un file batch una riga alla volta. Per ogni riga, il processore dei comandi apre il file, cerca all'inizio della riga, legge quanto necessario, chiude il file e quindi esegue la riga. Ogni riga genera un numero elevato di traffico di rete. Il traffico di rete può essere ridotto notevolmente memorizzando nella cache l'intero file batch in un client.

La memorizzazione nella cache locale consente anche di risolvere un altro problema associato alle reti, in particolare le reti che eseguono operazioni su modem e altre thin pipe: tempo di risposta lento. Gli utenti non vogliono attendere mentre i dati vengono recuperati in rete, modificati e quindi riscritto. Con la lettura e la memorizzazione nella cache di scrittura, spesso sembra che queste funzioni funzioni funzionino molto più velocemente di quanto effettivamente fanno.

Un rischio di memorizzazione nella cache locale è che i dati scritti hanno solo l'integrità del client stesso, purché i dati vengano memorizzati nella cache nel client. In generale, i dati memorizzati nella cache locale devono essere scaricati nel server il prima possibile. Con i sistemi operativi moderni e il supporto hardware come alimentatori noninterrutbili, il rischio di perdita di dati memorizzati nella cache locale è ridotto. Tuttavia, il rischio esiste ancora ed è consigliabile considerare sia il compromesso tra l'integrità dei dati e la velocità di risposta apparente che il compromesso tra l'integrità dei dati e il traffico di rete ridotto.