Re: [SPIP Zone] Plugin de cache efficace

From : JLUC@... , the 7th February 2018 15:17

Le 07/02/2018 à 10:20, cedric@... a écrit :
 "There are only two hard things in Computer Science: cache invalidation and naming things."  — Phil KarltonOuf, on est pas seuls dans l'univers.
 Pour ce qui est de l’invalidation selective, c’est une usine à gaz qui n’a pour intérêt que de compliquer énormément toutes les choses.  Il faut se demande à quoi sert le cache et ce qu’on en attends : en l’occurence de la robustesse vis à vis des pics de charge et de l’indisponibilité éventuelle temporaire de la base de donnée.
Ce sont des circonstances critiques mais relativement exceptionnelles pour lequel le fonctionnement actuel est ok... pour autant que le pic ne dure pas. Ce qui m'intéresse actuellement, c'est de diminuer la charge serveur au quotidien, simplement pour bénéficier au mieux des ressources limitées dont on dispose en s'en servant pour des tâches utiles, comme de "calculer du nouveau" plutôt que de "calculer des trucs déjà connus dans le passé".
 Et donc du coup combien de charge et d’énergie tu peux allouer à la gestion de l’invalidation d’un cache pour ne pas être perdant ?
Ok ce qu'il faut optimiser.
 En pratique dès qu’on commence à dépenser de l’énergie à calculer quoi invalider on est perdant par rapport à   l’espérance de gain…
Je n'ai pas encore cette pratique mais la décision SPIPienne de tout invalider à chaque changement a été prise à une époque où la gestion du cache passait par la BDD et où les caches étaient stockés dans des fichiers, et c'était donc très coûteux. Je ne me trompe pas sur le contexte dans lequel s'inscrivait de cette décision ? Mais dans un autre contexte, avec un cache géré par mémoization par exemple, les rapports sont très différents, car le coût d'interrogation du cache est bien moindre, de même que le coût de son filtrage ou nettoyage ciblé. As tu la pratique avec un cache géré par mémoization ? JLuc