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 <[EMAIL PROTECTED]> 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 )
>




_______________________________________________
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 )

Reply via email to