[Zope] non-undoable storage
Milos Prudek
prudek at bvx.cz
Mon Apr 18 08:38:01 EDT 2005
I have a couple hundred Articles (class instances) in my ZODB. Most
instances are 200 kB, some are much larger. One of the Article
properties is Number of times the article was read. Any increment causes
ZODB to grow by the size of the given instance, due to the fact that
ZODB will append a new version of the whole 200 kB or 2MB instance just
because a single byte was changed.
Consequently ZODB grows several hundred MB in a single day even if no
new article is added.
This calls for some form of non-undoable storage.
One possibility is to move the "NumberOfReaders" attribute from ZODB to
my SQL server. Not a problem, but I'm not sure what is the best way to
maintain connection between ZODB instance (it can appear at different
places in ZODB directory structure and it can be moved from place to
place with Cut and Paste in ZMI) and SQL table. Connection means SQL key
column. Instance ids cannot be used as a SQL key, because they are
nonunique - each folder has a sequence of instances numbered 1...x. So
there are over ten instances named "1". Instance addresses = URLs could
be used but I would have to write my own methods / interfaces for moving
Articles in the directory structure to maintain the connection between
ZODB and SQL table.
Is there an obvious elegant solution that I am missing?
--
Milos Prudek
More information about the Zope
mailing list