[Zope-dev] how bad are per-request-write-transactions

Eric Roby vekn@msn.com
Tue, 16 Apr 2002 19:04:27 -0500


I developed a profiler service for a production site about 8 months ago.  I
essentially did what you are asking.  I needed to see how customers were
using the various navigational elements and other services provided within
the site layout.  The logging service could not give me a sense of the
context.  To make a long story short,  I had a method in the
standard_html_header that kicked off the evaluation process.  I essentially
created a mirror of the site (containers/sub-containers/methods) for each
hit for each day for each month , etc...  This provided me with a way to see
specific site activity in real-time.  Each object that was evaluated (for
each day) had two tinyTable instances. One recorded each hit as a record
(IP, referrer, username, time) while the other tallied the numbers per hit
(per unique IP).

This was all running on a Sun on a terrible network and I saw little or no
performance difference and the ZODB growth was as you might expect adding
the additional folder objects and tinyTable instances.  It wasn't a high
profile site (about 3000 hits per week).  I ran the service for three months
with no problems.  The key was the hits recorded in the tinyTable's did not
create a ZODB transaction.

Hope this helps

Eric
----- Original Message -----
From: "Casey Duncan" <casey@zope.com>
To: "Ivo van der Wijk" <ivo@amaze.nl>
Cc: <zope-dev@zope.org>
Sent: Tuesday, April 16, 2002 10:04 AM
Subject: Re: [Zope-dev] how bad are per-request-write-transactions


> This will kill performance, especially concurrent use of the site. It
> will also cause large amounts of database bloat. Do you need real time
> numbers, or is a delay (such as 24 hours) acceptable?
>
> If you can stand a delay, another approach would be to write a script
> which scans the z2.log file (or another log that you generate on page
> hits) each night and in a single transaction updates a counter on each
> object hit.
>
> If you use the z2.log, no additional writing is needed to the FS, and
> you get the benefit of easy access to the counts directly from the
> objects, without degrading performance or db bloat.
>
> -Casey
>
> Ivo van der Wijk wrote:
> > Hi,
> >
> > How bad are per-request transactions in a non-ZEO environment? I.e.
> > each request on a folder or its subobjects will cause a write
transaction
> > (somewhat like a non-fs counter, but worse as it happens for all
subobjects)
> >
> > And if this is really bad, are there any workarounds except for writing
> > to the filesystem?
> >
> > Cheers
> >
> > Ivo
> >
> >
>
>
>
>
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
>