MARFIL CEDRIC a écrit :
Bonjour,
Dans notre application, nous utilisons des RAMCacheManager pour stocker les
résultats de requêtes (parfois longues) faites au LDAP. A chaque
modification d'un objet dans le LDAP, le cache est invalidé pour l'objet
concerné. Notre problème est le suivant:
- Notre application étant répartie sur plusieurs zClients, comment réaliser
une invalidation globale des caches lorsqu'un zClient modifie un objet du
LDAP ?

A moins de stoquer un token persitent (à coder spécifiquement pour gérer la résolution de conflits) pour gérer les invalidation de cache, ce n'est pas possible car il n'y pas de bus d'evennements entre les clients ZEO de base dans Zope.

Une solution plus clean serait de mutualiser le cache RAM grace à un serveur memcached. Il existe un biblothèque python pour écrire facilement des clients python pour ce serveur :

ftp://ftp.tummy.com/pub/python-memcached/

En particulier, il existe un MemcachedManager pour Zope2 ici :

http://dev.plone.org/collective/browser/CacheFu/trunk/MemcachedManager?rev=25266

(non testé personnellement).

Il faut cependant vérifier que les requetes LDAP soient suffisamment longues pour ce soit utile de mettre ce système en place.

--
Olivier

_______________________________________________
cps-users-fr Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à