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.