Ciao, e benvenuto nella seconda puntata della sessantunesima stagione. Oggi affrontiamo la domanda più importante di tutta la stagione, quella da cui dipende tutto il resto: perché mai il caching funziona? Perché tenere qualche copia dovrebbe fare la differenza? La risposta è un'osservazione semplice sul mondo, che una volta capita illumina ogni cosa. Oggi parliamo del segreto della ripetizione.
Partiamo da un'ipotesi assurda, per capire per contrasto. Immagina un mondo in cui ogni richiesta è completamente diversa da tutte le altre. Ogni volta che qualcuno chiede qualcosa al tuo sistema, chiede una cosa nuova, unica, mai chiesta prima e mai più chiesta dopo. In un mondo così, tenere una scorta di copie sarebbe totalmente inutile: qualunque cosa tu abbia messo da parte, non verrà mai richiesta di nuovo. La dispensa resterebbe piena di roba che non serve a nessuno. In un mondo di richieste tutte diverse, il caching non ha alcun senso.
Voglio darti la buona notizia, perché il mondo vero non è così. Per nostra grandissima fortuna, il mondo reale non funziona affatto in quel modo. Nel mondo vero, le richieste non sono distribuite in modo uniforme: sono terribilmente sbilanciate. Un piccolo gruppo di cose viene chiesto in continuazione, mentre la stragrande maggioranza delle altre viene chiesta di rado o quasi mai. Pensa a un sito di notizie: pochi articoli del momento si prendono la gran parte delle visite. Pensa a un negozio online: pochi prodotti popolari dominano le ricerche. Pensa al tuo computer: stai lavorando quasi sempre sugli stessi pochi file. C'è sempre un piccolo insieme caldo, che torna e ritorna.
Voglio darti il nome di questa proprietà, perché la useremo sempre. Questa tendenza delle stesse cose a tornare si chiama località, e ha due forme. La prima è la ripetizione nel tempo: se una cosa è stata chiesta ora, è molto probabile che venga richiesta di nuovo tra poco. Il presente è il miglior indizio del futuro immediato. La seconda è la vicinanza: quando usi una cosa, spesso subito dopo ti servono anche quelle vicine a lei. Apri un capitolo di un libro, e probabilmente leggerai anche le pagine successive. Sono queste due regolarità, la ripetizione e la vicinanza, a rendere il mondo prevedibile abbastanza perché una scorta funzioni.
Voglio darti l'immagine che rende chiara questa idea, perché la fissa. Torniamo alla dispensa. Perché ha senso avere una dispensa in cucina? Non perché contenga tutto il cibo del mondo, non ci starebbe mai. Ha senso perché tu cucini, più o meno, sempre le stesse cose. Usi spesso l'olio, il sale, la pasta, qualche spezia: e quelli li tieni a portata di mano. Se invece ogni giorno cucinassi un piatto esotico con ingredienti rarissimi, mai gli stessi, la dispensa non ti servirebbe a niente: dovresti comunque andare a comprare tutto ogni volta. La dispensa funziona solo grazie alla ripetizione delle tue abitudini. Togli la ripetizione, e la scorta diventa inutile.
Voglio darti la misura che conta davvero, perché è una sola. Da tutto questo nasce l'unico numero che conta veramente per una cache: quanto spesso, quando cerchi una cosa, la trovi già pronta nella scorta. È il tasso di successo. Se cerchi cento cose e novanta le trovi già in dispensa, la tua cache è meravigliosa: stai risparmiando quasi tutti i viaggi. Se su cento ne trovi solo dieci, la scorta serve a poco, e forse non vale nemmeno la fatica di tenerla. Tutta l'arte di una buona cache si riduce, in fondo, a una cosa: alzare il più possibile quel tasso di successo, cioè fare in modo che nella scorta ci siano proprio le cose che verranno chieste.
Voglio darti la lezione generale, perché è profonda. La lezione è che il caching non è una magia tecnica: è una scommessa sulla regolarità del mondo. Funziona perché il mondo si ripete, perché il passato assomiglia al futuro immediato, perché pochi elementi caldi dominano la scena. Ogni volta che tieni una copia, stai scommettendo che quella cosa tornerà utile. E siccome, nel mondo reale, questa scommessa è quasi sempre vincente, il caching è uno dei trucchi più efficaci che esistano. Non sfrutta un dettaglio della macchina: sfrutta una proprietà della realtà.
Per oggi ci fermiamo qui. Abbiamo capito perché la cache funziona. In un mondo di richieste tutte diverse, non servirebbe a nulla. Ma il mondo vero è sbilanciato: poche cose calde vengono chieste in continuazione, la maggioranza quasi mai. Questa tendenza si chiama località, e ha due forme: la ripetizione nel tempo, e la vicinanza. Come la dispensa, che funziona solo perché cucini più o meno sempre le stesse cose. L'unico numero che conta è il tasso di successo: quanto spesso trovi la copia già pronta. E la lezione: il caching non è magia tecnica, è una scommessa sulla regolarità del mondo, quasi sempre vincente. Nella prossima puntata: la piramide della memoria, il caching a ogni livello. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.