Skip to content

Implement parallel DAG walking #822

@bschaatsbergen

Description

@bschaatsbergen

Resource reconciliation currently happens sequentially, which creates a bottleneck for complex graphs. Many resources are independent of each other, yet they are processed one by one because the existing walker enforces sequential execution. This limits throughput and increases processing times unnecessarily.

A simpler approach could be to rely on levelled topological execution and push all resources at the same level into an apply set. Each apply set would contain only the nodes that are ready to be processed in parallel, while still respecting all dependency guarantees. This avoids introducing a fully separate concurrent DAG walker, but still allows independent resources to be applied concurrently within each level.

Before moving forward, it would be useful to discuss how people typically write RGDs and wire up dependencies. This will help us understand patterns and ensure that applying resources in parallel preserves expected behavior.

Metadata

Metadata

Labels

area/runtimekind/featureCategorizes issue or PR as related to a new feature.needs-kreptriage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions