[self-interest] Re: Clustering in Self ?

David Ungar David.Ungar at Eng.Sun.COM
Mon Mar 6 21:55:30 UTC 2000

Thanks, Jecel.

two small points:

The Self transporter (I think) does support the modules as orthogonal 
to classes view a bit better than Smalltalk, although ST does have 
change files.

If the original question was about objects in memory, of course the 
VM does put all the data for a given object in one place, and the 
old-space collector does tend to move related objects together. This 
was studied for Smalltalk while I was at Berkeley and there are some 
(hard-to-find) papers about it.
We called it "offline reorganization" since in those days it was so 
slow you couldn't wait for it.

- Dave

At 6:25 PM -0300 3/6/00, Jecel Assumpcao Jr. wrote:
>José Baltasar García Perez-Schofield wrote:
>>	I do apologise because of interrupt this "low-level, implementation"
>>  discussion, but I have a philosphycal question about Self.
>>	The matter is that Self can be considered a persistent language since
>>  it has its objects "living" in the Self world among executions of the
>>  Self environment.
>>	In many persistent languages, clustering techniques are applied to the
>>  persistent store (the world in Self), grouping together objects that are
>>  close one each other.
>>	(1) For example, "close" can be defined in terms of inheritance
>>  relations, or in terms of objects pointed by another objects ... or even
>>  combinations of this two considerations.
>>	The question is: does Self follow any of this techniques ?
>There are currently two views of a Self world on disk:
>         A) a single large binary file called the Snapshot that is 
>essentially a
>memory dump of a running system
>         B) a set of text files which are managed by a program called "the
>There is no clustering in A, while in B you explicitly group together objects
>or slots into named "modules". There is a second level of organization in this
>case since modules can include submodules.
>I have worked on alternative designs which would divide the binary Snapshot
>into several "clusters". The Squeak people have just introduced "image
>segments" into their system.
>>	The central matter of the question is that, as far as I know, hte
>>  minimal unit of storage in Self is the slot, so, apparently, the "object
>>  semantic", is lost.
>That is the case for the transporter. But for a Snapshot (either the current
>monolithic one or one made up of small clusters) you would not be 
>able to split
>an object into anything smaller.
>Before Self 4.0, programming was done by typing expressions directly at the
>prompt or into files using any text editor. You would then load these files to
>create or change the objects. Like the FileIns in Smalltalk, different files
>could make changes to the same objects. So you tended to group in a 
>single file
>all of the changes (adding slots, mostly) related to a single project. You
>might need to add a method 'isPrime' to 'traits integer' to make your project
>work, for example. Then there would be one slot (namely 'isPrime') that would
>not be found in the 'integer.self' source file as you would expect but in the
>'myProject.self' file instead. Note that this is not unique to Self 
>- Smalltalk
>has always been like this.
>When Dave created the transporter, he wanted to support this "tradition". So
>you can tag different slots in a single objects as belonging to different
>modules (and so as being saved to different text files).
>>	Are the slots of the same object grouped together, for example ?
>Even in the transporter, the default is to make all slots in an object belong
>to a single module. But they don't have to be grouped together.
>In a system that stores *live* objects to disk (which the text file
>representations mostly certainly are not, no matter how hard they try to fake
>it) then objects must be the smallest grouping unit. This creates some hard
>problems in terms of the work of different programmers combining in a usefull
>way, but I don't see any way to avoid them.
>On a related issue, you might find the work on "object grouping" at page fault
>time that the Mushroom people (including Mario Wolczko - see his 
>pages about it
>at http://www.sun.com/research/people/mario/mushroom/index.html) very
>I hope this helps,
>-- Jecel
>eGroups eLerts!
>It’s easy. It’s fun. Best of all, it’s free.
>-- Check out your group's private Chat room
>-- http://www.egroups.com/ChatPage?listName=self-interest&m=1

     David Ungar
     Sun Microsystems Laboratories
     (650) 336-2618

More information about the Self-interest mailing list