Forum OpenACS Q&A: Response to Article on ACS x Zope

Collapse
Posted by Albert Langer on
[JH ...comments re data abstraction and SQL omitted as covered by response to CM]

Concerning ZODB's capability of using 'RelationalStorage'. ZODB is Zope's
object storage model. It can use a variety of containers to store it's object
data. Each storage has different characteristics.

Up to very recently the only usable storage available was FileStorage. It is a
single monolithic file. Because of Zope's versioning and undo capabilities a
ZODB can growing very rapidly. This is due to store multiple versions of a
changed object until the ZODB is packed removing extra versions. On certain
filesystems this created a problem due to the 2gb file size limitation. Thus
your entire dataset could not exceed 2gb unless you went with a RDBMS to store
your data.

A RelationalStorage would help with this, as most RDBMSes get around the 2gb
problem. The RelationalStorage is easily abstractable do to the fact that it is
creating a single table and storing rows of 8 byte binary data. I could be
wrong on this, but this is what I remember. So there is no complex SQL to worry
about.

[AL]
Using an RDBM is a rather odd way to get around a 2GB file system file system limit.
I suspect there is more to it than that. But anyway, your account confirms my impression that the use of an RDBM for ZODB storage has no relevance whatever to the question of integrating Zope with RDBM SQL based OLTP applications like Ecommerce.

[JH]
Zope's connection pooling isn't probably any different than AOLservers. You
just configure Zope to talk to your db and it'll handle the rest. I believe you
can configure threads or handles, but there is not a whole lot to it.

[...]

[AL] I understand that Zope application developers can just use db handles in much the way that ACS application developers can just use those provided by AOLserver. My concern is whether Zope  really is pooling them properly like AOLserver or whether there is some interaction between the ZODB handles used by Zope and the RDBM handles used by Zope that could result in some limitation in the performance of an RDBM application with Zope cf a similar application with AOLserver.
I guess this is a matter of "Zope internals" that I'll have to pursue in Zopeland.