Ability to allocate execution threads
- Last Updated: June 8, 2025
- 2 minute read
- Corticon
- Documentation
The following Server properties let you adjust Server allocations:
- The Corticon Server takes
each thread (regardless of which Decision Service the thread is executing against),
and then adds the thread to the Execution Queue in a first-in-first-out strategy.
While that generally satisfies most use cases, you might want more control over which
Decision Services get priority over other Decision Services. For that, you first set
the Server property
com.corticon.server.decisionservice.allocation.enabledtotrue, and then set the maximum number of execution threads (maxPoolSize) for each specified Decision Service in the Execution Queue. Once you set the allocation on every Decision Service, the Server will try to maintain corresponding allocations of execution threads from the Decision Services inside the Execution Queue. Once the property is set totrue, the Decision Services will allocate based on themaxPoolSizethat was assigned when the Decision Service was deployed. You can then dynamically change a Decision Service'smaxPoolSizewhen deployed using a CDD file by setting the value of thePROPERTY_MAX_POOL_SIZEproperty in the CDD. When theCcServerMaintenanceThreaddetects the change, it will update the Decision Service.Note: You might have circumstances where you want to disable allocation behavior, ensuring that Decision Services will strictly adhere to the maximum thread limit, even if the server is not fully utilized. Default value isfalsecom.corticon.ccserver.allocation.disable.underutilization.algorithm=false - In some cases, you might want to enable Decision Service level
allocations to control the number of Decision Service instances that can be added to
the queue at a particular time. This will cause prioritizing of one Decision Service
over another, making more resources available to that type. To do this, set the
property's value to
true. Default value isfalsecom.corticon.server.decisionservice.allocation.enabled=false - Once Decision Service allocation is turned on, prioritization of one
Decision Service may occur in the Execution Queue. If a particular Decision Service
is fully allocated in the Execution Queue, other execution threads for that Decision
Service will have to wait until one of the allocated execution Threads completes its
execution. The wait time, in getting into the Execution Queue varies, based on load
and other Decision Service allocations. You can allow those waiting Threads to
timeout if they wait longer than specified. A
CcServerTimeoutExceptionwill be thrown if the execution thread fails to complete in the allotted time. The value is in milliseconds. Default value is180000(180000ms = 3 minutes)com.corticon.server.decisionservice.allocation.timeout=180000