-
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: Ryan Goodfellow <rgoodfel@isi.edu>
1348f022