feat(#2450): append_subgraph primitive + sweep MetaLock grows rebuilds in-DAG
First half of making the startup sweep one DAG. Adds the runtime subgraph-append machinery and switches the sweep MetaLock from fanning out child Rebuild DAGs to growing one rebuild subgraph per stale agent into the same DAG: - JobQueue::append_subgraph(dag_id, nodes, dep_on) — the multi-node, multi-agent generalisation of append_node: rebases a subgraph's local deps onto the DAG's id space and roots it on the emitting node. - NodeOutput.append_subgraph: Vec<Vec<NodeSpec>> — the executor→scheduler channel for it; scheduler drains it before completing the emitting node (same ordering as append_nodes). - run_meta_lock sweep branch returns the stale agents' rebuild_nodes subgraphs via append_subgraph instead of fanout. Follow-up commit collapses submit_boot_tree (drop boot_root + per-agent reconcile child DAGs) so the whole boot is one DAG built inline.
This commit is contained in:
parent
44286996ed
commit
b6defdeaaf
3 changed files with 92 additions and 3 deletions
|
|
@ -116,6 +116,15 @@ async fn handle_completion(
|
|||
.job_queue
|
||||
.append_node(claim.dag_id, kind, claim.node_id);
|
||||
}
|
||||
// Same before-completion ordering as `append_nodes`, but for
|
||||
// whole per-agent subgraphs (the startup sweep's rebuild
|
||||
// subgraphs growing into the boot DAG) — each an independent
|
||||
// subgraph rooted on this node.
|
||||
for subgraph in output.append_subgraph {
|
||||
coord
|
||||
.job_queue
|
||||
.append_subgraph(claim.dag_id, subgraph, claim.node_id);
|
||||
}
|
||||
coord
|
||||
.job_queue
|
||||
.complete_node(claim.dag_id, claim.node_id, Ok(()));
|
||||
|
|
|
|||
Loading…
Reference in a new issue