cosa significa cold cache e warm cache concept?


10

Ho letto un documento e ha usato i termini "cold cache" e "warm cache". Che cosa significa concetto di cold cache e warm cache? Visito questo , ma ho bisogno di qualcosa di più.


1
Cosa considereresti utile? Come intendi utilizzare le informazioni? Lo chiedo solo perché, sai: google.com/search?q=wikipedia+cold+cache
mikeserv

Voglio usare questo concetto nel mio documento, quindi ho bisogno di maggiori dettagli su di essi.
Amir,

Sta solo usando la temperatura come metafora per capire quanto sia utile una cache particolare poiché "utilità" esiste su un continuum. Le cache più calde hanno alte percentuali di hit, mentre le cache fredde sono piene di dati che probabilmente non chiederai più presto e quindi stanno solo occupando spazio.
Bratchley

@JoelDavis - Se le cache non avessero bisogno di gestire gli errori, quanto sopra sarebbe vero, e l' unico metodo di sostituzione dei dati memorizzati nella cache che sarebbe mai stato necessario sviluppare sarebbe LFU, ma poiché i dati sono soggetti a errori per una serie di motivi, la gestione una cache fredda è un po 'più complicata della semplice sostituzione dei dati meno utilizzati.
Mikeserv,

Risposte:


13

Bene, in breve: una cache calda è utile mentre una cache fredda non lo è. In effetti, una cache fredda può essere pericolosa da usare.

Vedete, il punto centrale di una cache è mantenere accessibili i dati spesso accessibili. Ad esempio una cache DNS memorizzerà localmente i risultati delle risoluzioni dei nomi che hai richiesto di recente e, quando le stesse risoluzioni vengono nuovamente richieste, i loro risultati sono già disponibili e pubblicati immediatamente senza interrogare un database dei nomi più grande, probabilmente fuori sede . In altre parole, il tuo computer non deve chiedere al server dei nomi di dominio del tuo provider di servizi Internet l'indirizzo IP su google.com perché il tuo computer lo sa già: la tua cache DNS è calda.

Ma se non richiedi mai l'ip di Google, non sarà nella tua cache. Una cache di freddo è troppo stantio per essere utile - come nei dati in esso contenuti è probabile troppo vecchio per essere preciso - o è del tutto vuota, e svuotare di abbondanza freddo.

Ma spesso il vuoto è meglio del vecchio, anche se questo dipende fortemente dai dati che vengono memorizzati nella cache. Vuoto è facile da gestire perché ha solo bisogno di essere riempito - questo è un gioco da ragazzi - ma le vecchie cache richiedono la correzione di errori. Questo è il principale problema logistico dello sviluppo e della manutenzione dei sistemi cache: come puoi sapere se i dati che hai memorizzato nella cache sono aggiornati e cosa fare se non lo è?

Non risponderò a nessuna di queste domande - sono entrambe dipendenti dall'implementazione e probabilmente molto lontani dalle mie capacità, comunque - ma si dovrebbe capire che tutti i sistemi di memorizzazione nella cache presentano un rischio intrinseco di inesattezza. Va con il territorio. Il rischio potrebbe non essere grande - spesso è solo un rischio di qualche nanosecondo in più nel tempo di elaborazione. Il sistema di cache controllerà i dati richiesti a fronte di qualsiasi errore sia stato implementato dal progettista della cache e, se lo si ritiene necessario, il sistema di cache, ad esempio, interrogherà il DNS dell'ISP per l'ip di Google e tutto va bene.

Il più caldo della cache, però, il meno v'è rischiato. I vantaggi della cache calda di mantenere i dati cari vicini superano i rischi degli svantaggi della cache fredda o ... probabilmente non dovresti avere la cache.


7
Come recita la famosa citazione, "Ci sono due problemi difficili nell'informatica: denominare le cose, invalidare la cache ed errori off-by-one". Sapere che i valori memorizzati nella cache sono vecchi è esattamente ciò che significa invalidare la cache :)
Riking

Nel tuo commento sull'inesattezza della cache, questo non è necessariamente vero. Se il sistema / l'applicazione ha accesso esclusivo all'origine dati, le voci della cache possono essere aggiornate o eliminate in base alle esigenze. È solo se hai a che fare con fonti con accesso simultaneo (es. DNS, NFS o CIFS) che ti imbatti in questo problema (anche se solo uno ha accesso in scrittura, come con DNS).
Bratchley

"altrimenti perché stai memorizzando nella cache" Lo stesso motivo che avresti per la memorizzazione nella cache di qualsiasi altra cosa: protezione da latenza elevata. Ad esempio, la cache del filesystem è solo così il sistema operativo non deve uscire sul disco per richieste comuni. La cache è ancora in uno stato coerente, poiché le modifiche ai filesystem locali dovrebbero comunque passare attraverso il kernel. La parte ECC non è realmente rilevante poiché quel tipo di corruzione non è dovuto alla memorizzazione nella cache, ma a un errore hardware che colpirebbe tutti i sistemi allo stesso modo, indipendentemente da come sono stati progettati.
Bratchley

Il disco è una cache di RAM?
Bratchley

Penso che tu abbia invertito la relazione. I contenuti del disco a cui è stato effettuato l'accesso di recente vengono memorizzati nella cache, pertanto la memoria è una cache per disco (o almeno viene utilizzata come parte del sistema di memorizzazione nella cache). L'accesso al disco è l'operazione lenta che l'archiviazione di elementi in memoria è progettata per aggirare.
Bratchley

6

In generale, una cache fredda non è ben popolata (ancora). Pertanto, se la cache è fredda, le informazioni devono essere recuperate utilizzando il metodo, presumibilmente, più lento. Questo è in genere il caso poco dopo l'avvio di un'applicazione o i tipi di query cambiano in modo significativo.

Al contrario, una cache calda è ben popolata di informazioni recuperate di recente o frequentemente.

Per quanto riguarda i filesystem ext e le strutture di directory, ci sono alcune informazioni su come la cache generalmente funziona nel Virtual File System (VFS) in Linux qui: http://www.tldp.org/LDP/tlk/fs/filesystem.html


"recentemente o frequentemente"? Di recente sì. ma spesso?
Faheem Mitha,


1
@FaheemMitha È vero - LFU è sicuramente un acronimo molto comune che incontrerai in questo dipartimento. Se la cache è ragionevolmente certa di contenere solo informazioni recenti ed è piena, è necessario disporre di altri mezzi per determinare quali informazioni vengono sostituite durante la lettura di nuovi dati. LFU è probabilmente il modo in cui andrai.
Mikeserv,

@cpugeniusmv Grazie per il link. Ciò potrebbe ragionevolmente essere incluso nella tua risposta.
Faheem Mitha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.