Skip to content
  • Ryan Goodfellow's avatar
    organize node mzn around nodes, not services · 1348f022
    Ryan Goodfellow authored
    
    
    previously, materialization was organized around the various services
    that needed to set up around nodes. this created problems as the timing
    and synchronization constraints for a materialization have more to do
    with when the nodes come up than when services come up.
    
    for example, what motivated this patch set in the first place, was the
    fact that when sled and canopy jobs are batched across nodes, if the
    sled imgaing process finishes for nodes at varying rates, then they will
    transition to the materialization at varying rates. but because the
    tasks are batched around services, the canopy process to put the nodes
    on the correct network will not start until all nodes finish imaging.
    
    this commit set organizes tasks and actions around nodes. when a mat or
    dmat comes in, the first thing that is done is base infrastructure
    setup, this is still service based. however, the next step is either
    setting up or recycling nodes. this has been moved to a node centric
    model where each node is assigned an action within a task stage.
    
    when rex pickes up the task, it will execute all nodes in parallel,
    becuase that is how the task/stage/action model works, actions are done
    in parallel. this way each action focuses on it's own node, as the
    action unfolds synchronization constraints are manged by the executing
    thread directly.
    
    Signed-off-by: default avatarRyan Goodfellow <rgoodfel@isi.edu>
    1348f022