[ZODB-Dev] RelStorage Questions

Shane Hathaway shane at hathawaymix.org
Thu Oct 14 13:38:58 EDT 2010


On 10/14/2010 02:48 AM, Chris Withers wrote:
> Hi Shane,
>
> For all of these, if there are docs, please point me in their direction.
> I've been working from:
>
> http://pypi.python.org/pypi/RelStorage
>
> In my case, I'm looking at ZODB 3.9.6, Zope 2.12.7 onto MySQL 5.1
> provided as a two machine cluster maintained by a hosting company. This
> sound good? Any different versions I should look at?

Sounds fine to me, except that PostgreSQL is a wiser choice.  PostgreSQL 
is more resilient to crashes and seems to use less memory.

>   From the features section: "multiple ZODB instances can share the same
> database"; does this mean I can put more than one storage in the same
> mysql database? Is this a good idea or should I stick to one storage per
> mysql database?

You misread that statement.  It says that you can build a ZEO-like 
cluster by simply pointing multiple ZODB instances at the same database.

You should put one storage in each database.  However, that doesn't mean 
you have to set up multiple MySQL or PostgreSQL servers.  One server can 
serve many databases.

> - I'll have one storage with keep-history true and one with it false.
> Both will require packing and garbage collection, right? What's the
> recommended method and frequency of doing that? I'm guessing the
> zodbpack script but wanted to doubt check that does both pack and
> garbage collection.

Yes, it does both.  Cron is good.  Daily is good.

> - How do you pick the right pack-duty-cycle?

The default is recommended unless packing turns out too slow or invasive.

> - poll-interval

The default is recommended until you are ready to tweak it.

> - when is it recommended to use memcached caching? How do you decide to
> pick what values to use for cache-prefix, cache-local-mb and
> cache-delta-size-limit?

The default (off) is recommended until you perform scientific 
performance measurements on your site and determine that the benefits 
are worth the extra complexity.  The zodbshootout tool is designed to 
help you perform those measurements.

> - Under what situations would you recommend changing the
> commit-lock-timeout from its default of 30 seconds?

The default is recommended.  Tweak it if it breaks.

>   From the MySQL Adapter options section:
>
> - When is/isn't gzip compression a good idea? What is actually being
> compressed by this options?

That's just a parameter that gets passed to MySQL, so read the MySQL 
docs.  I have never used it.  I recommend PostgreSQL.

> - Should I worry about init_command, read_default_file,
> read_default_group and client_flag or just ignore them?

I've never used them.

> - What does load_infile actually do? Should it be used or avoided?

I only know what the MySQL docs say about it.  I've never used it.

> Sorry for all the questions, hope these aren't too much of a pain to answer!

You don't really need to dive in to all this yet.  The defaults are 
fine.  You should start with as few options as possible to make it work.

Shane


More information about the ZODB-Dev mailing list