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.
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
Termes associés
- Mise en cacheLa mise en cache réutilise des données ou résultats stockés. Validité et périmètre utilisateur autorisé font partie de la conception.
- Invalidation du cacheL’invalidation met fin à la réutilisation d’une copie selon des règles définies. L’enregistrement source reste distinct.
- BackpressureLa backpressure adapte le débit entrant à la capacité de traitement du destinataire grâce à un signal de ralentissement ou de pause.
- Condition de concurrenceUn résultat erroné dépend de l’ordre chronologique d’accès simultanés qui se chevauchent.
- Fuite de mémoireDe la mémoire devenue inutile reste occupée sans nécessité pendant l’exécution du programme.
- Concurrence en programmationOrganiser plusieurs tâches pour que leurs périodes de traitement puissent se chevaucher.
Votre projet avec ASES
Décrivez-nous votre projet. Nous revenons vers vous avec une première évaluation.