Dear list,

I'm attempting to mirror a folder containing a few large files from an
NFS location to the local drive. Subsequent runs take a lot longer than
I'd have expected, after the first run.

Using the following block a puppet apply run is currently taking 30 seconds:
file { '/usr/share/target':
        source   => 'file:///home/archive/source/',
        recurse  => true,
        backup   => false,
        checksum => mtime,
}

There are 42 files taking up 870MB. I'd have thought stating the files
in the source and target, comparing to each other (or a cache internal
to puppet as it doesn't set the mtime on files) would be a lot faster
than it is.

I was curious about what puppet was up to, so ran it in strace. It's
reading every file every run, multiple times! Reads the target twice,
then the source twice before reading the target again. Considering I
wasn't expecting it to open any of the files at all this is total over kill.

Is this horribly bugged or have I got a magic incantation that's causing
this behaviour? strace is rather verbose and I haven't exactly read all
80MB of the dump line by line.

Is there a neater way of just mirroring a folder based on modification
time? I suppose the easiest route would be an exec of rsync, at least I
have control over that.

I'm using Puppet 2.6.4.

Dan
I especially like the way Ruby searches for and loads the md5 library
every time it's used. What a performant language.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to