You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Branko Čibej <br...@xbc.nu> on 2005/08/01 09:42:48 UTC

Re: Some WC improvements

Peter N. Lundblad wrote:

>On Sun, 31 Jul 2005, [UTF-8] Branko �^Libej wrote:
>
>  
>
>>Peter N. Lundblad wrote:
>>
>>One of the things we could do, that I don't see mentioned in the wc
>>enhancements doc, is to get rid of empty-file. Instead of one empty file
>>in every .svn directory, I'd put one somewhere in ~/.subversion and use
>>that. If it's not there, and can't be created. we can still create a
>>temporary one in .svn/tmp or /tmp. This would save yet another inode per
>>directory (on those FSes that care about inodes, that is).
>>
>>    
>>
>I haven't checked, but I'd guess empty-file is used to generate diffs,
>true? In that creating an empty file on demand couldn't be that of a
>performance bottle-neck... Shy bother with an empty-file in .subversion in
>that case? We just stop using empty-file and stop creating it in the next
>WC format.
>  
>
We put emtpy-file in there because IIRC it was shown that creating it 
for every diff did have a significant impact on speed. It might be that 
"it was shown" incorrectly; but if it wasn't, it certainly makes no 
sense to have one such file per .svn directory.

-- Brane


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by John Szakmeister <jo...@szakmeister.net>.
On Monday 01 August 2005 06:57, C. Michael Pilato wrote:
> John Szakmeister <jo...@szakmeister.net> writes:
> > > We put emtpy-file in there because IIRC it was shown that creating it
> > > for every diff did have a significant impact on speed. It might be that
> > > "it was shown" incorrectly; but if it wasn't, it certainly makes no
> > > sense to have one such file per .svn directory.
> >
> > Why not use an empty or null stream instead?  It looks like the file
> > handles are being converted to stream object anyways.
>
> External diff?

Actually, what about using SVN_NULL_DEVICE_NAME for the "empty file"?  It's 
currently being opened for use as stdin when running some hook scripts.  Just 
a thought.

-John

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by John Szakmeister <jo...@szakmeister.net>.
C. Michael Pilato wrote:
> John Szakmeister <jo...@szakmeister.net> writes:
> 
> 
>>>We put emtpy-file in there because IIRC it was shown that creating it
>>>for every diff did have a significant impact on speed. It might be that
>>>"it was shown" incorrectly; but if it wasn't, it certainly makes no
>>>sense to have one such file per .svn directory.
>>
>>Why not use an empty or null stream instead?  It looks like the file handles 
>>are being converted to stream object anyways.
> 
> 
> External diff?

Oh yeah.  I never use it, so I always forget that you can do that. :-)

-John




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by "C. Michael Pilato" <cm...@collab.net>.
John Szakmeister <jo...@szakmeister.net> writes:

> > We put emtpy-file in there because IIRC it was shown that creating it
> > for every diff did have a significant impact on speed. It might be that
> > "it was shown" incorrectly; but if it wasn't, it certainly makes no
> > sense to have one such file per .svn directory.
> 
> Why not use an empty or null stream instead?  It looks like the file handles 
> are being converted to stream object anyways.

External diff?

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by John Szakmeister <jo...@szakmeister.net>.
On Monday 01 August 2005 05:42, Branko Čibej wrote:
> Peter N. Lundblad wrote:
> >On Sun, 31 Jul 2005, [UTF-8] Branko �^Libej wrote:
> >>Peter N. Lundblad wrote:
> >>
> >>One of the things we could do, that I don't see mentioned in the wc
> >>enhancements doc, is to get rid of empty-file. Instead of one empty file
> >>in every .svn directory, I'd put one somewhere in ~/.subversion and use
> >>that. If it's not there, and can't be created. we can still create a
> >>temporary one in .svn/tmp or /tmp. This would save yet another inode per
> >>directory (on those FSes that care about inodes, that is).
> >
> >I haven't checked, but I'd guess empty-file is used to generate diffs,
> >true? In that creating an empty file on demand couldn't be that of a
> >performance bottle-neck... Shy bother with an empty-file in .subversion in
> >that case? We just stop using empty-file and stop creating it in the next
> >WC format.
>
> We put emtpy-file in there because IIRC it was shown that creating it
> for every diff did have a significant impact on speed. It might be that
> "it was shown" incorrectly; but if it wasn't, it certainly makes no
> sense to have one such file per .svn directory.

Why not use an empty or null stream instead?  It looks like the file handles 
are being converted to stream object anyways.

-John

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: Some WC improvements

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Tue, 2 Aug 2005, Julian Foad wrote:

