camsas / firmament

The Firmament cluster scheduling platform
Apache License 2.0
412 stars 77 forks source link

Dynamic equivalence class sets are not supported #39

Closed ms705 closed 8 years ago

ms705 commented 8 years ago

Our current implementation will exhibit undefined behaviour if a task's equivalence classes change over time. In other words, we assume that the set of ECs for each task is (a) deterministic in the task's fixed properties, and (b) consequently does not change over time.

None of our current scheduling policies (cost models) have dynamic EC sets, but we may want to have them in the future. (For example: it would be conceivable for Kubernetes labels to be used as ECs, but such labels can change over time.)

This issue is primarily to serve as a reminder that dynamically changing ECs aren't supported, and as a starting point for discussion about future support for them.

If we were to support them, we would have to extend the scheduling code (FlowGraphManager, primarily) with code that checks the set of current ECs returned from GetTaskEquivClasses and GetResourceEquivClasses against the current ECs in the flow graph, and updates the graph to reflect any changes (both in the existence and in the arc costs for each equivalence class).

ms705 commented 8 years ago

@ICGog I believe 5c1c6397617d75d28db3090a97430f771cb57dcf fixed this -- correct?

ICGog commented 8 years ago

Yes, that's correct.