Re: rsync to copy files?

2004-06-24 Thread Ralf Wildenhues
* Bob Friesenhahn wrote on Thu, Jun 24, 2004 at 02:16:37AM CEST:
 On Wed, 23 Jun 2004, Warren Young wrote:
 Bob Friesenhahn wrote:
 
 I have learned that using 'rsync' to copy files improves the install time 
 quite dramatically for repeat installs. 
*snip*
 Instead of chasing this solution, try patching autoconf to use 'cp -u' 
 instead of 'install'.
 
 I was not aware of this cp option. It seems to be limited to GNU 
 cp.  On Linux systems, or systems where GNU cp is available, this 
 seems like a reasonable choice.

If you change the install semantics, please consider keeping the
'one install line echoed per file' rule.  Please also make the new
behavior (e.g. not overwriting files with newer timestamp) optional,
the default being the old behavior.  Otherwise, hard-to-debug
failures could occur.

Regards,
Ralf




Re: rsync to copy files?

2004-06-24 Thread Volker Boerchers
On Thu, 24 Jun 2004, Ralf Wildenhues wrote:

 * Bob Friesenhahn wrote on Thu, Jun 24, 2004 at 02:16:37AM CEST:
  On Wed, 23 Jun 2004, Warren Young wrote:
  Bob Friesenhahn wrote:
  
  I have learned that using 'rsync' to copy files improves the install time 
  quite dramatically for repeat installs. 
 *snip*
  Instead of chasing this solution, try patching autoconf to use 'cp -u' 
  instead of 'install'.
  
  I was not aware of this cp option. It seems to be limited to GNU 
  cp.  On Linux systems, or systems where GNU cp is available, this 
  seems like a reasonable choice.
 
 If you change the install semantics, please consider keeping the
 'one install line echoed per file' rule.  Please also make the new
 behavior (e.g. not overwriting files with newer timestamp) optional,
 the default being the old behavior.  Otherwise, hard-to-debug
 failures could occur.

an easy way to replace 'install' is to overwrite the INSTALL variable 
temporarily (at least with gnu make):

  make INSTALL=myinstall install

where myinstall could be a little shell script that accomodates the
replacement to 'install', e.g. handles the commandline options in the
right way.

This way we regularly replace install by ln (hardlink) where possible
(same filesystem and partition) saving time and disk space.

Volker
-- 
Volker Börchers
TECON Systems AG, http://www.tecon.de




Re: rsync to copy files?

2004-06-24 Thread Ralf Wildenhues
Please reply to list only (I have Mail-Followup-To: set), or at least
use the same message for both replies, so I don't have to reply twice.
Thank you.

* Volker Boerchers wrote on Thu, Jun 24, 2004 at 03:57:35PM CEST:
 On Thu, 24 Jun 2004, Ralf Wildenhues wrote:
  * Bob Friesenhahn wrote on Thu, Jun 24, 2004 at 02:16:37AM CEST:
   