> Peter N. Lundblad wrote:
> > On Mon, 1 Aug 2005, Philip Martin wrote:
> >
> >>Branko ?ibej <br...@xbc.nu> writes:
> >>
> >>>We put emtpy-file in there because IIRC it was shown that creating it
> >>>for every diff did have a significant impact on speed. It might be
> >>>that "it was shown" incorrectly;
> >>
> >>I put it in, it just seemed the natural thing to do when I was writing
> >>the diff code.  The reduced IO seemed important at the time because I
> >>wasn't aware quite how much other IO went on in libsvn_wc.
> >
> > If I'm changing this, I'm planning to create one empty file per diff (and
>
> Peter, it's not clear what you mean by "per diff".  The command-line client
> svn_cl__diff() calls svn_client_diff[_peg]3() once per explicit target given on
> the command line, and then that calls various functions, some of them
> recursive, to walk directory trees, and then finally the svn_diff library or an
> external diff program is called once per versioned file.  Which level of "diff"
> did you mean?
>
Heh, I was unclear. I was referring to diff targets. So if you have tons
of targets on the cmdline, you'll creates tons of empty-files, but you're
creating tons of other temp files, so why bother? This is the "plan", but
not a complete proposal, since I haven't investigated it in detail yet.
I'll do the property related stuff first...

Thanks,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by Julian Foad <ju...@btopenworld.com>.
Peter N. Lundblad wrote:
> On Mon, 1 Aug 2005, Philip Martin wrote:
> 
>>Branko ?ibej <br...@xbc.nu> writes:
>>
>>>We put emtpy-file in there because IIRC it was shown that creating it
>>>for every diff did have a significant impact on speed. It might be
>>>that "it was shown" incorrectly;
>>
>>I put it in, it just seemed the natural thing to do when I was writing
>>the diff code.  The reduced IO seemed important at the time because I
>>wasn't aware quite how much other IO went on in libsvn_wc.
> 
> If I'm changing this, I'm planning to create one empty file per diff (and

Peter, it's not clear what you mean by "per diff".  The command-line client 
svn_cl__diff() calls svn_client_diff[_peg]3() once per explicit target given on 
the command line, and then that calls various functions, some of them 
recursive, to walk directory trees, and then finally the svn_diff library or an 
external diff program is called once per versioned file.  Which level of "diff" 
did you mean?

> only if it is needed, possibly). Can that I/O really be measurable?  That
> might be what your saying above; just pointing out that I'm not going to
> create an empty-file per added/deleted file if that wasn't obvious.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by Branko Čibej <br...@xbc.nu>.
Philip Martin wrote:

>"Peter N. Lundblad" <pe...@famlundblad.se> writes:
>
>  
>
>>On Mon, 1 Aug 2005, Philip Martin wrote:
>>
>>    
>>
>>>Branko ?ibej <br...@xbc.nu> writes:
>>>
>>>      
>>>
>>>>We put emtpy-file in there because IIRC it was shown that creating it
>>>>for every diff did have a significant impact on speed. It might be
>>>>that "it was shown" incorrectly;
>>>>        
>>>>
>>>I put it in, it just seemed the natural thing to do when I was writing
>>>the diff code.  The reduced IO seemed important at the time because I
>>>wasn't aware quite how much other IO went on in libsvn_wc.
>>>
>>>      
>>>
>>If I'm changing this, I'm planning to create one empty file per diff (and
>>only if it is needed, possibly). Can that I/O really be measurable?  That
>>might be what your saying above;
>>    
>>
>
>I've never measured it.  I'd be surprised if it was significant given
>how much other IO goes on.
>
>  
>
>>just pointing out that I'm not going to
>>create an empty-file per added/deleted file if that wasn't obvious.
>>    
>>
>
>repos_diff.c already does that.
>  
>
So we can throw out that empty-file, and hopefully reduce the number of 
whines about using too many inodes...


-- Brane


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by Philip Martin <ph...@codematters.co.uk>.
"Peter N. Lundblad" <pe...@famlundblad.se> writes:

> On Mon, 1 Aug 2005, Philip Martin wrote:
>
>> Branko ?ibej <br...@xbc.nu> writes:
>>
>> > We put emtpy-file in there because IIRC it was shown that creating it
>> > for every diff did have a significant impact on speed. It might be
>> > that "it was shown" incorrectly;
>>
>> I put it in, it just seemed the natural thing to do when I was writing
>> the diff code.  The reduced IO seemed important at the time because I
>> wasn't aware quite how much other IO went on in libsvn_wc.
>>
> If I'm changing this, I'm planning to create one empty file per diff (and
> only if it is needed, possibly). Can that I/O really be measurable?  That
> might be what your saying above;

I've never measured it.  I'd be surprised if it was significant given
how much other IO goes on.

> just pointing out that I'm not going to
> create an empty-file per added/deleted file if that wasn't obvious.

repos_diff.c already does that.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Mon, 1 Aug 2005, Philip Martin wrote:

> Branko ?ibej <br...@xbc.nu> writes:
>
> > We put emtpy-file in there because IIRC it was shown that creating it
> > for every diff did have a significant impact on speed. It might be
> > that "it was shown" incorrectly;
>
> I put it in, it just seemed the natural thing to do when I was writing
> the diff code.  The reduced IO seemed important at the time because I
> wasn't aware quite how much other IO went on in libsvn_wc.
>
If I'm changing this, I'm planning to create one empty file per diff (and
only if it is needed, possibly). Can that I/O really be measurable?  That
might be what your saying above; just pointing out that I'm not going to
create an empty-file per added/deleted file if that wasn't obvious.

Thanks,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Some WC improvements

Posted by Philip Martin <ph...@codematters.co.uk>.
Branko Čibej <br...@xbc.nu> writes:

> We put emtpy-file in there because IIRC it was shown that creating it
> for every diff did have a significant impact on speed. It might be
> that "it was shown" incorrectly;

I put it in, it just seemed the natural thing to do when I was writing
the diff code.  The reduced IO seemed important at the time because I
wasn't aware quite how much other IO went on in libsvn_wc.

> but if it wasn't, it certainly makes
> no sense to have one such file per .svn directory.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org