Scheduling and Task Expiration

When Broker Spanning is enabled, the Driver continuously attempts to maintain connections to all Brokers. It assigns tasks to Brokers using a simple algorithm that attempts to balance the workload. If a connection times out on any Broker, the Driver does Driver-side expiration and resubmits any outstanding tasks to the remaining Brokers. In the event of a Broker failure, long-running tasks continue to run on Engines; when they log in to the Director, they are directed to whichever Broker that has ended up with the expired task.

After submitting a large number of tasks, some Brokers might contain tasks in the queue to execute whereas other Brokers might not. When Task Expiration is enabled, tasks expire on the Broker if they are not scheduled to any Engine after a specified period of time after submission. Task Expiration alleviates the problem of unbalanced Broker queues. Upon expiration, tasks are automatically assigned to the next appropriate Broker. Task Expiration is available for Broker Spanning Services only.

To activate Task Expiration, set the following Service options:

PENDING_TASK_TIMEOUT — To enable Task Expiration, set this to a value indicating the number of minutes to wait before reassigning tasks to another Broker.
TASK_EXPIRATION_START_OFFSET — Optionally enables you to delay the start of Task Expiration by a specified number of minutes. This offset represents a one-time delay in starting the timer to check for Task Expiration. For example, if the value of PENDING_TASK_TIMEOUT is set to 5 and TASK_EXPIRATION_START_OFFSET is set to 60, the first task to be expired is 65 minutes after the Service was submitted to the Broker. Additional task expiration would happen every 5 minutes after the first expiration event. The Broker first waited for TASK_EXPIRATION_START_OFFSET to pass (60 minutes) before starting the PENDING_TASK_TIMEOUT timer (5 minutes) for a total of 65 minutes. The default value for TASK_EXPIRATION_START_OFFSET is 0.

You can also tune Task Expiration on the Broker by specifying the following values in the Administration Tool at Admin > System Config > Manager Configuration > Services:

Minimum Tasks to Expire — You can require that a certain number of tasks expire regardless of the Percentage of Tasks to Expire (Given that there are eligible tasks to expire).
Percentage of Tasks To Expire — You can expire only a percentage of tasks of those eligible for expiration every minute.
Idle Broker Only Task Expiration Enabled — When enabled (the default), this setting prevents tasks from expiring if there is not an idle Broker available.