[ZODB-Dev] ZEO and relstporage performance

Ross J. Reedstrom reedstrm at rice.edu
Wed Oct 14 15:38:39 EDT 2009


On Wed, Oct 14, 2009 at 02:20:50PM -0400, Benji York wrote:
> On Wed, Oct 14, 2009 at 1:08 PM, Ross J. Reedstrom <reedstrm at rice.edu> wrote:
> > shared caches: this is the main reason I've been looking at relstore:
> > we're running many Zope FEs against one ZOE right now, and due to the
> > nature of the load-balancer, we're seeing little gain from the caches.
> > I'm looking to fix that issue, to some extent, but sharing across all
> > the FEs on one box would be a big win, I'm sure.
> 
> For similar reasons I've been considering various affinity approaches
> lately.  Most people are familiar with session affinity, but I'm
> thinking of something more like "data" affinity.
> 
> Instead of having a big cache that is shared in order to increase the
> chance of a request's data being in the cache, you would instead have
> many smaller caches (just like ZEO works now) and send the requests to
> the process(es) that are most likely to have the appropriate data in
> their cache.

We're actually set up w/ squid in front of the zope FEs, using IPC to
talk to them all. The default behavior is just to respond w/ a "CACHE
MISS" and use network access timings to select. This is non-optimal,
since it does little true load-balancing, until the FE is completely
hammered (very non-linear response-time curve). I'd love to see an
example where someone replaced the default response w/ something more
meaningful. The shoal that replying "HIT' for ZEO cached data breaks on
is that the IPC request contains a URL, not ZODB object refs. And
converting one to the other is what the whole dang machine _does_.
And you have very little time to answer that IPC query, lest you destroy
the gains you hope to get from having a hot-cache. So some ad-hoc
approximation, like keeping the last couple hundred URLs served, and
responding 'HIT' for those, might get some part of the benefit.

This is probably the wrong list for it, but does anyone know of a
published example of replacing Zope's default icp-server response? Last
time I looked, I couldn't find one.

Ross
-- 
Ross Reedstrom, Ph.D.                                 reedstrm at rice.edu
Systems Engineer & Admin, Research Scientist        phone: 713-348-6166
The Connexions Project      http://cnx.org            fax: 713-348-3665
Rice University MS-375, Houston, TX 77005
GPG Key fingerprint = F023 82C8 9B0E 2CC6 0D8E  F888 D3AE 810E 88F0 BEDE


More information about the ZODB-Dev mailing list