>> Can we have more information or pointer on said algorithm?
>> (It's possible it was discussed here and I missed the thread).
>>
> I'll have to direct this question over to Markus. I've seen him sketch it on
> a whiteboard, but I'm not sure it's been capture sufficiently outside his
> head.

The basic idea is that at any point resources can be split into those
with pending dependencies (the interior) and those that are ready to
process (frontier).  When you process a resource on which other
resources depend, you reduce the number of things on which they are
waiting and may make them ready to process (moving them from the
interior to the frontier).  You are done (successfully) when both sets
are empty, and have a loop when frontier is empty but the interior
isn't.

It's basically the graph analog of heap sort.  The advantage come from
not over specifying the order; _any_ resource on the frontier can be
processed, which gives you freedom to do some optimizations /
parallelizations / clever tricks.

-- M
-----------------------------------------------------------
The power of accurate observation is
commonly called cynicism by those
who have not got it.  ~George Bernard Shaw
------------------------------------------------------------

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