[Seaside] object databases and other questions of architecture
James Foster
Smalltalk at JGFoster.net
Thu Mar 27 17:03:02 UTC 2008
Replying as a GemStone employee, but not officially speaking for my
employer...
> Given the number of objects that our six years of relational data
> would map to,
> I've been assuming we would have to jump straight to the $7000/year
> model.
4 GB might be enough for your existing 12 million objects. You might
even find that storing things as objects can take less room than
storing them in a relational manner. My understanding is that most
RDBMS systems preallocate each record to hold the maximum size for
each field.
> Which I look at this way.. $600 a month.... would it save us $600
> worth
> of developer time a month? Yeah, I dont think that is an issue.
>
> What I'm interested in, is the best tool for the job.
>
> I take it from what I've gotten here, that Gemstone's vm and object
> database
> are considered the best of breed for seaside at this time ( or are
> expected
> to be soon ); would that statement be correct?
I think it is generally accepted in the Smalltalk community that
GemStone/S is the premier object database. While GS/S VM is mature,
fast, and stable, my perception is that Cincom has the premier VM and
on some measures (particularly raw speed for certain operations) it
out-performs GS/S. Also, if one were looking for connectivity to an
existing enterprise's RDBMS or if you were to judge based on the
richness of the existing developer tools (e.g., refactoring browser),
GS/S would not be universally acclaimed as "best of breed." But if you
have the option of avoiding object-relational mapping, then you will
likely find that GS/S is an excellent fit and simplifies your work
quite a bit.
> does seaside feature any page caching facilities? a small segment of
> our application ( code wise ) gets 90% of the actual usage and
> features
> a 'dynamic once until expiration' setup where currently we create the
> content dynamically if something has happened to cause it to expire
> and then put in memcache and serve directly from there save a ton
> of application server processing.
While there are many games that can be played to improve performance,
you should make it simple to start with and then measure things. If
you have some data that is expensive to calculate and rarely changes,
you can certainly cache it, say, in a class variable. While you can
cache data in Smalltalk object memory, the actual page creation in
Seaside will still be dynamic. If you really wanted to play some
games, you might be able to create an HTML document and store it in
the file system and have Apache serve the static file. You could
replace the static file as often as needed. But this is all assuming
that there is a performance problem. How many pages per second do you
currently serve?
> Is there anything of this sort currently? What would be the best of
> breed
> I should consider looking at?
>
> Just trying to get everything together so I know what tools to start
> playing with.
>
> All your help so far has been greatly appreciated.
For further information about GS/S, check out Dale's blog (http://gemstonesoup.wordpress.com/
). For information about Cincom's Seaside experience, check out James
Roberson's blog (http://www.cincomsmalltalk.com/blog/blogView) where
he is doing a series of daily tutorials.
James Foster
More information about the seaside
mailing list