Toby Dickenson <tdickenson@geminidataloggers.com> wrote:
This reminds me of a question I had: given that (from what I understand) _v_ attributes only live in the object cache of a given Zope,
True, and more accurate that I think you expected....
The issue is that one Zope has more than one ZODB object cache, even without ZEO. There is one per worker thread. Each cache has independant _v_ attributes
Ah, yes, I knew this in the back of my mind.
Ive never looked at LDAPUserFolder so this may be irrelevant, but is it possible for LDAPUserFolder to validate that the cached _v_ information is still fresh? If that validation is quicker than fetching a new copy then this is still an overall win.
I'm not sure there's a fast way for what LDAPUserFolder needs. Actually the LDAP server itself does have a cache, so things should be fast enough without caching in Zope. I'll have to try it.
If data consistency is an absolute requirement, then you *have* to hit some shared storage on every transaction.
Ok. I'll investigate clearing the _v_ caches at the end of the transaction, using the REQUEST._hold hack mentionned earlier. Anyway there are other problems with LDAP, seeing that there's no way to undo a transaction on error... Florent -- Florent Guillaume, Nuxeo (Paris, France) +33 1 40 33 79 87 http://nuxeo.com mailto:fg@nuxeo.com