Alors, je vais répondre à tes questions aussi clairement que possible :
*/ Je comprendrais jamais pourquoi l'invalidation du cache n'est pas relier à la modification des données qu'il contient : C'est le cas de certains systèmes de cache (templeet par exemple, mais aussi mon système de cache dont je parles dans le post précédent...). Mais certaines données sont volatiles dans la durée, ou selon d'autres critères (nombre d'affichages, ...), c'est le cas -par exemple-d'une page d'accueil de news qui ne présente que les news du jour (Ce que l'on apelle "a la une" ou "édition quotidienne"). De plus, dans certains cas (particuliers), le déploiement du cache est indépendant du code du site, auquel tu n'as pas toujours accès, ou que tu n'as pas forcément le droit/l'envie de modifier... Dans ce cas, c'est le lifetime de la page qui sert à remetre à jour le cache... Un autre concept auquel il faut pensser est la publicité... Si tu dépends d'une régie un peut chiante, tu doit parfois renouveler par toi meme le cache régulièrement (problèmes d'autopromo, de remplissage, de script de pub mal foutu, ...).
*/ Mais quel est l'interret du "daemon pour vider le cache selon divers critères" ? : Je pensse que tu n'as pas compris le fonctionnement de cette nouvelle génération de systèmes de cache. Le client est dirigé automatiquement vers la page statique en cache sans aucune intervention d'aucun script (seul mod_rewrite selon les cas entre en jeu) qui bouferais des ressources à tout casser. Si le serveur ne peut fournir cette page, alors il doit renvoyer une erreur 404. C'est là que toi, tu remplaces l'erreur 404 par ton script ou ton cgi qui vas générer la page dans le cache (le cas échéant, cad si vraiement elle existe hein, sinon il renvoie vraiement un 404) et la renvoyer au client. Donc si le fichier existe dans le cache, meme si il est expiré (parceque certaines contraites te forcent à mettre un délai de vie à certaines pages), comme aucune requète client ne vas déclencher d'execution de script pour cette page, elle ne sera jammais renouvelée. D'où le daemon, ou le script lancé régulièrement par cron (ce qui reviens au meme ;)), qui permet de faire le ménage dans le cache... Ca permet aussi de gérer certains critères bien lourds comme des problèmes d'espace disque... Oui on est sur un serveur, donc oui on met en face les ressources qu'il faut, mais si -pour je ne sait quelle raison- un client veut son cache en tmpfs (mémoire vive), bah 2Go en mémoire vive, ca fait mal :/
*/ pour le problème de savoir si le cache doit etre regénéré au fur et à mesure ou il est invalidé, ou si on efface simplement le ficheir du cache, c'est très complexe... En effet, si tu efface, le premier client qui redemanderas la page se veras servir de facon plus lente que d'habitude (attention, tout est relatif, cad que dans le pire des cas, ca ne seras pas plus lent qu'une page dynamique standart), par contre, pour les pages peut demandées, ca permet d'économiser du disque et de la charge... Par exemple, pour le gros site dont je parlais, le cache représente 4.1Go de html (bon, c'est vrai que certaines pages sont lourdes en HTML parceque mal faites, mais bon, je gère pas les squeletes moi...) pour 210000 pages en cache environ... D'un autre coté si tu le génères en bg, tu t'exposes au fait de générer des pages qui ne seront pas consultées, ou du moins pas avant quelques temps... Donc tu boufes du CPU et du HDD pour rien...
[^] # Re: Euh...
Posté par _PinG _ . En réponse à la dépêche Un benchmark Apache, Zope, SPIP et Templeet sur un OpenBrick. Évalué à 1.
*/ Je comprendrais jamais pourquoi l'invalidation du cache n'est pas relier à la modification des données qu'il contient : C'est le cas de certains systèmes de cache (templeet par exemple, mais aussi mon système de cache dont je parles dans le post précédent...). Mais certaines données sont volatiles dans la durée, ou selon d'autres critères (nombre d'affichages, ...), c'est le cas -par exemple-d'une page d'accueil de news qui ne présente que les news du jour (Ce que l'on apelle "a la une" ou "édition quotidienne"). De plus, dans certains cas (particuliers), le déploiement du cache est indépendant du code du site, auquel tu n'as pas toujours accès, ou que tu n'as pas forcément le droit/l'envie de modifier... Dans ce cas, c'est le lifetime de la page qui sert à remetre à jour le cache... Un autre concept auquel il faut pensser est la publicité... Si tu dépends d'une régie un peut chiante, tu doit parfois renouveler par toi meme le cache régulièrement (problèmes d'autopromo, de remplissage, de script de pub mal foutu, ...).
*/ Mais quel est l'interret du "daemon pour vider le cache selon divers critères" ? : Je pensse que tu n'as pas compris le fonctionnement de cette nouvelle génération de systèmes de cache. Le client est dirigé automatiquement vers la page statique en cache sans aucune intervention d'aucun script (seul mod_rewrite selon les cas entre en jeu) qui bouferais des ressources à tout casser. Si le serveur ne peut fournir cette page, alors il doit renvoyer une erreur 404. C'est là que toi, tu remplaces l'erreur 404 par ton script ou ton cgi qui vas générer la page dans le cache (le cas échéant, cad si vraiement elle existe hein, sinon il renvoie vraiement un 404) et la renvoyer au client. Donc si le fichier existe dans le cache, meme si il est expiré (parceque certaines contraites te forcent à mettre un délai de vie à certaines pages), comme aucune requète client ne vas déclencher d'execution de script pour cette page, elle ne sera jammais renouvelée. D'où le daemon, ou le script lancé régulièrement par cron (ce qui reviens au meme ;)), qui permet de faire le ménage dans le cache... Ca permet aussi de gérer certains critères bien lourds comme des problèmes d'espace disque... Oui on est sur un serveur, donc oui on met en face les ressources qu'il faut, mais si -pour je ne sait quelle raison- un client veut son cache en tmpfs (mémoire vive), bah 2Go en mémoire vive, ca fait mal :/
*/ pour le problème de savoir si le cache doit etre regénéré au fur et à mesure ou il est invalidé, ou si on efface simplement le ficheir du cache, c'est très complexe... En effet, si tu efface, le premier client qui redemanderas la page se veras servir de facon plus lente que d'habitude (attention, tout est relatif, cad que dans le pire des cas, ca ne seras pas plus lent qu'une page dynamique standart), par contre, pour les pages peut demandées, ca permet d'économiser du disque et de la charge... Par exemple, pour le gros site dont je parlais, le cache représente 4.1Go de html (bon, c'est vrai que certaines pages sont lourdes en HTML parceque mal faites, mais bon, je gère pas les squeletes moi...) pour 210000 pages en cache environ... D'un autre coté si tu le génères en bg, tu t'exposes au fait de générer des pages qui ne seront pas consultées, ou du moins pas avant quelques temps... Donc tu boufes du CPU et du HDD pour rien...