Use Distributed Cache for Session
Until now, portal_sessions was only reliably usable when using a family with only one zope node, because the session data was using RAM cache. When used by authenticated users it was more or less usable, because of haproxy sticky cookie that we set for authenticated users, but for non authenticated users this was basically unusable. This was especially a problem for CaptchaField, for which users are generally not authenticated.
This changes portal_sessions to use a distributed cache, which brings several differences:
- sessions are now shared between all zopes of a cluster.
- storing ERP5 temp documents is still possible, but modifying a temp document in session does not automatically save the changes in session, for next session read to be using the modified document it's required to save the document explicitly.
- session respects transaction semantics, changes are only persisted in session when transaction commits successfully.
-
portal_caches.clearAllCaches
API no longer clear all sessions.