Monticello 2 - request for information

Colin Putney cputney at wiresong.ca
Fri May 25 05:13:12 UTC 2007


On May 24, 2007, at 12:51 PM, Damien Pollet wrote:


> On 23/05/07, Colin Putney <cputney at wiresong.ca> wrote:
>
>> versions or snapshots. This makes for a very fine-grained protocol -
>> versions are loaded individually. That makes directory or HTTP
>> repositories impractical, since loading a slice for a medium-size
>> package would involve opening and reading hundreds of files. (A
>> snapshot of OB, for example runs at over 600 versions).
>>
>
> It seems this could easily be optimized by using aggregate requests:
> ask for a cluster of versions, download them all at once, then load
> them as usual ?
>

Sure. The client could post a list of versions that it wants and the  
server could gather them, bundle them up and send them in the  
response. But there are a couple of problems here. One is that if  
each version is stored in a separate file, we have the same problem  
of opening and closing 600 files, but on the server. Apache might do  
it faster than Squeak, but it's still going to be slow. So the  
versions have to be stored in some kind of indexed store. Also, for  
transport back to the client, they have to be combined into some kind  
file format that can hold multiple versions.

So yes, we could use HTTP, but we'd still have to write a protocol  
for requesting and returning aggregated versions. We'd also have to  
come up with some kind of database or other fast random-access  
storage system. At that point, why not just write a custom server?

It's very different from MC1, where the HTTP repository can be any  
off-the-shelf HTTP server that supports DAV.

Colin




More information about the Squeak-dev mailing list