Issue #6911 has been updated by Markus Roberts.

Branch set to MarkusQ:feature/next/resource_application_order

Core change up for review.  Note that is *not* a resolution, just a key 
way-point on the route to a resolution.

    (6911) Core change -- replace topsort with frontier ordered by salted SHA1
    
    This is the core change of the ticket; rather than using a topological sort 
to statically
    determine the order in which resources should be applied, we use the graph 
wrapper
    introduced in the prior commit to dynamically determine the order in which 
to apply
    resources based on 1) the status of the resource (ready, done) 2) the 
explicit &
    implied dependencies, 3) the salted SHA1 of the title (for stability).
    
    Further work is needed:
    
    1) Resolving the handling of failed resources
    2) Tests of the new behavior, to the extent possible
    3) Newly-dead-code removal in simple_graph & transaction
    4) Fix the name-prefix ordering hack in eval_generate by either:
        a) Moving the logic into file
        b) Refactoring Type#eval_generate to return a tree
        c) ....?
    5) Rough performance testing to look for hotspots
    6) Investigation of possible interaction with #3788, #5351, #5414, #5876, 
#6020, #6810,
       and #6944 which may simplify or complicate their resolution.
    
    Paired-with: Jesse Wolfe


----------------------------------------
Feature #6911: Flexible, deterministic, unguessable application order
https://projects.puppetlabs.com/issues/6911

Author: Markus Roberts
Status: Accepted
Priority: Normal
Assignee: Markus Roberts
Category: 
Target version: Statler
Affected Puppet version: 
Keywords: 
Branch: MarkusQ:feature/next/resource_application_order


We would like to change the order in which resources are applied to meet a very 
specific set of constraints:

1. The order should permit responsive adaptation to externalities (graph 
frontiers)
2. The order in which resources that do not depend on externalities should be 
consistent (deterministic) from run to run provided that no structural changes 
occur in the manifest
3. Changes in the ordering due to manifest changes should be limited in scope 
and correspond to the areas that were changed (that is, 
adding/removing/changing one resource should not affect the relative order of 
any unrelated pair of resources)
4. It should not be possible to guess the ordering a priori -- this mechanism 
is not a substitute for declaring dependencies.
5. It should not violate any implicit or explicit dependencies


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