Con una cache distribuita, un sottoinsieme della cache viene mantenuto localmente mentre il resto viene tenuto in remoto.
- In un'operazione get , se la voce non è disponibile localmente, verrà utilizzata la cache remota e la voce verrà aggiunta alla cache locale.
- In un'operazione put , vengono aggiornate sia la cache locale che la cache remota. Anche altri nodi nel cluster devono essere notificati per invalidare anche la loro cache locale.
Qual è il modo più semplice per raggiungere questo obiettivo se lo hai implementato tu stesso , supponendo che i nodi non siano a conoscenza l'uno dell'altro.
Modifica La mia attuale implementazione va così:
- Ogni voce della cache contiene un timestamp.
- L'operazione Put aggiornerà la cache locale e la cache remota
- Operazione di prova proverà la cache locale e la cache remota
- Un thread in background su ogni nodo controllerà periodicamente la cache remota per ogni voce nella cache locale. Se il timestamp su remoto è più recente, sovrascrivi il locale. Se la voce non viene trovata in remoto, eliminala dal locale.