[Zope] How can I get a listing of all objects in the Zope 2.62 ZODB?

Mark, Jonathan (Integic) jonathan.mark at integic-hc.com
Wed Sep 13 11:06:53 EDT 2006


Chris Withers, the developer of Squishdot, asks: 

>>OK. Can I ask why you're interested?

>>(the answer to that question will help give you more sensible answers to 
>> your first question.)

My experience using Squishdot to run goodbyejim.com for several years has been a positive one. I am grateful to Chris for writing it and am glad that he has moved on to other cutting edge Zope projects. 

However, there is one problem. As the number of posts gets past 2000 the application slows to a crawl.

You can observe the problem by comparing http://jonathanmark.com/Blog/1128110364/index_html, which is in a Squishdot instance with 3000 posts and is slow, and http://goodbyejim.com, which has 800 posts. The front page of jonathanmark.com/Blog is cached, hence one must visit an interior page to observe the problem. A second Squishdot instance at http://jonathanmark.com/2005Blog/1147676261/index_html also seemed to be slowing down after 2000 posts.

All of these Squishdot instances run in the same Zope instance. 

So I decided that I would modify Squishdot so that it uses a relational database to store posts. I am certain that through proper use of RDBMS indexes Squishdot would be scalable into the tens of thousands of messages. For a small blog such as mine with several thousand posts a year even Gadfly might be good enough.

To convert Squishdot to use an RDBMS I would have to modify the Posting and other product scripts in Squishdot. If I could look at the Squishdot-related objects in the ZODB I would have a better understanding of what Squishdot is doing when it posts and retrieves a message. I could then duplicate that behavior with Gadfly.

If I may add my two cents on a related matter, what I like best about Zope 2 is the VHM, undo, and content management. I work with RDBMSs every day and understand them far better than I do the ZODB. Thus storing textual transactional data in the ZODB makes the system far more complex for DTML scripters like me. If one were to ask why Ruby on Rails and Django get the attention that Zope does not, I feel that a reliance on using the ZODB for textual transactional data is one reason. 

It sounds more difficult to set up an RDBMS app in Zope than in Django or Ruby on Rails. I have never done any of those things, but that is the hype. Since users prefer RDBMSs (that is what we know) new developers are going to gravitate towards Django or RoR.

Wouldn't it be great if there could be a Zope app that would set up RDBMS tables the way Django does, or generate code to access tables the way RoR does? But for lack of a better idea in the meantime it is best for me to migrate my version of Squishdot to use an RDBMS.


More information about the Zope mailing list