8) Quali sono le problematiche di realizzazione della cache nei FSD?
Dimensioni della cache e tecnica di read-ahead
client e server bufferizzano i dati ancora prima che questi diventino necessari.
l’aumento della dimensione di unità di cache aumenta l'efficacia read-ahead.
tempo richiesto per il trasferimento dei dati.
probabilità di problemi di inconsistenza.
Allocazione della cache
cache in memoria centrale:
veloce accesso ai dati, anche per macchine diskless.
cache su disco:
maggiore tempo di accesso ai dati
maggiori dimensioni ed affidabilità della cache
Politiche di flushing:
si denominano blocco sporco (dirty block) i dati, in cache, modificati e non più consistenti con la copia primaria.
il flushing è l’azione di scrittura di dirty block per svuotare la cache
Tecniche di modifica della cache
Write through
invio immediato dei dati modificati al server ed a tutti i client per aggiornare le cache
affidabilità ma scarsa efficienza
Delayed write (scrittura ritardata)
modifiche scritte nella cache locale e solo più tardi propagate al server e alle altre copie
migliore performance, problemi di affidabilità e consistenza
Write on close
scrittura alla chiusura, cioè aggiornamento solo alla chiusura del file
ottime performance in accessi prolungati con frequenti modifiche ad un file
problemi di consistenza ed affidabilità
Periodic write
esame periodico della cache e aggiornamento solo dei blocchi modificati
problemi di consistenza ed affidabilità dipendenti dal periodo
Convalida della cache: decisione se la propria copia è consistente con la principale. In caso di inconsistenza si usa un protocollo di aggiornamento.
Client-initiated approach
Il cliente controlla la consistenza delle informazioni con richiesta al server
frequenza di controllo: da un controllo per ogni accesso alla cache fino ad un solo controllo all'apertura del file, passando attraverso il controllo richiesto periodicamente.
Il controllo introduce ritardo nelle richiesta di accesso
Occorre evitare un eccessivo traffico in rete
Server-initiated approach
Il server controlla le copie di ciascun cliente. Se verifica situazioni di potenziale inconsistenza dei dati, richiede l'aggiornamento
necessità di mantenere nozione dei clienti correnti
con una semantica di sessione, ad ogni richiesta di chiusura di un file modificato, il server avvisa i clienti dell'invalidità delle copie