[Seaside] About SToR

goran at krampe.se goran at krampe.se
Sat Jul 29 13:21:42 UTC 2006


Hi folks!

"Ramon Leon" <ramon.leon at allresnet.com> wrote:
> That leaves Squeak with very poor relational database support, which brings
> us to object databases.  Magma and Goods, both good solid ODB's from my
> understanding, I use Goods personally, Magma's still under active
> development and I feel safer with Goods, however, using an ODB isn't
> particularly easy when one is accustomed to relational databases.  Not being
> able to just write a query and search a bunch of objects is a big hurdle,
> you have to think things out ahead of time and create indexes by hand to get
> any decent speed from the system, and there's really very little out there
> to guide one in learning all this stuff, frankly it's a painful process, one
> I'm still in the midst of figuring out myself as I bring Squeak and Seaside
> into the office.
> 
> I've felt enough pain mapping objects into relational database that I've
> also come to believe object databases are the way to go when dealing with
> object oriented applications.  Maybe things are more advanced in a more
> enterprise Smalltalk like VisualWorks or Gemstone, I hope so, because the
> state of the object databases in squeak at the moment seems quite alpha, and
> still a bit too painful to be able to easily replace a relational database
> for most apps.  

The Q2 issue tracker (which will be renamed to something cool when
published, which will happen during august) is built using Seaside and
Magma. During that work we have written some generic components for
Seaside (like a nice but simple object driven TOC and a CSS based (no
frames) "left side toc, right side scrollable content"-layout) and
adapted a connection pool class from Kilauea for Magma so that Seaside
sessions quickly can pick up established Magma sessions (with cached
persistent objects).

Our experience so far is that Magma currently works very good. We have
had no corruption and I have only discovered two bugs so far, one only
affected performance and the other only appears during heavy debugging
etc and I am not even sure it is Magma's fault. We are now beginning to
work with the index and multi-index query capabilities that is recently
being added - and it looks very nice.

I have worked with GemStone quite a lot (both St and J) and I think
Magma gives almost the same, but with a much simpler architecture. The
fact that it is all Smalltalk with source is also a bonus.

There is one scalability issue that we are mulling a bit and that is the
fact that the sessions are not sharing persistent objects at all. But
with some appropriate stubbing I think that can be avoided as a problem.
Best would of course be if Magma somehow magically could share objects
between sessions, as long as they are unmodified - but as you can
imagine that is a hard problem.

Anyway, this app will be published soon and I think it can be used as a
nice "real world example" or perhaps even be stripped down and
complemented with a tutorial it could form some kind of
WebAppInAMinute-bootstrap.

regards, Göran


More information about the Seaside mailing list