Scenario Execution and Job Scheduling
When scenario execution is initiated, via the app's user interface or the REST API, the scenario is locked to prevent further changes to its data and a job is created. The job descriptor will include the specific execution mode that was requested when the execution was initiated. The job is added to job queue and will be visible on the JOBS page of the user interface.
Insight can execute jobs on one or more execution workers. The worker or workers chosen to execute the job depends on the execution mode of the job and how that execution mode has been mapped to the available workers.
An execution mode is mapped to an execution service. An execution service is configured to group one or more workers for a common purpose. When a job is executed, the mode to service and service to workers mappings are resolved to the possible workers that can run the job.
- Each worker is configured with a limit on the number of concurrent jobs it can execute, and a limit on the total number of CPU threads the jobs can consume.
- Each service to worker mapping also has configurable job and thread count limits which can be used to assign sub-set of a workers capacity to the service.
- The effective limit on job and thread count for a given service and worker is MIN (worker limit, server to worker mapping limit).
- Either or both of job and thread count limits can be set to unlimited for the worker and server to worker mapping. If the limit on both worker and server to worker mapping is set to unlimited then the effective limit is unlimited.
- Job count rule
A job can only be scheduled on a worker if the current number of concurrent jobs executing is less than the effective limit.
- Thread count rule
If the jobs execution mode declares a thread count then the job can only be scheduled on a worker where the currently utilized threads is at least the value of that thread count below the effective thread limit.
- An execution mode that does not declare a threadcount, is considered to consume a single thread.
- Worker selection
Multiple execution workers can be mapped to an execution service. A job will be assigned to a worker where mapping and worker provide sufficient job and thread capacity. If multiple workers remain, the following rule are applied to select the worker:
- Prefer mappings with no thread limit.
- Prefer mappings with more unused threads.
- Prefer workers with more unused threads.
- Prefer workers with an earlier dictionary order (tie breaker).
© 2001-2024 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.