Deprecating load_balancing sched config

This is to deprecate load_balancing in the scheduler config.


The design says “Once this is deprecated, the rm_get code can be safely removed from the scheduler.” Deprecated doesn’t mean it can be removed right away – deprecated features must continue to work – it means the plan is to remove it at some point in some future release. So folks who are using it should plan a transition away from using it, and it’s going to removed from the docs so new folks don’t start using it. So, if this is to be deprecated, it’ll have to wait at least 1 release before the rm_get code can be removed from the scheduler.

If you want to remove the rm_get code sooner, that might be possible, but it would not be “deprecating” it, and it would be best to offer a reasonable alternative to achieve the same (or close to the same) behavior. (That could be via configuration and hooks, it doesn’t have to be C code, but having a replacement would be … good).


Hey @billnitzberg
I think @vstumpf made a slight error in his document. The plan was to deprecate load_balancing in our upcoming release and then remove it in the subsequent one.

The current implementation of load_balancing hasn’t worked well since PBSPro 8.0. It was functionality that was meant for the scheduler’s single node code path. When we merged the code paths in 8.0, it became a questionable strategy at best. It still works for single node jobs, but it doesn’t for multinode jobs. In a mixed environment the outcome is unstable at best. One of our developers found this out many years ago and filed an internal bug about it. Nothing ever came of it, so I figured it wasn’t important.


Thanks @bhroam!

Sounds like @vstumpf just needs to update the design doc, cool.

Regarding usefulness, it sounds like you are saying “it works well in some circumstances but not others”. If that’s true, and there are folks who depend on the existing (working well) behavior, we should definitely have an alternative before removing the option. (Of course, deprecating is one way we can start to find out if anyone is depending on it, so that will help.)

I’ve updated the design to say that once this is deprecated, all features that use rm_get and tpp in the scheduler are deprecated.

I’ve opened a PR here:

@vstumpf , there is a small typo in the doc.
The command scheduler uses is called pbs_rmget.

Technically, it uses the rm library’s methods, not the pbs_rmget command itself. I’ve updated the doc.

Ah ok, I didn’t know that.