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

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