SqueakSource issues (was Re: New 3.9alpha image is ready! (sort of))

Bert Freudenberg bert at impara.de
Mon Jul 18 10:36:38 UTC 2005

Am 18.07.2005 um 06:00 schrieb Doug Way:

> On Jul 17, 2005, at 4:43 PM, Bert Freudenberg wrote:
>> Am 17.07.2005 um 00:48 schrieb Doug Way:
>>> 2. The .mcd file does not exist.  How is this intended to work?
>>>   A. Is the SqueakSource server supposed to generate the .mcd  
>>> file on the fly, or maybe upon the saving of a new version?   
>>> (Makes sense, that's a lot less bandwidth for these big packages.)
>>>   B. Should the MCConfig code in the image not be trying to  
>>> download .mcd files?
>>>   C. Do we need to be saving .mcd files and not .mcz when we save  
>>> new versions to the repository?
>>> (I'm pretty sure the answer isn't C, that would be dumb.  I'm  
>>> guessing A.)
>> Yes it's A, a diff is generated on the fly when it is requested  
>> first, and then cached. Building a diff for version n
>> against the previous n-1 versions would be O(n^2), and we might  
>> never need all. So it's only built on demand.
> Makes sense.
> So, the problem is that the squeaksource repository at sqf.org is  
> not generating any .mcd files for whatever reason.  It looks like  
> this .mcd generation is a relatively new feature... is it something  
> that was just added in the impara.de version of squeaksource?

Yes, I implemented the mcd stuff after we installed the Monticello- 
based update stream for Tweak. It became unbearably slow, updating  
sometimes took 10 minutes. While downloading the packages was  
actually quite fast (we're all on broadband), the diffing against the  
in-image version was taking most of the time. So the actual time  
saver is that the diff is loaded almost like a changeset, if the in- 
image version is unmodified and the diff's base version matches it.

So it's actually two parts, one on the client side (the optimization  
for loading mcds without diffing) and the server side (building the  
right mcd to match the in-image version).

> I see that http://squeaksource.com at berne does not seem to have  
> the .mcd capability either, although at least it returns a "not  
> found" error rather than hanging.
> Actually, it's pretty easy to plug the URLs into a browser to test  
> the various squeaksource repositories, since it's just a simple  
> HTTP get.  These links show how the various repositories behave:
> works:
> http://source.impara.de/mc/Monticello-bf.260.mcz
> http://source.impara.de/mc/Monticello-bf.261.mcz
> http://source.impara.de/mc/Monticello-bf.261%28bf.260%29.mcd
> works:
> http://source.squeakfoundation.org/39a/Kernel-dew.1.mcz
> http://source.squeakfoundation.org/39a/Kernel-md.5.mcz
> doesn't work:  (hangs!)
> http://source.squeakfoundation.org/39a/Kernel-md.5%28dew.1%29.mcd
> works:
> http://squeaksource.com/Monticello/Monticello-avi.231.mcz
> http://squeaksource.com/Monticello/Monticello-avi.232.mcz
> doesn't work:  ("not found" error)
> http://squeaksource.com/Monticello/Monticello-avi.232%28avi.231%29.mcd

Did you compare the package versions I sent around?

- Bert -

More information about the Packages mailing list