d9d4da1e9f
Processing an evaluation is nearly a pure function over the state snapshot, but we randomly shuffle the nodes. This means that developers can't take a given state snapshot and pass an evaluation through it and be guaranteed the same plan results. But the evaluation ID is already random, so if we use this as the seed for shuffling the nodes we can greatly reduce the sources of non-determinism. Unfortunately golang map iteration uses a global source of randomness and not a goroutine-local one, but arguably if the scheduler behavior is impacted by this, that's a bug in the iteration.
4 lines
117 B
Plaintext
4 lines
117 B
Plaintext
```release-note:improvement
|
|
scheduler: Seed node shuffling with the evaluation ID to make the order reproducible
|
|
```
|