Issue #4590 has been updated by Paul Berry.

% Done changed from 0 to 80

I have modified Markus's SimpleGraph rewrite so that its YAML serialization is 
backward compatible with the format used by 2.6.  It also contains an option 
(use_new_yaml_format) which causes it to use a more compact format which is 
intended for use in 2.8 and beyond.  The option is used by spec tests to verify 
that 2.7 will be compatible with the planned 2.8 format.

My modifications do not yet work with Ruby 1.8.1, because they rely on 
YAML.load() calling the method yaml_initialize on our objects.  That is not 
supported in older versions of Ruby (in particular it doesn't work in 1.8.1).  
We will need to write a workaround/monkeypatch to make this work in older 
Rubies.

Work in progress can be found in the branch 
http://github.com/stereotype441/puppet/tree/sg-test
----------------------------------------
Bug #4590: SimpleGraph is slow
http://projects.puppetlabs.com/issues/4590

Author: Paul Berry
Status: Accepted
Priority: Normal
Assigned to: Paul Berry
Category: 
Target version: 
Affected version: 2.6.1rc2
Keywords: 
Branch: 


Experiments on 8/17/10 revealed that Puppet spends a significant amount of time 
executing methods in the SimpleGraph class.  Using a contrived .pp file 
containing 4000 "notify" resources and 25806 "require" dependencies, execution 
of "puppet apply" takes 71 seconds with 2.6.x.  We know that a lot of this time 
is due to SimpleGraph, because we can replace SimpleGraph with an alternate 
implementation (from Markus) and bring execution time down to 44 seconds, a 38% 
savings.

Unfortunately, Markus's rewrite of SimpleGraph is not yet ready to commit to 
the codebase, because it breaks the YAML serialization format.

I'm working on this.


-- 
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