On Nov 5, 2010, at 4:38 AM, Jesse Wolfe wrote:

> 
> I think the right answer is to get rid of the need for this graph at all by 
> having a single graph contain both dependency and containment edges, thus not 
> needing the many to many nature.  I tried very hard to get this into 2.6 but 
> couldn't finish it in time.  In seeing this multiplier, it's probably 
> justification to raise the priority on this, which doesn't hurt my feelings 
> at all.
> 
> 
> It's possible to model containment without having to specify "containment 
> edges" in the graph. You just create dependency edges to "open container" and 
> "close container" vertexes.
> 
> So, currently, we do something like this (in puppet pseudocode):
> If we have this catalog:
> Class[A] -> Class[B]
> Class A { resource{"A1"}; resource{"A2"}; resource{"A3"} )
> Class B { resource{"B1"}; resource{"B2"}; resource{"B3"} )
> 
> the edges expand to:
> A1 -> B1 ; A1 -> B2 ; A1 -> B3
> A2 -> B1 ; A2 -> B2 ; A2 -> B3
> A3 -> B1 ; A3 -> B2 ; A3 -> B3
> that's nine edges, which is (A * B)
> 
> Instead, we could do something like:
> beginA -> A1 -> endA
> beginA -> A2 -> endA
> beginA -> A3 -> endA
> endA -> beginB
> beginB -> B1 -> endB
> beginB -> B2 -> endB
> beginB -> B3 -> endB
> which has more edges in a small example, but it's (2A + 2B + 1), so it's much 
> less prone to explosions.

How does this change if you leave the Class etc. resources in the graph?

-- 
Opportunity is missed by most people because it is dressed in overalls
and looks like work.        -- Thomas A. Edison
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199



-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" 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-dev?hl=en.

Reply via email to