2014-09-19 11 views

risposta

14

Sì, è necessario scrivere codice in entrambi questi modelli, ma ci sono una serie di vantaggi nell'utilizzo dell'approccio read-through/write-behind.

E.g. nel modello cache-aside, l'applicazione è responsabile della lettura e scrittura dal database e anche per mantenere la cache sincronizzata con il database. Ciò renderà complesso il codice dell'applicazione e potrebbe causare la duplicazione del codice se più applicazioni trattano gli stessi dati. Il read-through/write-behind, d'altra parte, semplifica la logica dell'applicazione.

Inoltre il read-through può ridurre le chiamate al database bloccando le chiamate parallele per lo stesso oggetto. Come spiegato in questo article da NCache

Ci sono molte situazioni in cui una cache-item scade e più thread utente finale parallelo per colpire il database. Moltiplicando questo con milioni di elementi memorizzati nella cache e migliaia di richieste utente parallele, il carico sul database diventa notevolmente più alto.

Allo stesso modo write-behind (asincrona) può migliorare le prestazioni dell'applicazione accelerando l'operazione di scrittura,

nella cache a riposo, l'applicazione aggiorna il database direttamente sincrono. Considerando che, una write-behind consente all'applicazione di aggiornare rapidamente la cache e restituire. Quindi consente alla cache di aggiornare il database in background.

Vedere this article per ulteriori dettagli sui vantaggi dell'uso di read-through/write-behind su cache-aside. Spero che questo possa aiutare :)

+0

Grazie mille. Ho visto l'articolo che è stato molto utile. Per caso hai implementato il concetto di read-through, write-behind? – dineshd87

+0

sì, ho lavorato con entrambe le funzioni read-through e write-behind. Anche con pattern write-through identico a write-behind, ma la scrittura del database è sincrona con la cache add (assicurandosi che l'elemento venga aggiunto solo nella cache se è stato scritto correttamente nel database). –

Problemi correlati