open-nomad/scheduler
Tim Gross d9d4da1e9f
scheduler: seed random shuffle nodes with eval ID (#12008)
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.
2022-02-08 12:16:33 -05:00
..
benchmarks scheduler: tooling for scheduler benchmarking (#11725) 2021-12-22 10:05:44 -05:00
annotate.go scheduler: label loops with nested switch statements for effective break (#8528) 2020-07-24 08:50:41 -04:00
annotate_test.go
context.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
context_test.go scheduler: seed random shuffle nodes with eval ID (#12008) 2022-02-08 12:16:33 -05:00
device.go
device_test.go
feasible.go scheduler: seed random shuffle nodes with eval ID (#12008) 2022-02-08 12:16:33 -05:00
feasible_test.go add support for host network interpolation 2021-04-13 09:53:05 -04:00
generic_sched.go scheduler: recover from panic (#12009) 2022-02-07 11:47:53 -05:00
generic_sched_test.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
preemption.go
preemption_test.go Fix preemption panic (#11346) 2021-10-19 20:22:03 -04:00
propertyset.go
rank.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
rank_test.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
reconcile.go reconciler: improve variable names and extract methods from inline logic (#12010) 2022-02-05 04:54:19 -05:00
reconcile_test.go core: allow setting and propagation of eval priority on job de/registration (#11532) 2021-11-23 09:23:31 +01:00
reconcile_util.go reconciler: improve variable names and extract methods from inline logic (#12010) 2022-02-05 04:54:19 -05:00
reconcile_util_test.go removed deprecated fields from Drain structs and API 2021-03-21 15:30:11 +00:00
scheduler.go scheduler: seed random shuffle nodes with eval ID (#12008) 2022-02-08 12:16:33 -05:00
scheduler_oss.go gofmt all the files 2021-10-01 10:14:28 -04:00
scheduler_sysbatch_test.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
scheduler_system.go scheduler: recover from panic (#12009) 2022-02-07 11:47:53 -05:00
scheduler_system_test.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
select.go chore: fix incorrect docstring formatting. 2021-08-30 11:08:12 +02:00
select_test.go
spread.go
spread_test.go scheduler: fix quadratic performance with spread blocks (#11712) 2021-12-21 10:10:01 -05:00
stack.go scheduler: seed random shuffle nodes with eval ID (#12008) 2022-02-08 12:16:33 -05:00
stack_oss.go chore: ensure consistent file naming for non-enterprise files. 2022-01-13 11:32:16 +01:00
stack_test.go core: implement system batch scheduler 2021-08-03 10:30:47 -04:00
testing.go scheduler: detect and log unexpected scheduling collisions (#11793) 2022-01-14 20:09:14 -05:00
util.go scheduler: seed random shuffle nodes with eval ID (#12008) 2022-02-08 12:16:33 -05:00
util_test.go scheduler: seed random shuffle nodes with eval ID (#12008) 2022-02-08 12:16:33 -05:00