[using 'cp -u' or similar within Automake's install* rules]
  
  If you change the install semantics, please consider keeping the
  'one install line echoed per file' rule.  Please also make the new
  behavior (e.g. not overwriting files with newer timestamp) optional,
  the default being the old behavior.  Otherwise, hard-to-debug
  failures could occur.
 
 an easy way to replace 'install' is to overwrite the INSTALL variable 
 temporarily (at least with gnu make):
 
   make INSTALL=myinstall install

Yes, I know, thank you.  I was not referring to a particular way to
install a particular software, but rather to the way the Automake
install rules should work.  Say, I test a package in a second build
tree with different compile options, and then decide to re-install
the old package from the first build tree, I do not want to end up
with a mixed installation even if I forgot to 'make uninstall' in
between.  I just would not expect 'make install' to behave that way.

Does that make the intention of my comment clear?

Regards,
Ralf




Re: rsync to copy files?

2004-06-24 Thread Bob Friesenhahn
On Thu, 24 Jun 2004, Ralf Wildenhues wrote:
an easy way to replace 'install' is to overwrite the INSTALL variable
temporarily (at least with gnu make):
  make INSTALL=myinstall install
Yes, I know, thank you.  I was not referring to a particular way to
install a particular software, but rather to the way the Automake
install rules should work.  Say, I test a package in a second build
tree with different compile options, and then decide to re-install
the old package from the first build tree, I do not want to end up
with a mixed installation even if I forgot to 'make uninstall' in
between.  I just would not expect 'make install' to behave that way.
Does that make the intention of my comment clear?
Yes, very.
From comments posted it seems that we can summarize:
  o Any alternative to install/cp should not be the default, even if
the necessary tools are found since performance improvements
depend on the relative performance of the filesystems involved
(and there may be no improvement at all if the file must
actually be copied and both files are on local disk).
  o The replacement must reliably update the file if it has changed.
I believe that rsync looks at the absolute time stamp (with optional 
fuzz factor) while it seems that GNU 'cp -c' only checks the source 
file's date to see if it is newer and does not check file size.

Bob
==
Bob Friesenhahn
[EMAIL PROTECTED]
http://www.simplesystems.org/users/bfriesen



rsync to copy files?

2004-06-23 Thread Bob Friesenhahn
A package I am working with needs to install many large files.  In the 
course of package development it is necessary to execute 'make 
install' many times.  These large files never change.

I have learned that using 'rsync' to copy files improves the install 
time quite dramatically for repeat installs.  Even for files that 
change sometimes (executables, libraries, formatted documentation), it 
is quite common for subsequent installs to copy identical files since 
the files are already built/generated.

Perhaps automake might consider checking for 'rsync' and making use of 
it if it is available (and works)?

Bob
==
Bob Friesenhahn
[EMAIL PROTECTED]
http://www.simplesystems.org/users/bfriesen



Re: rsync to copy files?

2004-06-23 Thread Warren Young
Bob Friesenhahn wrote:
I have learned that using 'rsync' to copy files improves the install 
time quite dramatically for repeat installs.  
This should only be true when the transfer channel is much slower than 
the disks on which the files are stored.  rsync must read both the 
source and destination files, and do calculations on both, before it 
knows which parts of the files need to be transferred.  When the 
transfer channel is a network, it's likely that the time spent doing 
this extra disk I/O and calculation is more than offset by the savings 
in network time.  When the source and destination are on the same 
machine, there should be no such benefit.

Instead of chasing this solution, try patching autoconf to use 'cp -u' 
instead of 'install'.




Re: rsync to copy files?

2004-06-23 Thread Bob Friesenhahn
On Wed, 23 Jun 2004, Warren Young wrote:
Bob Friesenhahn wrote:
I have learned that using 'rsync' to copy files improves the install time 
quite dramatically for repeat installs. 
This should only be true when the transfer channel is much slower than the 
disks on which the files are stored.  rsync must read both the source and 
destination files, and do calculations on both, before it knows which parts 
of the files need to be transferred.  When the transfer channel is a network, 
it's likely that the time spent doing this extra disk I/O and calculation is 
more than offset by the savings in network time.  When the source and 
destination are on the same machine, there should be no such benefit.
That is true.  However, usually reading is faster than writing, 
particularly if NFS is involved.  Also, rsync can first check both the 
file's timestamp and size.

In my test case, the source files are accessed via NFS (over 
100BASE-T), and the 'make install' is executed on the target system.

Instead of chasing this solution, try patching autoconf to use 'cp -u' 
instead of 'install'.
I was not aware of this cp option. It seems to be limited to GNU 
cp.  On Linux systems, or systems where GNU cp is available, this 
seems like a reasonable choice.

Bob
==
Bob Friesenhahn
[EMAIL PROTECTED]
http://www.simplesystems.org/users/bfriesen