The following table describes some background threads of OBServer nodes and their features. In most cases, you do not need to pay attention to how these threads are implemented.
Note
Background threads are optimized along with the iteration of OBServer node versions. During the iteration process, some background threads may be eliminated or merged, and some new ones may be introduced.
| Thread name | Level | Module | Thread quantity | Description |
|---|---|---|---|---|
| FrzInfoDet | Tenant | Transaction | 2 | Periodically checks for new freeze_info. |
| LockWaitMgr | Tenant | Transaction | 1 | Periodically checks whether the lock wait timeout period elapses and wakes up lock-wait events. |
| TenantWeakRe | Tenant | Transaction | 1 | Generates read timestamps for a tenant-level standby server. |
| TransService | Tenant | Transaction | 1 | Handles a number of asynchronous backend tasks in the transaction module, such as the task for pushing log stream checkpoints. |
| TransTimeWhe | Tenant | Transaction | max(cpu_num/24, 2) | Handles scheduled tasks in the transaction two-phase commit process. |
| TsMgr | Process | Transaction | 1 | Handles backend Global Timestamp Service (GTS) tasks for deleting useless tenants, refreshing GTS of each tenant, and other purposes. |
| TSWorker | Process | Transaction | 1 | Handles the results returned over remote GTS access and calls back transactions. |
| TxLoopWorker | Tenant | Transaction | 1 | Handles backend scheduled tasks in the transaction module. |
| ArbSer | Process | System | 1 | Used by the arbitration server to periodically load parameters from the configuration file. |
| Blacklist | Process | System | 2 | Detects network connection with the destination server. |
| ConfigMgr | Process | System | 1 | Refreshes parameters. |
| L0_G0 | Tenant | System | 2 + min_cpu × cpu_quota_concurrency | Handles most of the tenant requests. |
| L2_G0 | Tenant | System | 1 | Handles L2 requests. |
| L3_G0 | Tenant | System | 1 | Handles L3 requests. |
| L4_G0 | Tenant | System | 1 | Handles L4 requests. |
| L5_G0 | Tenant | System | 1 | Handles L5 requests. |
| L6_G0 | Tenant | System | 1 | Handles L6 requests. |
| L7_G0 | Tenant | System | 1 | Handles L7 requests. |
| L8_G0 | Tenant | System | 1 | Handles L8 requests. |
| L9_G0 | Tenant | System | 1 | Handles L9 requests. |
| LuaHandler | Process | System | 1 | Handles Lua requests in emergency scenarios to read the internal status of the observer process. |
| MemDumpTimer | Process | System | 1 | Prints memory logs periodically. |
| MemoryDump | Process | System | 1 | Collects memory statistics periodically. |
| MultiTenant | Process | System | 1 | Refreshes CPU utilization for multiple tenants to schedule resources. |
| OB_PLOG | Process | System | 1 | Asynchronously prints diagnostics logs of the observer process. |
| pnio | Process | System | Controlled by the value of net_thread_count |
The network I/O thread in the new network framework pkt-nio. |
| pnlisten | Process | System | 1 | Listens to the RPC port and forwards RPC requests to network I/O threads. |
| SignalHandle | Process | System | 1 | Handles signals. |
| SignalWorker | Process | System | 1 | Asynchronously handles signals. |
| L0_G2 | Tenant | Election | min_cpu (at least 8) | Handles election requests. |