Aller au contenu

Cache stampede

Un cache stampede survient quand plusieurs requêtes manquent la même entrée en cache et relancent le même calcul coûteux.

Architecture logicielle

Un cache stampede survient lorsque de nombreuses requêtes ont besoin d’une même entrée absente du cache à peu près au même moment et déclenchent le même travail à la source. Une entrée expirée ou un cache initialement vide peut ainsi provoquer un pic de charge.

Dans un tableau de bord fictif, 100 requêtes simultanées appartenant au même périmètre de données autorisé consultent summary:tenant-7. Si le résumé est absent et que rien ne coordonne le travail, de nombreux recalculs identiques peuvent démarrer.

Regrouper les requêtes portant sur les mêmes données

Le request coalescing regroupe ces accès : un recalcul en cours est partagé pour la même clé et le même périmètre de données. Les autres requêtes attendent le résultat de façon contrôlée ou reçoivent une valeur plus ancienne si la règle métier de fraîcheur le permet. Ce regroupement ne doit pas mélanger des utilisateurs ou des périmètres d’autorisation différents.

Un verrou limité à un processus ne coordonne pas automatiquement tous les serveurs. Les calculs échoués et les attentes trop longues nécessitent aussi un traitement d’erreur borné. L’invalidation détermine quand une entrée n’est plus utilisable ; la protection contre le stampede gère son renouvellement simultané.

Sources