ZODB without undo (data.fs too big)

Jeremy Hylton jeremy at zope.com
Wed May 28 13:22:28 EDT 2003


On Wed, 2003-05-28 at 10:58, Thomas Güttler wrote:
> Hi!
> 
> I load 4.6MB of ASCII data into the ZODB.
> After that the data.fs (FileStorage) grows
> to 560MB (more than 100 times bigger)
> 
> There are several thousand simple documents
> which inherit from dict. (Simple key-->value mapping).
> The transaction gets commit after 100 documents.
> 
> If I search for a string in the data.fs file (with a text editor)
> I see that the data seems to be stored several times.
> 
> Is there a way to disable versioning and undo support?
> 
> If I run analyze.py on the data.fs I see that 83% are
> old objects.
> 
> In DB.py I see:
>    def __init__(self, storage,
>                  pool_size=7,
>                  cache_size=400,
>                  cache_deactivate_after=60,
>                  version_pool_size=3,
>                  version_cache_size=100,
>                  version_cache_deactivate_after=10,
>                  ):
> Unfortunately there is no documentation for these values.
> How should I set the values if I don't want versioning and undo?

The presence of historical revisions is a feature of the storage not the
database.  If you use FileStorage, there is no way to disable revision
support.  Instead, you need to pack the database periodically.  The
Berkeley storages have different revision policies that may be more like
what you're after.  The minimal storage keeps at most one extra revision
of each object.  The full storage keeps revisions but supports
auto-pack, so that they can be automatically deleted after a certain
time.

Jeremy







More information about the Python-list mailing list