Note also that a patch like this one (against the current Zope 2 trunk, you may need to change it based on whichever version of Zope you're using) might shed more light on where your conflict errors are coming from: Index: lib/python/Zope2/App/startup.py =================================================================== --- lib/python/Zope2/App/startup.py (revision 77024) +++ lib/python/Zope2/App/startup.py (working copy) @@ -166,6 +166,9 @@ conflict_errors, unresolved_conflict_errors, startup_time) + from traceback import format_exception + msg = '\n'.join(format_exception(t, v, traceback)) + conflict_logger.log(level, msg) raise ZPublisher.Retry(t, v, traceback) if t is ZPublisher.Retry: try: On Jun 24, 2007, at 9:31 PM, Manuel Vázquez Acosta wrote:
Let me see if I got this right:
According to ZODB.Mount.MountPoint: mount points are Zope objects that, when traversed, accesses a different database.
Do they report themselves as the container-class defined in zope.conf? I mean, when I traverse to /temp_folder what do I get? Is it the MountPoint instance or the container-class instance? Where should I look for this code?
I have "tried" faster but without any luck. I modified OFS.Application and replaced TransientObjectContainer with faster.SessionDataContainer, but still I had too many ConflictErrors (didn't make any measure to compare with TransientObjectContainer).
What I have not grasped yet, is how the whole MountPoint thing works so that /temp_folder vanishes when Zope dies. This must be a TemporaryStorage in another DB, accessed thru the MointPoint, but I have not found where this is done.
Thanks for your response, and best regards, Manuel.
On 6/24/07, Chris McDonough <chrism@plope.com> wrote:
/temp_folder is a "mount point" (see your zope.conf file).
Whether or not you put a session data container inside of a temp folder, you may get better conflict-related performance out of "faster", a drop-in replacement for the stock Zope sessioning machinery... see http://www.agendaless.com/Members/tseaver/software/ faster/ (but you might not, it depends on the sessioning access pattern). In particular "faster" is much better conflict-wise when sessions are accessed but not changed in the course of a request.
- C
On Jun 24, 2007, at 8:19 PM, Manuel Vázquez Acosta wrote:
Hi all,
I have been digging into Session Management in Zope, because is causing a little overhead. We have develop a Plone Application, which must respond to 30 concurrent user every 12 seconds, we have setup CacheFu and Squid for this.
We have used OpenSTA to stress test the application.
When we run the bench for a non login test, everything goes just fine. But when run a bench in which a user logs in, we observe too many ConflictErrors, which, I thinks, slows too much the application, because zope retries the request 3 times.
I have read /temp_folder is RAM based folder, and also that it should be a MountPoint, but looking at the code and with the help of DocFinderTab, I have found /temp_folder is a Products.TemporaryFolder.SimpleTemporaryContainer, which seems to be just a folder in the ZODB... This sould be this way? Does /temp_folder/session_data is the RAM based storage?
Best regards, Manuel. _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope- announce http://mail.zope.org/mailman/listinfo/zope-dev )
participants (1)
-
Chris McDonough