[Seaside] Goods

David Shaffer cdshaffer at acm.org
Wed Aug 16 16:35:46 UTC 2006

Dirk Vleugels wrote:

> Hi,
> sorry if this is OT.
> i installed Goods (80) from SqueakMap. The SUnit tests failed in below
> method:
> KKDefaultConnection >> defaultLogin
>     ^ 'squeak', (Time millisecondClockValue hex allButFirst: 3)
> i added asFloat (float respondsTo: hex), but now im unsure if i missed
> some dependency package (which might change SmallInteger?). I'm
> running a 3.9b-7052 image.

I haven't yet used GOODS under Squeak3.9 but I'd suggest that you change
this to:

KKDefaultConnection >> defaultLogin
    ^ 'squeak', Time millisecondClockValue printStringHex

> After the change all tests pass.
> Different question: anyone using GOODS in production? How does it
> compare to Magma? If i read the documentation correctly it should be
> possible work with classes/objects stored in goods with either c++,
> smalltalk, java, etc.?

I have several systems which use GOODS in production in various forms
(ranging from somewhat batch-style to interactive use).  I am also
working with a client who is planning to release a GOODS-based system. 
I cannot compare it to Magma (never used Magma) but I can point out some

1) commit/rollback performance can be poor if your caches are large
(large numbers of objects loaded).  If you load the latest development
version from SqueakSource you will get some improvement but it still
effectively scales linearly with the size of this cache.

2) Avi's WriteBarrier (on SqueakMap) was an attempt to avoid problem
#1.  The latest development release doesn't support WriteBarrier so I'd
recommend that you try both combinations (current release of GOODS
client + WriteBarrier) or (development releast of GOODS client without

3) There is no direct support for "indexing" so you have to do it
manually with BTree's (Avi has BTree package on SqueakMap), Dictionaries
or whatever datastructure suits your searching needs.  FWIW I believe
that Magma has significant support for automatic indexing.

4) You can, in principle, access your database from C++, Java etc but
you must provide more type information.  The GOODS wiki page details
this:  http://minnow.cc.gatech.edu/squeak/3494

Hope this helps,


More information about the Seaside mailing list