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 cannot take Services due to Service discrimination or blacklisting, but also will not be shared to another Broker. (Task-level discriminators are not taken into account.)

All of the following 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. You can configure it 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:

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) are not considered when allocating Engines to this Broker. This does not prevent the Engines from being reallocated to the Broker even if the Engines do not 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.time, whichThis slows down the balancing. Lower the value of the parameter, if balancing is slowed down to an unacceptable level.