Issue #9671 has been updated by Josh Cooper.

Status changed from Needs More Information to Accepted
Priority changed from Normal to High
Affected Puppet version changed from 2.7.3 to 2.7.0

Nick and I have confirmed that this problem was introduced in 2.7.0 as part of 
#5200, which adds whits to the graph. Ironically, that change was supposed to 
make things "better" by reducing the number of edges, but overall performance, 
in terms of how long it takes to apply the manifest, is slower by more than an 
order of magnitude.
----------------------------------------
Bug #9671: transaction eval_generate slow on many files in recurse managed 
directory
https://projects.puppetlabs.com/issues/9671

Author: Simon Effenberg
Status: Accepted
Priority: High
Assignee: Josh Cooper
Category: file
Target version: 2.7.x
Affected Puppet version: 2.7.0
Keywords: transaction file recurse
Branch: 


Since 2.7 (jump from 2.6.2 to 2.7.3) a file resource for a directory with many 
files in it is really really too slow.

<pre>
  file { "/var/www/munin":
    ensure  => directory,
    owner   => munin,
    group   => munin,
    mode    => 644,
    recurse => true,
    require => [
      Class['munin::master'],
    ]
  }
</pre>

In the directory there are ~19000 files and in the 
/usr/lib/ruby/1.8/transaction.rb in lines 171-174:

<pre>
    made.each do |res|
      add_conditional_directed_dependency(made.find { |r| r != res && r.name == 
res.name[0,r.name.length]} || resource, res)
      add_conditional_directed_dependency(res, sentinal, default_label)
    end
</pre>

the first add_conditional_directed_dependency needs a time between 0.2 and 1.5s 
which is, let's say an avg (it is growing over the time) of 0.4s and this 
*19000 files means, that the resource needs >2h... maybe this is not changeable 
but i wants to know if i have to remove the recurse => true for this or if this 
is a "bug"


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to