Le mécanisme lockLoadData doit diminuer la charge sur le serveur.
Auparavant, lorsque le cache de configuration était nettoyé sur des sites très chargés, tous les clients généraient les mêmes informations, ce qui augmentait considérablement la charge du processeur / io.
Avec LockLoadData, un seul client générera un cache et d'autres l'attendront.
Plus de détails sur son fonctionnement.
La première fonction appelle le rappel "get data" et s'il obtient les données, il suffit de les renvoyer (donc si les données dans le cache, le code fonctionne comme précédemment et n'utilise pas de verrous).
Si les données ne sont pas disponibles et que le verrou est verrouillé, alors dans la boucle, nous essayons de charger les données jusqu'à ce que les données soient récupérées ou que le verrou soit supprimé.
S'il n'y a pas de verrou, nous créons un verrou et générons des données dans l'enregistrer dans le cache et supprimer le verrou et retourner les données
PS: Nous avons envoyé ces modifications comme un patch pour l'un des clients avec une charge jusqu'à 20 kRPM et cela fonctionne au moins 3 mois, sans aucun problème. Alors peut-être le problème dans votre personnalisation / modules (par exemple s'ils ont cassé le mécanisme de cache)