Re: Archtypes SQL Storage

Martin Aspeli <[email protected]> Wed, 11 Oct 2006 21:03:07 +0100
Newsgroups gmane.comp.web.zope.plone.archetypes.devel
Message-ID <[email protected]>
> It was slow for us for both data via sql and data in the zodb. (And the 
> zodb bloated fast because the data changes a lot.) I never tried to 
> track down the reasons because I was looking for a working solution at 
> the time, not to fix Archetypes.
> 
>> If I had to implement this, the first thing that I would do is  ...
> 
> I think what you're describing is very much like SQLWindowStorage in the 
> Archetypes svn. But that seems to be not quite finished.

It's not, and this has to do with the fact that AT storage is very 
field-oriented. It's quite hard to do things like only committing on 
transaction boundaries or only committing when all fields have been 
mutated, since the storage doesn't now when the sequence of mutations 
for each field has finished. We hacked around this in SharedSQLStorage 
(which works, for a limited set of use cases) and this inspired 
SQLWindowStorage, but I don't think Martin F. Krafft finished it (and I 
haven't seen anyone else pick it up).

However, it's important to distinguish three use cases here.

  - Content is created and managed through Plone, but an RDBMS is used 
to store field values.

This probably the less useful use case, since the ZODB handles these 
cases better most often.

  - Content is created through Plone that attaches (probably via the 
primary key) to a database record (possibly creating it, possibly using 
an existing one) and thereafter the two are linked.

This is what SQLWindowStorage was about, and it's useful if you want the 
Plone UI to manage a subset of the DB records and you want users to 
create these explicitly. I think SQLWindowStorage is salvagable if 
anyone has the cycles to put into it.

  - You want views and/or CRUD operations for your data transparently, 
so that if a new record is added to the database, it'll show up in Plone 
immediately.

This is the use case I think Bill and Dennis were after. This is 
addressed, as I see it, with Flay and probably with Alchemist.

Bill - if you can release that code (and possibly some documentation, 
say a short tutorial on plone.org, would be ideal!) then I think you can 
lower that "outrageous" learning curve quite a lot. Formlib, SQLAlchemy 
and friends are not only quite new, until recently the available 
integration was fairly shaky. We're getting there, and I'm sure your 
help will get us even closer! :)

Cheers,
Martin


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642