Balancing and Service Discriminators
When the Director polls Brokers for Engine information, it also collects information about Service discriminators and blacklisted Engines. The Director avoids a situation where Engines are at their home Broker and can’t take Services due to Service discrimination or blacklisting, but also won’t be shared to another Broker. (Task-level discriminators are not taken into account.)
All of the following conditions must be true for a Service, to report a Service discriminator:
| • | The Service is not complete. |
| • | The Service has pending tasks. |
| • | The number of busy Engines working on the Service does not exceed the max Engines option of the Service. |
To limit CPU and network usage during balancing, the maximum number of discriminators reported by each Broker can be configured on the Director at Admin > System Admin > Manager Configuration > Engines and Clients > Max Service Discriminators. This setting specifies the number of Services with discriminators per Broker that are considered.
If a Broker has more outstanding services with Service discriminators than the maximum specified, a message is logged in the Broker logs, similar to the following message:
INFO: [EngineSharing] Maximum number of discriminators 10 is reached when collecting service level discriminators
When this occurs, the remaining discriminators over max (ten in the above example) is not considered when allocating Engines to this Broker. This does not prevent the Engines from being reallocated to the Broker even if the Engines don’t satisfy the discriminators. If Max Service Discriminators is set to 0, no discriminators are considered.
If the Max Service Discriminators is set to a very high value, reporting of balance data from the Broker to the Director takes more time which slows down the balancing. If balancing is slowed down to an unacceptable level, lower the value of the parameter.