On 06.03.2014, at 16:25, Goubier Thierry <[email protected]> wrote:

> 
> 
> Le 06/03/2014 16:14, Max Leske a écrit :
>> 
>> On 06.03.2014, at 15:53, Stephan Eggermont <[email protected]> wrote:
>> 
>>> Max wrote:
>>>> I don’t quite follow. What do you mean by methods?
>>> 
>>> When mapping methods to files, there is the problem that on disk files take 
>>> a minimum amount of space,
>>> often 4KB. This slows writing a package to disk down a lot.
>> 
>> I see. There are two things to consider:
>> 1. the format we use to store source
>> 2. the fact that Git will create one blob per file
> 
> Git will pack blobs in a kind of archive file, in .pack files.

That is only partly true:
- packs will be generated when objects are transferred over the network (this 
may be partial packs)
- packs can be force generated by using ‘git gc’
- packs will be periodically created / updated to reduce size on disk

But: the main storage form (and the fastest for access) are loose objects (i.e. 
single files)

Just for completeness :)

Max

> 
>> Obviously, by choosing a source storage format that avoids this problem, we 
>> don’t have to deal with the second issue.
>> If you go with something like FileTree, which uses a single file per method, 
>> this changes. By combining multiple files (e.g. by zipping) we could avoid 
>> the problem of tiny blobs but we would loose the ability to look at the 
>> repository from the outside. This is something I don’t want to do. It 
>> creates a dependency to Pharo (and to the particular implementation of how 
>> those files are stored) and unneeded complexity (especially with regard to 
>> maintenance).
> 
> +1.
> 
>> In my opinion there are other factors, like readability, maintenance etc, 
>> that are maybe more important than speed.
> 
> I agree with that :)
> 
> Thierry
> 
>> So yes, potentially we could do something about fragmentation but I won’t 
>> promise you anything. Does that answer your question?
>> 
>> Cheers,
>> Max
>> 
>>> 
>>> Stephan
>>> 
>>> 
>>> 
>> 
>> 
>> 
>> 
> 
> -- 
> Thierry Goubier
> CEA list
> Laboratoire des Fondations des Systèmes Temps Réel Embarqués
> 91191 Gif sur Yvette Cedex
> France
> Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
> 


Reply via email to