monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Re: monotone CVS import failed.


From: Jon Smirl
Subject: [Monotone-devel] Re: monotone CVS import failed.
Date: Tue, 17 Oct 2006 11:58:51 -0400

On 10/17/06, Markus Schiltknecht <address@hidden> wrote:
Jon Smirl wrote:
> Why do you need to store the filenames/rev strings at all? Once the
> rev is in the database you don't need the strings any more and they
> are quite large, 100MB or more in my case.

The filename seems obvious, how else would I know what file a cvs_event
is bound to? And the CVS revision is kept for informative purpose: I
want users to be able to determine, what CVS revisions a certain
monotone revision consists of.

You still have a C++ object for the file, just no need to store the file name.


I very much doubt it's more than 100MB, though. It's roughly:

(different files + different version strings) * (avg str length) +
sizeof(int) * (total cvs events) * 2

110,000 files with 1.1M revs. 1,100 branches and 1,000 symbols.


Assuming the (avg str length) is 1K (!), you could theoretically store
more than 52K *distinct* filenames and over 13M pointers (thus over 6 M
total cvs events) in 100 MB of memory (assuming 50% - 50% sharing
between the two summands).

The other systems identify the rev by file name + rev#, when you do
that over 1M revs it really gets big.



I don't think that leaves much room for optimization.

Regards

Markus




--
Jon Smirl
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]