Changing an actor system’s configuration
The actor system configuration contains an enumeration of ExecutorPools, their mapping to task types, and the actor system scheduler configurations.
The following task types and their respective pools are currently supported:
- User: Includes the entire user load for handling and executing incoming requests.
- Batch: Tasks that have no strict time limit for execution, mainly the execution of background operations.
- IO: Responsible for performing any tasks with blocking operations (for example, writing logs to a file).
- IC: Interconnect, includes all the load associated with communication between nodes.
Each pool is described by the Executor field as shown in the example below.
A summary of the main fields:
- Type: Currently, two types are supported, such as BASIC and IO. All pools, except IO, are of the BASIC type.
- Threads: The number of threads (concurrently running actors) in this pool.
- Name: The pool name to be displayed for the node in Monitoring.
Mapping pools to task types is done by setting the pool sequence number in special fields. Pool numbering starts from 0. Multiple task types can be set for a single pool.
- SysExecutor: System
- UserExecutor: User
- BatchExecutor: Batch
- IoExecutor: IO
Example:
The IC pool is set in a different way, via ServiceExecutor, as shown in the example below.
The actor system scheduler is responsible for the delivery of deferred messages exchanged by actors and is set with the following parameters:
- Resolution: The minimum time offset step in microseconds.
- ProgressThreshold: The maximum time offset step in microseconds.
If, for an unknown reason, the scheduler thread is stuck, it will send messages according to the lagging time, offsetting it by the ProgressThreshold value each time.
Example of the default actor system configuration:
Static nodes take the configuration of the actor system from the kikimr/cfg/sys.txt file.
After changing the configuration, restart the node.
Dynamic nodes take the configuration from the . To change it, you can use the following command: