Vai al contenuto

Cache stampede

Un cache stampede si verifica quando più cache miss simultanei avviano ripetutamente lo stesso calcolo o la stessa query costosa.

Architettura software

Un cache stampede si verifica quando molte richieste necessitano della stessa voce assente dalla cache quasi nello stesso momento e avviano lo stesso lavoro sulla sorgente dati. Una voce scaduta o una cache inizialmente vuota può così causare un picco di carico.

In una dashboard fittizia, 100 richieste simultanee nello stesso ambito di dati autorizzato cercano summary:tenant-7. Se il riepilogo manca e il lavoro non viene coordinato, possono iniziare molti ricalcoli identici.

Raggruppare le richieste degli stessi dati

Il request coalescing raggruppa questi accessi: un ricalcolo in corso viene condiviso per la stessa chiave e lo stesso ambito di dati. Le altre richieste attendono il risultato in modo controllato o ricevono un valore precedente se la regola applicativa di aggiornamento lo consente. Il raggruppamento non deve mescolare utenti o ambiti di autorizzazione diversi.

Un blocco efficace soltanto dentro un processo non coordina automaticamente tutti i server. Anche i calcoli falliti e le attese troppo lunghe richiedono una gestione degli errori con limiti definiti. L’invalidazione stabilisce quando una voce non è più utilizzabile; la protezione dallo stampede gestisce il rinnovo simultaneo.

Fonti