Resources (was RE: File URI)

Chris Muller afunkyobject at yahoo.com
Tue May 4 17:25:25 UTC 2004


Göran wrote:

>> Yes, of course a proper robust lightweight and base image standard OODB
>> would be what I *really want*. Magma is pretty close to that - though I
>> am not sure how intrusive it is in the image.

I can comment on this.  First, as far as intrusiveness goes, it is very
*non-intrusive*.  That was a primary design goal from the very beginning. 
There are *no* base changes, even though there are several method *extensions*
to base classes.  But all my extension methods are prefixed with "ma" to
minimize namespace collisions.

Let me tell you, when you load Magma into your image, you can feel confident
that your image will remain perfectly intact.

Avi wrote: 

> Just a note on the relative "weight" of Magma and GOODS: the Magma 
> client is 185k of zipped code, the GOODS client is 16k of zipped code.  
> So, talking just about the clients, Magma is about an order or 
> magnitude larger.

Yeah, the reason the Magma SAR is 185K is because Magma is composed of about 10
independent "modules".  This does tend to add to the bulk of the code.

The other consideration, though, is the size of the *allocated-memory*
footprint while running.  As far as Magma goes, I decided to make the server as
"lightweight" as possible in terms of allocated-memory footprint so as to
support as many simultaneous users as possible with a reasonable machine. 
Almost *nothing* is cached and no domain classes are necessary on the server. 
The server only deals with "buffers" for the current request and the Integer
oid relationships between them, which will also hopefully facilitate
optimization via primitivization (say that 5 times) of certain behaviors on the
server.

In terms of the client, Magma is only as light as the client program allows. 
WeakDictionary's are used to let unreferenced objects out, as well as things
like ReadStrategy's to optimize bringing only the objects you want into the
client.  #stubOut: is also available to chop off large branches of objects
after you've already read them in but no longer need them.

I am very excited about Magma's future.  The latest version on SM is the
best-yet, and I'm currently working on some exciting enhancements (exciting to
me, anyway) while still keeping with its philosophy of simplicity.

 - Chris



More information about the Squeak-dev mailing list